using "types"; Model MDF PARAMETERS #Informa o esquema a ser utilizado opcao as Switcher (Valid=["MDF1"],Default="MDF1"); #Numero de pontos de discretização+1 N as Integer; #Valor inicial xi as Real; #Valor Final xf as Real; VARIABLES #Geracao da Malha #Vetor que ira armazenar os valores da malha discretizada x(N+1) as Real; #Incremento da malha dx as Real; #Aproximacoes #Variavel dependente y(N+1) as Real; #Aproximação para 1 derivada dif1x(N+1) as Real; #Aproximação para 2 derivada dif2x(N+1) as Real; #Aproximacoes #Variavel dependente 2 y2(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 2 dif12x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 2 dif22x(N+1) as Real; #Aproximacoes #Variavel dependente 3 y3(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 3 dif13x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 3 dif23x(N+1) as Real; #Aproximacoes #Variavel dependente 4 y4(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 4 dif14x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 4 dif24x(N+1) as Real; #Aproximacoes #Variavel dependente 5 y5(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 5 dif15x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 5 dif25x(N+1) as Real; #Aproximacoes #Variavel dependente 6 y6(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 6 dif16x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 6 dif26x(N+1) as Real; #Aproximacoes #Variavel dependente 7 y7(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 7 dif17x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 7 dif27x(N+1) as Real; #Aproximacoes #Variavel dependente 8 y8(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 8 dif18x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 8 dif28x(N+1) as Real; #Aproximacoes #Variavel dependente 9 y9(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 9 dif19x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 9 dif29x(N+1) as Real; #Aproximacoes #Variavel dependente 10 y10(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 10 dif110x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 10 dif210x(N+1) as Real; #Aproximacoes #Variavel dependente 11 y11(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 11 dif111x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 11 dif211x(N+1) as Real; #Aproximacoes #Variavel dependente 12 y12(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 12 dif112x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 12 dif212x(N+1) as Real; #Aproximacoes #Variavel dependente 13 y13(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 13 dif113x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 13 dif213x(N+1) as Real; #Aproximacoes #Variavel dependente 14 y14(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 14 dif114x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 14 dif214x(N+1) as Real; #Aproximacoes #Variavel dependente 15 y15(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 15 dif115x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 15 dif215x(N+1) as Real; #Aproximacoes #Variavel dependente 16 y16(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 16 dif116x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 16 dif216x(N+1) as Real; #Aproximacoes #Variavel dependente 17 y17(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 17 dif117x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 17 dif217x(N+1) as Real; #Aproximacoes #Variavel dependente 18 y18(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 18 dif118x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 18 dif218x(N+1) as Real; #Aproximacoes #Variavel dependente 19 y19(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 19 dif119x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 19 dif219x(N+1) as Real; #Aproximacoes #Variavel dependente 20 y20(N+1) as Real; #Aproximação para 1 derivada Variavel dependente 20 dif120x(N+1) as Real; #Aproximação para 2 derivada Variavel dependente 20 dif220x(N+1) as Real; EQUATIONS #Calculo do incremento da malha dx=(xf-xi)/N; #Geração da malha de integração for i in [1:N+1] do x(i) = xi + (i-1)*dx; end switch opcao case "MDF1": #Aproximacao para 1 derivada no contorno x=x0 dif1x(1)=(y(2)-y(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf dif1x(N+1)=(y(N+1)-y(N))/(dx); #Aproximacao para 1 derivada for i in [2:N] do dif1x(i)=(y(i+1)-y(i-1))/(2*(dx)); end #Aproximacao para 2 derivada for i in [2:N] do dif2x(i)=(y(i+1) - 2*y(i) + y(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 2 dif12x(1)=(y2(2)-y2(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 2 dif12x(N+1)=(y2(N+1)-y2(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 2 for i in [2:N] do dif12x(i)=(y2(i+1)-y2(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 2 for i in [2:N] do dif22x(i)=(y2(i+1) - 2*y2(i) + y2(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 3 dif13x(1)=(y3(2)-y3(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 3 dif13x(N+1)=(y3(N+1)-y3(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 3 for i in [2:N] do dif13x(i)=(y3(i+1)-y3(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 3 for i in [2:N] do dif23x(i)=(y3(i+1) - 2*y3(i) + y3(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 4 dif14x(1)=(y4(2)-y4(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 4 dif14x(N+1)=(y4(N+1)-y4(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 4 for i in [2:N] do dif14x(i)=(y4(i+1)-y4(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 4 for i in [2:N] do dif24x(i)=(y4(i+1) - 2*y4(i) + y4(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 5 dif15x(1)=(y5(2)-y5(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 5 dif15x(N+1)=(y5(N+1)-y5(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 5 for i in [2:N] do dif15x(i)=(y5(i+1)-y5(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 5 for i in [2:N] do dif25x(i)=(y5(i+1) - 2*y5(i) + y5(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 6 dif16x(1)=(y6(2)-y6(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 6 dif16x(N+1)=(y6(N+1)-y6(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 6 for i in [2:N] do dif16x(i)=(y6(i+1)-y6(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 6 for i in [2:N] do dif26x(i)=(y6(i+1) - 2*y6(i) + y6(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 7 dif17x(1)=(y7(2)-y7(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 7 dif17x(N+1)=(y7(N+1)-y7(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 7 for i in [2:N] do dif17x(i)=(y7(i+1)-y7(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 7 for i in [2:N] do dif27x(i)=(y7(i+1) - 2*y7(i) + y7(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 8 dif18x(1)=(y8(2)-y8(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 8 dif18x(N+1)=(y8(N+1)-y8(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 8 for i in [2:N] do dif18x(i)=(y8(i+1)-y8(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 8 for i in [2:N] do dif28x(i)=(y8(i+1) - 2*y8(i) + y8(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 9 dif19x(1)=(y9(2)-y9(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 9 dif19x(N+1)=(y9(N+1)-y9(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 9 for i in [2:N] do dif19x(i)=(y9(i+1)-y9(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 9 for i in [2:N] do dif29x(i)=(y9(i+1) - 2*y9(i) + y9(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 10 dif110x(1)=(y10(2)-y10(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 10 dif110x(N+1)=(y10(N+1)-y10(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 10 for i in [2:N] do dif110x(i)=(y10(i+1)-y10(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 10 for i in [2:N] do dif210x(i)=(y10(i+1) - 2*y10(i) + y10(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 11 dif111x(1)=(y11(2)-y11(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 11 dif111x(N+1)=(y11(N+1)-y11(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 11 for i in [2:N] do dif111x(i)=(y11(i+1)-y11(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 11 for i in [2:N] do dif211x(i)=(y11(i+1) - 2*y11(i) + y11(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 12 dif112x(1)=(y12(2)-y12(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 12 dif112x(N+1)=(y12(N+1)-y12(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 12 for i in [2:N] do dif112x(i)=(y12(i+1)-y12(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 12 for i in [2:N] do dif212x(i)=(y12(i+1) - 2*y12(i) + y12(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 13 dif113x(1)=(y12(2)-y12(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 13 dif113x(N+1)=(y13(N+1)-y13(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 13 for i in [2:N] do dif113x(i)=(y13(i+1)-y13(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 13 for i in [2:N] do dif213x(i)=(y13(i+1) - 2*y13(i) + y13(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 14 dif114x(1)=(y14(2)-y14(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 14 dif114x(N+1)=(y14(N+1)-y14(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 14 for i in [2:N] do dif114x(i)=(y14(i+1)-y14(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 14 for i in [2:N] do dif214x(i)=(y14(i+1) - 2*y14(i) + y14(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 15 dif115x(1)=(y15(2)-y15(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 15 dif115x(N+1)=(y15(N+1)-y15(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 15 for i in [2:N] do dif115x(i)=(y15(i+1)-y15(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 15 for i in [2:N] do dif215x(i)=(y15(i+1) - 2*y15(i) + y15(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 16 dif116x(1)=(y16(2)-y16(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 16 dif116x(N+1)=(y16(N+1)-y16(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 16 for i in [2:N] do dif116x(i)=(y16(i+1)-y16(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 16 for i in [2:N] do dif216x(i)=(y16(i+1) - 2*y16(i) + y16(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 17 dif117x(1)=(y17(2)-y17(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 17 dif117x(N+1)=(y17(N+1)-y17(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 17 for i in [2:N] do dif117x(i)=(y17(i+1)-y17(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 17 for i in [2:N] do dif217x(i)=(y17(i+1) - 2*y17(i) + y17(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 18 dif118x(1)=(y18(2)-y18(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 18 dif118x(N+1)=(y18(N+1)-y18(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 18 for i in [2:N] do dif118x(i)=(y18(i+1)-y18(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 18 for i in [2:N] do dif218x(i)=(y18(i+1) - 2*y18(i) + y18(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 19 dif119x(1)=(y19(2)-y19(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 19 dif119x(N+1)=(y19(N+1)-y19(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 19 for i in [2:N] do dif119x(i)=(y19(i+1)-y19(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 19 for i in [2:N] do dif219x(i)=(y19(i+1) - 2*y19(i) + y19(i-1))/((dx)^2); end #Aproximacao para 1 derivada no contorno x=x0 Variavel dependente 20 dif120x(1)=(y20(2)-y20(1))/(dx); #Aproximacao para 1 derivada no contorno x=xf Variavel dependente 20 dif120x(N+1)=(y20(N+1)-y20(N))/(dx); #Aproximacao para 1 derivada Variavel dependente 20 for i in [2:N] do dif120x(i)=(y20(i+1)-y20(i-1))/(2*(dx)); end #Aproximacao para 2 derivada Variavel dependente 20 for i in [2:N] do dif220x(i)=(y20(i+1) - 2*y20(i) + y20(i-1))/((dx)^2); end #case "MDF2": #ADICIONAR POSSIVEIS OUTROS ESQUEMAS end end