Professional Documents
Culture Documents
Apostila 5 e
Apostila 5 e
INTRODUO AO MTODO DE
VOLUMES FINITOS
Fevereiro, 2015
5a Edio
ndice
1. Introduo 1
1.1 Mtodos de aproximao numrica 2
1.2 Concluso 3
2. Equaes de governo 5
2.1 Equao da energia 5
2.2 Generalizao para outras equaes de governo 9
2.3 Problemas elpticos parablicos e hiperblicos 11
2.4 Escolha de coordenadas 12
6. Mtodos de soluo 65
6.1 Mtodo de Jacobi 66
6.2 Mtodo de Gauss-Seidel 67
6.3 Mtodo linha-por-linha TDMA 68
6.4 Mtodo das sobre-relaxaes 70
6.5 Aspectos de convergncia 71
6.6 Exemplo ilustrativo de comparao entre os mtodos 71
6.6.1 Conduo de calor em uma placa plana 72
6.6.2 Escoamento de fluido no newtoniano entre placas planas 76
7. Bibliografia 83
Introduo
Mtodos numricos tm recebido considervel ateno nos dias de hoje devido
ao grande avano na tecnologia dos computadores.
Ns
Elementos
Elementos na fronteira
Ns
Elemento de integrao
das Equaes diferenciais
1.2 Concluso
Equaes de Governo
A aplicao do mtodo dos volumes finitos requer que as equaes de governo
envolvidas estejam na forma diferencial. As equaes na forma diferencial da
conservao de massa, energia e momento podem ser obtidas a partir do balano das
respectivas leis em um volume de controle infinitesimal. Como exemplo, a seo 2.1
ilustra a obteno da equao da conservao da energia.
onde Q& a taxa lquida de energia trocada pelo volume de controle, W a potncia, u
q y Ay | y + dy
y
m& y h | y + dy q z Az |z dz
m& z h |z dz
q x Ax |x dx dy q x Ax |x + dx
m& x h |x dx m& x h |x + dx
z
q z Az |z + dz dz
m& z h |z + dz
dx
x
q y Ay | y dy
m& y h | y dy
A equao simplificada
r r
Q& = u d + h V dA (2.2)
t VC SC
Equaes de governo 7
u u
u d = u d = (u m ) = m= dx dy dz (2.3)
t VC t VC t t t
h V dA = h V dA = h VA = h m& (2.4)
SC SC
sendo que a entalpia e energia interna podem ser definidas respectivamente por
h = Cp T e u = Cv T .
Por outro lado, o termo Q& da equao (2.2) inclui a energia transferida por
conduo e o termo fonte de gerao ou sumidouro, s& , assim,
Q& = {Energia gerada} + {Energia que entra no V .C.} {Energia que sai do V .C.}
dT dT
qe = k q s = k (2.5)
dx dx
u = Cv T he = Cp Te hs=Cp Ts
u
Q& = s& dx dy dz + q e Ae q s As = dx dy dz m& e he + m& e hs (2.7)
t
logo,
8 Equaes de governo
T T T
s& dx dy dz + k dy dz k dx dz k dx dy +
x x y y z z
T T T
k dy dz k dx dz k dx dy =
x y z
x + dx y + dy z + dz
(
= u dy dz T x + v dx dz T y + w dx dy T z
)+ (2.8)
(
+ u dz dy T x + dx
+ v dx dy T y + dy
+ w dx dy T z + dz
)+
+
d
( dx dy dz Cv T )
dt
f
Usando a expanso em srie de Taylor, f ( x + dx ) = f ( x ) + dx , tem-se que
x
dT dT T
k =k + k dx (2.9)
dx x + dx dx x x x
e
uT = uT + ( uT ) dx (2.10)
x + dx x
x
T dT dT
k dx dy dz + k dx dy dz + k dx dy dz + s& dx dy dz =
x x y dy z dz
= ( u CpT ) dx dy dz + ( v CpT ) dx dy dz + ( w Cp T ) dx dy dz + (2.11)
x y z
+ ( CvT ) dx dy dz
t
Equaes de governo 9
ou ainda,
T dT dT
s& + k + k + k =
x x y dy z dz
(2.12)
= ( u Cp T ) + ( v Cp T ) + ( w Cp T ) + ( Cv T )
x y z t
s& k T k T k T
+ + + =
Cp x Cp x y Cp y z Cp z
(2.13)
= ( uT ) + ( vT ) + ( w T ) + ( T )
x y z t
A equao da energia descrita na seo 2.1 est escrita de uma forma que os
coeficientes k/Cp a varivel T e o parmetro s& /Cp podem ser generalizados de forma a
serem aplicados a outras equaes de governo.
S + + =
x x y y z z
(2.14)
= ( u ) + ( v ) + ( w ) + ( )
x y z T
0=
( u ) + ( v ) + ( w) + (2.15)
x y z t
v v v
p v v v
Sv + + u + u + u =
xi x x y y z z
(2.16)
= ( u vr ) + ( v vr ) + ( w vr ) + ( vr )
x y z t
Equao da transferncia de massa de um componente A em um componente B:
m A m A m A
n& A + D AB + D AB + D AB =
x x y y z z
(2.17)
= ( u m A ) + ( v m A ) + ( w m A ) + ( A m A )
x y z t
Deste modo, :
K s&
Equao da conservao de energia = =T S =
Cp Cp
p
r S = SV +
Equao da quantidade de movimento
=u =v xi
Equaes de governo 11
em x ( u ) + ( u u ) + ( v u ) = 0
t x y
Somente termos
convectivos em x
(derivada primeira)
u(x=0) = U
Fig. 2.2: Problema parablico.
condio de
contorno em x = L
condio de
k T
contorno em x = 0 = ( T )
x Cp x t
qx
Termo difusivo em x
(derivada segunda)
Mtodos das
Diferenas Finitas
A equao de governo genrica para pode ser aproximada usando os mtodos de
Diferenas Finitas (srie de Taylor) e Volumes Finitos dentre outros. Neste captulo
apresentado o mtodo das diferenas finitas visando introduzir ao leitor as tcnicas de
aproximao numrica das derivadas.
d 1 d 2 2 1 d n n
(x + dx ) = ( x ) + dx + dx + ..... + dx (3.1)
dx 2! dx 2 n! dx 2
d 1 d 2 1 d n
(xi + x ) = ( xi ) + x + x 2
+ L + x n (3.2)
dx i 2! dx 2 i n! dx n i
d 1 d 2 n 1 d
n
(xi x ) = ( xi ) x + 2
x 2
+ L + ( 1) n
x n (3.3)
dx i 2! dx i n! dx i
(xi + x)
(xi )
(xi -x)
x x
x
xi - x xi xi + x
(xi ) = i
xi + x = xi +1
(xi + x ) = i +1 e (3.4)
xi x = xi 1
(xi x ) = i 1
A partir das equaes para i e i +1 , os termos da derivada primeira, , e da
x
2
derivada Segunda, , so aproximados conforme mostrado nas sees 3.2 e 3.3.
x 2
Mtodo das Diferenas Finitas 15
derivada no ponto xi
(xi )
x
i
i +1
derivada
r i 1
derivada
derivada frente
central
x
xi-1 xi xi+1
Na derivada frente, a derivada aproximada a partir da equao da srie
x i
d ( xi + x ) ( xi ) 1 d 2 1 d 3 2
= x x + ...
dx i x 2 ! dx 2 3 ! dx 3
(3.5)
( xi + x ) ( xi )
= + O( x )
x
d 2
Os termos de ordem maior do que so desprezados e a aproximao dita
dx 2
como sendo da ordem de x , logo,
d i
= i +1 (3.6)
dx i x
16 Mtodo das Diferenas Finitas
d
Na derivada r, a derivada aproximada a partir da expanso da srie de
dx i
d ( x i ) ( x i x ) 1 d 2 1 d 3
= + x x 2 + ...
dx i x 2 ! dx 2
3 ! dx 3
(3.7)
( x i ) ( x i x )
= + O( x )
x
d 2
Da mesma forma, os termos de ordem maior do que so desprezados e
dx 2
aproximao tambm da ordem de x , assim,
d i 1
= i (3.8)
dx i x
d
A derivada central aproxima atravs da subtrao da equao (3.7) para
dx i
d ( xi + x ) ( xi x ) 1 d 3 x 2
= + ...
dx i 2 x 3! dx 3 2
(3.9)
( xi + x ) ( xi x )
= + O( x 2 )
2 x
d 3
Neste caso, o truncamento se d a partir da derivada terceira, , ou seja, a
dx 3
aproximao dita de ordem x 2 . Isto implica em uma aproximao de menor erro.
Assim,
d ( xi + x ) ( xi x )
= (3.10)
dx i 2x
Mtodo das Diferenas Finitas 17
d 2
A exemplo do caso anterior, a derivada segunda, , tambm pode ser
dx 2
aproximada a partir das trs formas anteriores. Entretanto, a mais utilizada a derivada
central devido ao menor erro.
d 2 ( xi + x ) + ( xi x ) 2 ( xi ) 2 d 4 2
= + x + ...
dx 2 x 2 4 ! dx 4
(3.11)
( xi + x ) + ( xi x ) 2 ( xi )
=
x 2
( )
+ O x 2
d 2 i +1 + i 1 2 i
= (3.12)
dx 2 x 2
Fazendo = , tem-se que
x
18 Mtodo das Diferenas Finitas
Derivada central em
relao xi+1/2 i +1 / 2 =
x
i +1 / 2
i +1
i
Derivada central i 1 / 2 =
em relao xi-1/2 x i 1 / 2
i 1
xi 1 xi 1/ 2 xi xi +1/ 2 xi +1 x
x x
= (3.13)
x x x
d i +1 / 2 i 1 / 2
= (3.14)
dx i x
onde
i
i +1 / 2 = = i +1 / 2 i +1 (3.15)
x i +1 / 2 x
e
i 1
i 1 / 2 = = i 1 / 2 i (3.16)
x i 1 / 2 x
Mtodo das Diferenas Finitas 19
i i 1
= 1 i +1 / 2 i +1 i 1 / 2 i
x x x x x
(3.17)
=
i +1 / 2 i +1 +
i 1 / 2 i 1 (
i +1 / 2 +
i 1 / 2 ) i
x 2
ou seja,
=
(
i +1 / 2 i +1 + i 1 / 2 i 1 i +1 / 2 + i 1 / 2 i ) (3.18)
x x x 2
TN
TW TE H=4m
TS
L=4m
Fig. 3.4: Placa plana.
k T k T
ST + + =0 (3.19)
x Cp x y Cp y
Ti , j +1
y
Ti 1, j Ti , j Ti +1, j
y
Ti , j 1
x x
2T 2T
Assumindo que k/Cp seja constante, as derivadas e so aproximadas
x2 y2
como descrito na seo 3.3. Assim,
k T k 2T k Ti +i , j + Ti 1, j 2Ti , j
= = (3.20)
x Cp x Cp x 2
Cp x 2
e
k T k 2T k Ti , j +1 + Ti , j 1 2Ti , j
= = (3.21)
y Cp y Cp y 2
Cp y 2
logo,
k Ti +i , j + Ti 1, j 2Ti , j k Ti , j +1 + Ti , j 1 2Ti , j
S iT, j + + = 0 (3.22)
Cp x 2 Cp y 2
Mtodo das Diferenas Finitas 21
1 1 1 1 1 1 S iT, j
2 2 + 2 Ti , j + 2 Ti +1, j + 2 Ti 1, j + 2 Ti , j +1 + 2 + Ti , j 1 + = 0 , (3.23)
x y x x y y (k Cp )
assumindo que x = y,
Cp 2 T
4Ti , j = Ti +1, j + Ti 1, j + Ti , j 1 + Ti , j +1 + x S i , j (3.24)
k
e, particularizando para o caso de uma placa plana sem gerao interna ( S iT, j = 0 ),
100 C
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
50 C 50 C
16 17 18 19 20
21 22 23 24 25
30 C
Fig. 3.6:Malha de soluo.
22 Mtodo das Diferenas Finitas
Ponto 1 T1 = 100
Ponto 2 T2 = 100
Ponto 3 T3 = 100
Ponto 4 T4 = 100
Ponto 5 T5 = 100
Ponto 6 T6 = 50
Ponto 7 4T7 = T8 + T6 + T12 + T2 4T7 - T8 - T12 = 150
Ponto 8 4T8 = T9 + T7 + T19 + T3 4T8 - T9 - T13 -T7 = 100
Ponto 9 4T9 = T10 + T8 + T14 + T4 4T9 - T8 - T14 = 150
Ponto 10 T10 = 50
Ponto 11 T11 = 50
Ponto 12 4T12 = T13 + T11 + T17+ T7 4T12 - T13 - T17 - T7 = 50
Ponto 13 4T13 = T14 + T12 + T18 + T8 4T13 - T14 -T12 -T18 -T8 = 0
Ponto 14 4T14 = T15 + T13 + T19 + T9 4T14 - T13 - T19 - T9 = 50
Ponto 15 T15 = 50
Ponto 16 T19 = 50
Ponto 17 4T17 = T18 + T16 + T22 + T12 4T17 - T18 - T12 = 80
Ponto 18 4T18 = T19 + T17 + T23 + T13 4T18 - T19 - T17 - T13 = 30
Ponto 19 4T19 = T20 + T18 + T24 + T14 4T19 - T18 - T14 = 80
Ponto 20 T20 = 50
Ponto 21 T21 = 30
Ponto 22 T22 = 30
Ponto 23 T23 = 30
Ponto 24 T24 = 30
Ponto 25 T25 = 30
Mtodo das Diferenas Finitas 23
1
Em geral, a soluo do sistema de equaes feita com auxlio de mtodos iterativos devido grande
tamanho da matriz [A]. Nota-se ainda a estrutura da matriz [A], que apresenta a diagonal dominante com
termos diferentes de zero em apenas 5 diagonais (veja a linha referente temperatura T13). Maiores
detalhes so apresentados no Captulo 6.
24 Mtodo das Diferenas Finitas
Captulo 4
Mtodo dos
Volumes Finitos
( T ) k T
= + S T (4.1)
t x Cp x
w e
qe
W qw P E
w
xw xe
k T
w t ( T ) dx dt = t
t + t e t + t e t + t e
t w x Cp x dx dt + t w S d x dt (4.2)
1 2 3
O termo "1" integrado primeiramente no tempo e depois entre as faces "w" e "e",
considerando que tanto a temperatura quanto a massa especfica sejam constantes no
interior do volume de controle. Assim
w t ( T ) dx dt = w (TP ) ( )
t + t e
TP0 dx = TP 0TP0 x
e
t
0
(4.3)
sendo que o super-ndice "0" indica que o parmetro esta associado com o passo de
tempo corrente (conhecido).
t + t e k T t + t k T k T
t w x Cp dx dt = t dt (4.4)
x Cp x e Cp x w
f (t + t )
f ( ) t + t
f (t ) dt = f ( ) t
t
f (t )
t t + t t
Fig. 4.2: Integrao no tempo.
t + t k T k T k T k T
t dt = t (4.5)
Cp x e Cp x w Cp x e Cp x w
T TE TP
=
x e xe
, (4.6)
T TP TW
=
x w xw
28 Mtodo dos volumes finitos
deste modo,
t + t k T k T k TE TP k TP Tw
t dt = t . (4.7)
Cp x e Cp x w Cp e xe Cp w
xw
t + t e t + t
t w S dx dt = t S x dt = S x t (4.8)
S = S P TP + S C , (4.9)
w S dx dt = (S P TP )
t + t e
t + S C x t . (4.10)
k TE TP k TP TW
( T )
0T 0 x =
t + S PTP + SC x t ( ) (4.11)
Cp e xe Cp w xw
P
MP k k k k M P0 0
TP = TE + Tw +
TP + S P xTP + S C x + TP (4.12)
t Cp x e Cp x w Cp x e Cp x w t
Ae Aw Ae Aw A 0p
Mtodo dos volumes finitos 29
k
Ae = (4.13)
Cp x e
k
Aw = (4.14)
Cp x w
M P0
AP0 = (4.15)
t
Assim, a equao geral de um problema de conduo de calor unidimensional em
regime transiente
MP
TP = Ae TE + AwTw ( Ae + Aw S P x )TP + S C x + AP0 TP0 (4.16)
t
De uma forma geral, uma temperatura T pode ser representada como uma
funo das temperaturas do instante atual, T 0 , e do instante a ser determinado, T, como
T = T + (1 )T 0 (4.17)
( )
A p TP = AeTE0 + AwTw0 A p0 + Ae + Aw S P x TP0 + S C x (4.18)
( S P = SC = 0 )
30 Mtodo dos volumes finitos
x k k
AP0 Ae Aw 0 0 (4.19)
t Cp x e Cp x w
ou seja,
x k
2 0 (4.20)
t Cpx
Cp t x 2 x 2
2 2 0 20 2 (4.21)
k x t t
t 1
(4.22)
x 2
2
Isto implica que o tamanho dos passos de tempo devem ser muito pequenos, os
quais, neste caso devem ser t x 2 / (2 ) .
MP
TP = Ae TE + AwTW ( Ae + Aw S P x )TP + A 0p TP0 + S c x (4.23)
t
MP
+ Aw + Ae S P x TP = AeTE + AwTW + A p0 TP0 + S C x (4.24)
t
Ap B
Mtodo dos volumes finitos 31
com
k
Ae =
Cp x e
k
Aw =
Cp x w
(4.26)
M
A p = P + Ae + Aw S P x
t
B = A p0 TP + S C x
Regra 1 - Consistncia nas faces dos volumes de controle: esta regra estabelece que
os fluxos calculados nas faces adjacente dos volumes de controle sejam representados
pela mesma expresso discretizada.
T3 T2
qi = (4.27)
x
1 2 3 4
qi
Mp
Ap > 0 ou + Ae + Aw S P x > 0 (4.28)
t
interessante notar que desejvel que S P seja menor que zero para garantir que
Ap > 0 .
S = S P TP + S C , (4.29)
SP 0 (4.30)
Regra 4 - Ap deve ser igual a soma dos coeficientes vizinhos: uma vez que a equao
geral composta por derivadas segundas, uma temperatura qualquer acrescida de uma
constante C, T = T + C e outra T satisfazem a equao diferencial. A equao discreta
deve representar este fato, assim, TP = TP + C quando TE = TE + C e TW = TW + C .
Consequentemente,
A p = Anb (4.31)
O termo fonte pode ser uma funo no-linear da temperatura, com isso, faz-se
necessrio uma linearizao que produza uma equao do tipo:
S = S P TP + S C , (4.29)
* *
S S
*
P ( )
S (T + TP ) = S T
*
P +
TP
TP S=S + *
TP
(
TP TP* ) (4.32)
S S* TP = TP TP*
34 Mtodo dos volumes finitos
* *
dS dS
S= TP + S * TP = S P TP + SC
*
(4.33)
dT P dT P
SP SC
onde
* *
dS dS
SP = e SC = S * TP* (4.34)
dT P dT P
TP S
*
dS
TP convergida
S* = S (TP* ) dT p
TP
S = S (TP )
T P*
t* t t T P* TP TP
Conhecido da
iterao anterior
Fig. 4.4: Linearizao do termo fonte.
*
dS
dT
( )
= 12 T *
2
S* = 5 4 T * ( )3
ou seja,
Mtodo dos volumes finitos 35
[ ( ) ]T
S = 12 TP*
2
P [ ( )
+ 5 4 TP*
3
( ) 2
+ 12 TP* TP* ]
(4.35)
[
S = 12 T( ) ]T
* 2
P P [
+ 5+8 T( )]
* 3
P
*
dS
No caso de S aumentar com a temperatura, isto , se a derivada for maior
dT p
( )
S = 3 + 7TP* + 0 TP
SP = 0
ou, de forma alternativa, pode-se somar e subtrair 2Tp conforme mostrado abaixo:
S = 7 TP + 3 = 7 TP + 3 + (2 TP ) (2 TP ) = 2 TP + (9 TP + 3)
logo
(
S = 2 TP + 9 TP* + 3 ) (4.36)
SP = -2
xe
xe xe+
qe
W P E
k P = k(TP ) k E = k(TE )
w e
x
k e (TP Te ) TP TE TP T E
qe = = = (4.37)
xe xe xe xe+
+
ke kP kE
x e+
Fazendo f e , o valor de ke pode ser avaliado por :
xe
1
1 f e f
ke = + e (4.38)
kP kE
No caso da fronteira "e" ficar no centro de P e E tem-se f e = 0,5 , o que faz com
que
Mtodo dos volumes finitos 37
2.k P .k E
ke = (4.39)
kP + kE
Esta abordagem permite que o valor na interface represente de forma mais realista
o fenmeno fsico.
Assim, pode-se aproximar os valores de k/Cp como
1
k 1 fe fe
= + (4.40)
Cp e k / Cp P k / Cp E
n
yn
W P E
y
w e
s ys
xw xe
n
b
y
W w P e E x
f z
s
A equao diferencial
( T ) = k T + k T + k T + S
(4.42)
t x Cp x y Cp y z Cp z
t + t e n f
t + t f n e
k T
t ( T ) dz dy dx dt = x Cp x dx dy dz dt +
t ws b t b s w
t + t n f e
k T
+ y C y dy dz dz dt + (4.43)
t s bw P
t + t e n f
k T t + t e n f
+
dz dx dy dt + S dx dy dz dt
t w s b z C P z t ws b
k T k T
(T T )dx dy dz =
e n f t + t f n
0
Cp x dy dz dt +
Cp x w
0
ws b t
b s e
t + t f e k T k T
+ Cp y Cp y dx dz dt + (4.44)
t b w n s
t + t n e k T k T t + t
+ Cp z dx dy dt + S x y z dt
t s w f Cp z b t
k T k T k T
Considerando que as grandezas , e so constantes ao
Cp x Cp y Cp z
longo das faces yz , xz e xy respectivamente
k T k T
(T T )x y z =
t + t
Cp x Cp x y z dt +
0 0
t e w
t + t k T k T
+ Cp y Cp y x z dt +
t n
s
(4.45)
t + t k T k T
+ Cp z Cp y x y dt +
t f
b
t + t
+ S x y z dt +
t
Aplicando a aproximao central nas faces "w" , "e" , "s" , "n" , "b" e "f"
T TP TW T TE T P
= =
x w xw x e xe
T TP TS T TN TP
= e = (4.46)
x s xs x n xn
T TP TB T TF TP
= =
x b xb x f xf
k TE TP TP TW
(T ) k
t + t
0
T 0 x y z = x y dt +
t Cp e
xe Cp w
xw
t + t k T N TP k T P TS
+ x z dt +
t Cp n
yn Cp s
ys (4.47)
t + t k T F TP k TP TB
+ x y dt
Cp z Cp zb
t f f b
t + t
+ S x y z dt
t
( )
t + t
Rearranjando e considerando a integrao no tempo como f (T )dt = f T t
t
x y z k k k
TP + ( y z + x z + x y +
t Cp x e Cp y n Cp z f
k k k
+ y z + x z + x y S p x y z )TP =
Cp x w Cp y s Cp z b
(4.48)
k k k
= y z TE + y z TW + x z TS +
Cp x e Cp x w Cp y s
k k k
+ x z TN + x y TB + x y TF +
Cp y n Cp z Cp z f
b
0 x y z
+ S c x y z + T0
t
onde
Mtodo dos volumes finitos 41
k k k
An = x z Ae = yz Ab = xy
Cp y n Cp x e Cp z b
, ,
k k k
As = xz Aw = yz Af = xy
Cp y s Cp x w Cp z f
MP
A p = An + As + Aw + Ae + Ab + A f + S P x y z (4.50)
t
M P0 0
B = S C x y z + TP
t
com
M P = x y z e M P0 = 0 x y z . (4.51)
onde
k k
An = x Ae = y
Cp y n Cp x e
,
k k
As = x Aw = y
Cp y s Cp x w
Mp
A p = An + As + Aw + Ae + S P x y (4.53)
t
M P0 0
B = S C x y + TP
t
com
M P = x y e M P0 = 0 x y . (4.54)
AB TB = AI TI + B (5.1)
xi
B I
Volume da w
fronteira a qB Tf qi
metade
i
x
Fig. 5.1: Pontos sobre a fronteira.
AB TB = AI TI + B (5.1)
AB = 1
AI = 0 (5.2)
B= Tf
(m B C p T )
w q B w q i + s& x w = (5.3)
t
T (T TB )
q i = k = k I
x i xi
(5.4)
m B = x w
logo,
w qB + w
k
(TI TB ) + s& x w = ( w x Cp TB ) (5.5)
xi t
Simplificando w tem-se
( Cp x TB ) = q B + k (TI TB ) + s& x
t xi
(5.6)
k k
= qB + TI TB + s& x
xi xi
s&
x = ( x TB ) ,
qB k k
+ TI TB + (5.7)
Cp Cp x i Cp x i Cp t
fazendo S = s& / Cp e M B = x ,
TB + S x = (M B TB ) ,
qB k k
+ TI (5.8)
Cp Cp x i Cp x i t
46 Mtodos de aproximao das equaes para o contorno
( )
t + t
S = S C + S B TB e f (T ) dt = f T t. (5.9)
t
tem-se
qB k k
t + TI t TB t + S x t = M B TB M B0 TB0 (5.10)
Cp Cp x i Cp x i
rearranjando,
MB k k q B
TB = TI TB + S C x + S P x TB + + M B0 TB0
t Cp x i Cp x i Cp
(5.11)
k
k q B M B0
= TI + + S P x TB + S C x + + TB
Cp x i Cp x i Cp t
ou seja,
MB M0 q
TB = Ai TI ( Ai S P x )TB + S C x + B TB0 + B (5.12)
t t Cp
onde
k
Ai = (5.13)
Cp x i
T = T + (1 )T 0 e q B = q B + (1 ) q B0 .
Mtodos de aproximao das equaes para o contorno 47
Mtodo implcito: Desta forma, a equao discreta para o caso totalmente implcito
( = 1) onde T = T e q B = q B
AB TB = Ai TI + B (5.14)
onde
k
Ai =
Cp x i
MB
AB = + Ai S P x (5.15)
t
M B0 0 q B
B = S C x + TB +
t Cp
AB TB = B (5.16)
onde
MB
AB =
t
(5.17)
k k M 0 0
q
B= TI0 S P x TB0 + S C x +
B B
Cp x i Cp x t Cp
i
(
q B = h T TB ) (5.18)
MB
t
TB = Ai TI ( Ai S P x )TB + S C x +
M B0 0
t
TB +
h
Cp
(
T TB )
(5.19)
h M0 h
= Ai TI Ai + S P x TB + S C x + B TB0 + T
Cp t Cp
T = T + (1 )T 0 . (4.17)
AB TB = Ai TI + B (5.20)
onde
k
Ai =
Cp x i
MB h
AB = + Ai + S P x (5.21)
t Cp
M B0 0 h
B = S C x + TB + T
t Cp
AB TB = B (5.22)
Mtodos de aproximao das equaes para o contorno 49
onde
MB
AB =
t
(5.23)
k M B0 k h
B= TI +
0
+ S P x TB0 + S C x
Cp x i t Cp x Cp
i
xi = x
Volume fictcio
B qb I
w
Tf
x x
Fig. 5.2: Volumes fictcios.
T B + TI
Tf = (5.24)
2
resolvendo para TB
TB = TI + 2T f (5.25)
AB TB = Ai TI + B (5.26)
onde
AB = 1
AI = 1 (5.27)
B= 2T f
w q B = k w
(TI TB )
(5.28)
xi
Mtodos de aproximao das equaes para o contorno 51
ou seja
qB =
k
(TB TI ) qB=
k
TB
k
TI
xi xi xi
(5.29)
k k
TB = TI + q B
xi xi
AB TB = Ai TI + B (5.30)
com
k
AB =
xi
k
AI = (5.31)
xi
B = qB
q B = h (T TB ) (5.32)
TB T I
w q B = h w (T T f ) = w k (5.33)
xi
TB + TI
Tf = (5.34)
2
k k T + TI h h
TB TI = h T B = h T TB TI (5.35)
xi xi 2 2 2
e reagrupando
k h k h
+ TB = TI + h T (5.36)
xi 2 xi 2
AB TB = Ai TI + B (5.37)
com
k h
AB = +
xi 2
k h
AI = (5.38)
xi 2
B = h T
Este mtodo tem sido recomendados por pesquisadores pelo fato do mesmo
respeitar as leis de conservao e no introduzir incgnitas adicionais. A Figura 5.3
ilustra o procedimento.
xi
xf
qf B I
w
qb
Tf
f i
x
Fig. 5.3: Balano sobre as fronteiras.
s& w x + w q f w q i = (m Cp T ) (5.39)
t
onde
(TI TB )
qi = k i
xi
(5.40)
m = w x
fazendo M = x ,
( x Cp TB ) = (M B Cp TB ) = s& x + q f + k i (TI TB ) , (5.41)
t t xi
54 Mtodos de aproximao das equaes para o contorno
e S = s& / Cp = S B TB + S C , tem-se
ki q
( M B TB ) = (TI TB ) + f + S x
t Cp xi Cp
(5.42)
ki q
= (TI TB ) + f + (S BTB + S C ) x
Cp xi Cp
t + t
f (T )dt = f (T )t ,
Integrando no tempo com a considerao de que
t
ki q f
M B TB M T =
0
B B
0
(
T I TB + ) (
t + S C x + S B x TB t , ) (5.43)
Cp x i Cp
e reagrupando
MB k k M0 q f
TB = TI S B x TB + B TB0 + S C x + (5.44)
t Cp x i Cp x i t Cp
caso.
ABTB = AI TI + B (5.45)
Mtodos de aproximao das equaes para o contorno 55
onde
k
AI =
Cp x i
MB k
AB = + S B x (5.46)
t Cp x i
M B0 0 qf
B= TB + S C x +
t Cp
TB T f
q f = k f
xf
(5.47)
kf kf
q f = T f TB
xf xf
ABTB = AI TI + B (5.48)
onde
k
AI =
Cp x i
MB k
AB = + AI + S B x (5.49)
t Cp x f
M B0 0 k
B= TB + S C x + Tf
t Cp x f
56 Mtodos de aproximao das equaes para o contorno
(
q f = h T TB , ) (5.50)
( )
q f = h T T f = k f
(T
B T f ). (5.51)
xf
1
qf =
h
(T TB ) (5.52)
h x f
1 +
k
f
ABTB = AI TI + B (5.53)
onde
k
AI =
Cp x i
MB h
AB = + AI S B x + (5.54)
t x
Cp 1 + h
k
f
0
M h
B= TB0 + S C x +
B
T
t x
Cp 1 + h
k
f
Mtodos de aproximao das equaes para o contorno 57
Este exemplo visa ilustrar a metodologia de obteno das equaes para o contorno. O
problema mostrado na Figura 5.4 representa uma placa plana com uma gerao de calor
e com transferncia de calor por conveco nas fronteiras em regime permanente. Por
uma questo de facilidade de implementao, utiliza-se a tcnica de pontos sobre a
fronteira, conforme descrita na seo 5.1.
q f = h (T f T )
H=1m
s&
q f = h (T f T ) q f = h (T f T )
L=1m
q f = h (T f T )
k T k T s&
+ + =0 (5.55)
x Cp x y Cp y Cp
onde
s& / Cp = S P TP + S C
k k
An = x Ae = y
Cp y n Cp x e
, (5.57)
k k
As = x Aw = y
Cp y s Cp x w
A p = An + As + Aw + Ae S P x y
B = S C x y
A
xC x xD
(a) (b)
yA
y
C y D
yB
(c) (d)
x
B
q f = h x D (TP T )
W
P
e
(TW TP )
q f = h y A (TP T )
qw = k w y A
xw
(TS TP )
qs = k s x D S
ys
k k
As = xC As = xD
Cp y s Cp y s
k k
Ae = yA Aw = yA
Cp x e Cp x w
h h h h
A p = As + Ae + x C + y A S P x C y A A p = As + Aw + x D + y A S P x D y A
Cp Cp Cp Cp
h h h h
B = S C x C y A + x C T + y A T B = S C x D y A + x D T + y A T
Cp Cp Cp Cp
O balano de energia aplicado a cada uma das superfcies laterais resulta nas
equaes discretas mostradas na Tabela 5.2.
Superfcie A Superfcie B
A p TP = As TS + Ae TE + AwTW + B A p TP = An TN + Ae TE + AwTW + B
k k
As = x An = x
Cp y s Cp y n
k k
Ae = yA Ae = yB
Cp x e Cp x e
k k
Aw = yA Aw = yB
Cp x w Cp x w
h h
A p = As + Ae + Aw + x S P x y A A p = An + Ae + Aw + x S P x y B
Cp Cp
h h
B = S C x y A + x T B = S C x y B + x T
Cp Cp
Superfcie C Superfcie D
A p TP = An T N + As TS + Ae TE + B A p TP = An T N + As TS + AwTW + B
k k
An = xC An = xD
Cp y n Cp y n
k k
As = xC As = xD
Cp y s Cp y s
k k
Ae = y Aw = y
Cp x e Cp x w
h h
A p = An + As + Ae + y S P x C y A p = An + As + Aw + y S P x D y
Cp Cp
h h
B = S C x C y + y T B = S C x D y + y T
Cp Cp
1300
Temperatura mdia [K]
1175
1050
925
800
1 10 100 1000 10000
Nmero de volumes
Mtodos de Soluo do
Sistema de Equaes
Conforme discutido no Captulo 3, a soluo de um problema formulado
utilizando o mtodo de Volumes Finitos requer a resoluo de um sistema de equaes
lineares do tipo
Pk +1 =
1
Ap
(
An Nk + As Sk + AwWk + Ae Ek + A f Fk + Ab Bk + B k )
(6.1)
=
1
Ap
( A nb k
NB +B k
)
Incio
Arbitrar distribuio
inicial da varivel
Loop iterativo
Se
No convergiram Sim
todos os Fim
pontos
Pk +1 =
1
Ap
(
An Nk + As Sk +1 + AwWk +1 + Ae Ek + A f Fk + Ab Bk +1 + B k ) (6.2)
Caminho de soluo em z
N
W E
P
S
J calculadas
Fig. 6.2: Mtodo de Gauss-Seidel.
1 para todas.as.equaes
Anb =
(6.3)
Ap < 1 para.pelo.menos.uma.equao
68 Mtodo de soluo do sistema de equaes
1 2 m-1 m m+1 N
A p P = An N + As S + Ae E + AwW + B , (6.4)
Am m + Bm m +1 + C m m 1 = Dm (6.5)
com
C1 = 0 (uma vez que m1 no existe) (6.6)
m = Pm m+1 + Qm (6.8)
os valores de N 1 , N 2 ,..., 1 .
Mtodo de soluo do sistema de equaes 69
Bm D C m Qm1
m = m+1 + m (6.12)
( Am + C m Pm 1 ) Am + C m Pm1
Pm Qm
Bm Dm C m Qm 1
Pm = e Qm = (6.13)
( Am + C m Pm1 ) Am + C m Pm 1
No caso do volume "1" (m = 1), viu-se anteriormente pela equao (6.6) que
C1 = 0 , o que faz com que as equaes (6.13) sejam reduzidas a
B1 D1
P1 = e Q1 = (6.14)
A1 A1
N = PN N + Q N = Q N (6.15)
B1 D1
(1) Calcular P1 e Q1 por P1 = e Q1 =
A1 A1
Bm D C m Qm 1
(2) Usando as equaes recursivas Pm = e Qm = m
( Am + C m Pm1 ) Am + C m Pm 1
(3) Fazer N =Q N
por N 1 at 1
pk +1 = w pk +1 G S + (1 w) pK (6.16)
Mtodo de soluo do sistema de equaes 71
Em geral, o parmetro de sobre-relaxao assume valores entre 1,3 < w < 1,7
dependendo do tamanho da malha. Se w < 1,0 tem-se a chamada sub-relaxao, usada
para diminuir o avano do processo de soluo para evitar uma possvel divergncia em
problemas no-lineares.
R
k +1
= (B + k +1
nb Anb NB
k +1
A p Pk +1 )
2
(6.18)
volumes
k T k T s&
+ + =0 (6.19)
x Cp x y Cp y Cp
sendo que a gerao de calor no interior da placa (termo fonte) mxima no centro da
placa e nula em sua fronteira, obedecendo a seguinte equao
x x y
2 2
s& y
ST = = S 0 . (6.20)
L
Cp Lx L x L y y
T = 400 K
T = 300 K T = 300 K
L y = 20 mm
T = 300 K
L x = 20 mm
Fig. 6.4: Placa plana bidimensional.
A Tabela 6.2 apresenta o nmero de iteraes para cada caso estudado, sendo que
os mtodos associados ao S.O.R. apresentam o menor nmero de iteraes, ou seja, a
taxa de convergncia da soluo maior. Alm disso, quanto maior o nmero de
74 Mtodo de soluo do sistema de equaes
volumes, maior a reduo proporcionada pelo S.O.R.. evidente pela Tabela 6.2 que o
mtodo S.O.R.-TDMA aquele que apresenta a melhor taxa de convergncia,
diminuindo o nmero de em at 94 % em relao ao mtodo de Jacobi e 89 % em
relao ao mtodo de Gauss-Seidel para uma malha 20 x 20.
5x5 10 x 10 20 x 20
Jacobi 28 130 476
Gauss-Seidel 16 72 265
TDMA 11 40 146
S.O .R. Gauss-Seidel 9 (w = 1,23) 20 (w = 1,50) 42 (w = 1,72)
S .O .R. TDMA 6 (w = 1,10) 15 (w = 1, 38) 30 (w = 1,64)
w 5x5 10 x 10 20 x 20
1,0 16 72 265
1,1 13 60 222
1,2 10 49 186
1,3 11 40 154
1,4 15 31 125
1,5 18 20 99
1,6 24 24 74
1,7 32 37 49
1,8 52 55 53
1,9 107 103 115
1.99 1072 1065 1052
Mtodo de soluo do sistema de equaes 75
w 5x5 10 x 10 20 x 20
1,0 11 40 146
1,1 6 33 122
1,2 9 27 102
1,3 10 21 84
1,4 14 16 67
1,5 17 19 52
1,6 23 23 36
1,7 33 32 39
1,8 51 50 54
1,9 107 107 101
1.99 1089 1044 1047
300
S.O.R. - Gauss-Seidel
250
200
Iteraes
150 5x5
10 x 10
100 20 x 20
50
0
1 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2
Parmetro de sobre-relaxao "w"
150
S.O.R. - TDMA
120
90
Iteraes
60
5x5
30
10 x 10
20 x 20
0
1 1,2 1,4 1,6 1,8 2
Parmetro de sobre-relaxao "w"
2 a = 4 mm
L = 300 mm
n 1
du
= k & n 1 = k (6.21)
dy
w (Gauss-Seidel) 1.7
Sobrerelaxao
w (TDMA) 1.9
Parmetro da viscosidade k 18332,63
Parmetro da viscosidade n 0,36043
u p
= (6.22)
y y z
n
yn
y P
s
ys
S
Fig. 6.9: Volume de integrao unidimensional.
onde
A p = An + As ,
An = (6.24)
y n
As =
y s
B = (p L ) y
Nota-se que a viscosidade aparente deve ser calculada nas fronteiras "n" e "s" em
funo das velocidades U P , U N e U S ,
Mtodo de soluo do sistema de equaes 79
1 n 1 n
U UP
n = (k& )
1 n du
= k = k N (6.25)
y n
n
dy n
1 n 1 n
U US
s = (k& )
1 n du
= k = k P , (6.26)
y s
s
dy s
y [mm] 4
3.5
2.5
1.5
0.5
0
0 0.2 0.4 0.6 0.8 1
Velocidade [m/s]
1.00
0.80
0.70
0.60 Gauss-Seidel
TDMA
0.50
1 10 100 1000 10000 100000
Iteraes
Iteraes
Nmero de pontos Erro mximo [%]
TDMA Gauss-Seidel
3 30 25 44.84
5 35 420 11.01
7 35 1432 4.87
9 34 3326 2.74
11 34 6423 1.75
13 43 11017 1.21
15 55 16902 0.89
17 35 24419 0.68
19 37 33744 0.54
21 35 44969 0.44
23 36 58311 0.36
25 36 73775 0.30
Bibliografia
Exemplo de Programao
k T k T s&
+ + =0 (6.19)
x Cp x y Cp y Cp
sendo que a gerao de calor no interior da placa (termo fonte) mxima no centro da
placa e nula em sua fronteira, obedecendo a seguinte equao:
x x y y
2 2
s&
ST = = S 0 . (6.20)
L
Cp Lx L x L y y
86 Apndice A
i =1 i =2 i =3 ... i =N
j =M
:
:
T = 300 K :
Face oeste T = 300 K
j =3 Face leste
L y = 20 mm
j =2
j =1
PROGRAM Volumes
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
PARAMETER
1( Nmax=101 ,Mmax=101 )
LOGICAL
1 Conv
DIMENSION
1 Ap(Nmax,Mmax) ,An(Nmax,Mmax) ,
2 As(Nmax,Mmax) ,Aw(Nmax,Mmax) ,
3 Ae(Nmax,Mmax) ,B(Nmax,Mmax) ,
4 T(Nmax,Mmax) ,X(Nmax,Mmax) ,
5 Y(Nmax,Mmax)
C*********************************************************************
C Programa para o clculo da temperatura em uma placa plana
C*ACRONIM
C metodo_dos_VOLUMES_finitos
C*HISTRIA
C Nome Data Comentrio
C M.Vaz Jr. Abril 1999 Implementao inicial
C M.Vaz Jr. Julho 2006 Reformulao da estrutura
C*INTERNAL
C vetores
C Variables
C (c) Copyright 2006, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
C
C Abrir arquivo de resultados
C ---------------------------
is = 16
OPEN(UNIT=is,FILE='Volumes.res',STATUS='UNKNOWN')
C
C Inicializar variveis
C ---------------------
CALL DADOS
1( N ,M ,XL ,YL ,Ti ,
3 Tn ,Ts ,Te ,Tw ,Ck ,
4 Cp ,Bo ,Wsobre ,Nitmax ,Tol ,
5 NALGO )
C
C Clculo dos coeficientes e inicializa temperatura
C -------------------------------------------------
CALL COFTMP
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,X ,Y ,N ,
3 Nmax ,M ,Mmax ,XL ,YL ,
4 Tn ,Ts ,Te ,Tw ,Ti ,
5 Ck ,Cp ,Bo )
C
C Clculo da distribuio de temperatura
C --------------------------------------
IF(NALGO.EQ.1)THEN
C Mtodo de Jacobi
CALL JACOB
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
3 N ,Nmax ,M ,Mmax ,Tol )
ELSEIF(NALGO.EQ.2.OR.NALGO.EQ.3)THEN
C Mtodo de Gauss-Seidel
CALL SORGSD
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
88 Apndice A
C*********************************************************************
C
C Inicializar variveis
C ---------------------
C Dados do material
Ti = 50.0D0 ! [K] - Temperatura inicial arbitrada
Tn = 400.0D0 ! [K] - Temperatura da face norte
Ts = 300.0D0 ! [K] - Temperatura da face sul
Tw = 300.0D0 ! [K] - Temperatura da face oeste
Te = 300.0D0 ! [K] - Temperatura da face leste
Cp = 452.0D0 ! [W/kg k] - Calor especfico
Ck = 48.0D0 ! [W/mk] - Condutividade termica
s = 0.0D9 ! [W/m3] - Gerao de calor
Bo = s/Cp ! - Termo fonte
C Dados geomtricos da placa plana
XL = 20.0D-3 ! [m] - Comprimento da placa em X
YL = 20.0D-3 ! [m] - Comprimento da placa em Y
C Parametros do processo iterativo
Nitmax = 10000 ! Nmero mximo de iteracoes
Tol = 1.0D-05 ! [K] - Erro mximo
C Dados da malha cartesiana
N = 15 ! - Nmero de colunas
M = 15 ! - Nmero de linhas
C Escolha do algorithmo
C ---------------------
WRITE(*,*)
WRITE(*,*)' ---------------------------------------'
WRITE(*,*)' Programa ilustrativo de Volumes Finitos'
WRITE(*,*)' ---------------------------------------'
WRITE(*,*)
WRITE(*,*)' Escolha o algoritimo de solucao: '
WRITE(*,*)' 1 - Jacobi'
WRITE(*,*)' 2 - Gauss-Seidel'
WRITE(*,*)' 3 - Gauss-Seidel com sobre-relaxacao'
WRITE(*,*)' 4 - Gauss-Seidel TDMA'
WRITE(*,*)' 5 - Gauss-Seidel TDMA com sobre-relaxacao'
READ(*,*)NALGO
C L coeficiente de sobrerelaxao
IF( NALGO.EQ.1.OR.NALGO.EQ.2.OR.NALGO.EQ.4)THEN
Wsobre=R1
ELSEIF(NALGO.EQ.3.OR.NALGO.EQ.5)THEN
WRITE(*,*)
WRITE(*,*)' Entre com o coeficiente de sobre-relaxacao: '
WRITE(*,*)' Wsobre = 1 --> Metodo original'
WRITE(*,*)' Wsobre < 1 --> Sub-relaxacao - retarda convergencia'
WRITE(*,*)' 1.0 < Wsobre < 2.0 --> Sobre-relaxacao - avanca ',
1 'convergencia'
READ(*,*)Wsobre
ENDIF
RETURN
END
C*ACRONIM
C COeFicientes_da_TeMPeratura
C*HISTRIA
C Nome Data Comentrio
C M.Vaz Jr. Julho 2006 Implementao inicial
C*EXTERNAL
C vetores
C=T - Temperatura nodal
C=Ap - Coeficiente Ap
C=An - Coeficiente An
C=As - Coeficiente As
C=Ae - Coeficiente Ae
C=Aw - Coeficiente Aw
C=B - Termo fonte
C=X - Coordenada X da malha
C=Y - Coordenada Y da malha
C Variables
C N - Nmero de pontos da coluna i
C M - Nmero de pontos da linha j
C Nmax - Nmero mximo de colunas
C Mmax - Nmero mximo de linhas
C Te - Temperatura da fronteira E
C Tw - Temperatura da fronteira W
C Ts - Temperatura da fronteira S
C Tn - Temperatura da fronteira N
C Ti - Temperatura arbitrada inicial
C Bo - Termo fonte
C Cp - Calor especfico
C Ck - Condutividade trmica
C*INTERNAL
C Variveis
C i - Coluna
C j - Linha
C (c) Copyright 2006, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
C
C Calcular os coeficientes e inicializar temperatura
C --------------------------------------------------
DeltaX = XL/(N-1)
DeltaY = YL/(M-1)
DO 20 i=1,N
DO 10 j=1,M
C Inicializar coeficientes
An(i,j) = R0
As(i,j) = R0
Ae(i,j) = R0
Aw(i,j) = R0
Ap(i,j) = R1
B(i,j) = Ti
C Clculo das coordenadas da malha
Xx = DeltaX * (i-1)
Yy = DeltaY * (j-1)
X(i,j) = Xx
Y(i,j) = Yy
IF(j.EQ.1)THEN
C Face sul: temperatura igual a Ts
B(i,j)=Ts
T(i,j)=Ts
ELSEIF(j.EQ.M)THEN
C Face norte: temperatura igual a Tn
T(i,j)=Tn
B(i,j)=Tn
ELSEIF(i.EQ.1)THEN
C Face leste: temperatura igual a Te
T(i,j)=Te
B(i,j)=Te
ELSEIF(i.EQ.N)THEN
C Face oeste: temperatura igual a Tw
T(i,j)=Tw
B(i,j)=Tw
ELSE
C Interior da placa
T(i,j)=Ti
An(i,j) = Ck/Cp * DeltaX/DeltaY
As(i,j) = Ck/Cp * DeltaX/DeltaY
Ae(i,j) = Ck/Cp * DeltaY/DeltaX
Aw(i,j) = Ck/Cp * DeltaY/DeltaX
Apndice A 91
Ta(i,j)=T(i,j)
10 CONTINUE
20 CONTINUE
C -----------------
C Loop iterativo
C -----------------
DO 70 iter=1,Nitmax
C Fazer loop somente sobre o domnio
DO 40 i=2,N-1
DO 30 j=2,M-1
If((i.eq.1).and.(j.eq.1))Then
C Canto inferior esquerdo
T(i,j)=(An(i,j)*Ta(i,j+1) +
1 Ae(i,j)*Ta(i+1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf((i.eq.1).and.(j.eq.M))Then
C Canto superior esquerdo
T(i,j)=(As(i,j)*Ta(i,j-1) +
1 Ae(i,j)*Ta(i+1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf((i.eq.N).and.(j.eq.1))Then
C Canto inferior direito
T(i,j)=(An(i,j)*Ta(i,j+1) +
1 Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf((i.eq.N).and.(j.eq.M))Then
C Canto superior direito
T(i,j)=(As(i,j)*Ta(i,j-1) +
1 Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(i.eq.1)Then
C Coluna esquerda
T(i,j)=(An(i,j)*Ta(i,j+1) + As(i,j)*Ta(i,j-1) +
1 Ae(i,j)*Ta(i+1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(i.eq.N)Then
C Coluna direita
T(i,j)=(An(i,j)*Ta(i,j+1) + As(i,j)*Ta(i,j-1) +
1 Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(j.eq.1)Then
C Linha inferior
T(i,j)=(An(i,j)*Ta(i,j+1) +
1 Ae(i,j)*Ta(i+1,j) + Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(j.eq.M)Then
C Linha superior
T(i,j)=(As(i,j)*Ta(i,j-1) +
1 Ae(i,j)*Ta(i+1,j) + Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
Else
C Interior
T(i,j)=(An(i,j)*Ta(i,j+1) + As(i,j)*Ta(i,j-1) +
1 Ae(i,j)*Ta(i+1,j) + Aw(i,j)*Ta(i-1,j) + B(i,j)) /
2 Ap(i,j)
EndIf
30 CONTINUE
40 CONTINUE
C
C Calcular erro da iterao k+1 e atualizar Ta
C --------------------------------------------
C Inicializar contador de pontos nao convergidos
Ncom = 0
C Fazer loop sobre toda a malha
DO 60 i=1,N
DO 50 j=1,M
C Computar erro nodal
Erro = ABS(T(i,j)-Ta(i,j))
C Atualizar temperatura da iterao anterior Ta
Ta(i,j)=T(i,j)
IF(Erro.GT.Tol)THEN
C Incrementar contador de pontos nao convergidos
Ncom=Ncom+1
ENDIF
50 CONTINUE
60 CONTINUE
C
Apndice A 93
Ncom=Ncom+1
ENDIF
30 CONTINUE
40 CONTINUE
C
C Verificar se todos os pontos convergiram
C ----------------------------------------
IF(Ncom.EQ.0)THEN
Conv = .TRUE.
C Sai do loop iterativo se todos os pontos convergiram (Ncom=0)
GOTO 999
ENDIF
70 CONTINUE
999 CONTINUE
RETURN
END
C Vetores
C Ta - Temperatura da iterao anterior
C T1 - Temperatura da linha calculada pela rotina TDMA
C A1 - Vetor de trabalho da rotina TDMA
C B1 - Vetor de trabalho da rotina TDMA
C C1 - Vetor de trabalho da rotina TDMA
C D1 - Vetor de trabalho da rotina TDMA
C Variveis
C erro - Erro nodal = |T-Ta|
C Ncom - Nmero de pontos que no convergiram na iterao k+1
C i - Coluna
C j - Linha
C ic - ndice do vetor de entrada da rotina TDMA
C (c) Copyright 2006, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
C
C Inicializar variveis
C ---------------------
C Inicializar indicador de convergncia
Conv = .FALSE.
C Inicializar temperatura da iterao k=0
DO 20 i=1,N
DO 10 j=1,M
Ta(i,j)=T(i,j)
10 CONTINUE
20 CONTINUE
C -----------------
C Loop iterativo
C -----------------
DO 70 iter=1,Nitmax
C Inicializar contador de pontos nao convergidos
Ncom = 0
C Fazer loop sobre as linhas
DO 60 j=1,M
ic=0
C Transferir os coeficientes para os vetores TDMA
DO 30 i=1,N
ic=ic+1
A1(ic)=Ap(i,j)
B1(ic)=Ae(i,j)
C1(ic)=Aw(i,j)
IF(j.EQ.1)THEN
C Fronteira sul
D1(ic)=B(i,j) + An(i,j)*T(i,j+1)
ELSEIF(j.EQ.M)THEN
C Fronteira norte
D1(ic)=B(i,j) + As(i,j)*T(i,j-1)
ELSE
C Dominio
D1(ic)=B(i,j) + As(i,j)*T(i,j-1) + An(i,j)*T(i,j+1)
ENDIF
30 CONTINUE
C Calcular a temperatura da linha pelo mtodo TDMA
CALL TDMA
1( A1 ,B1 ,C1 ,D1 ,T1 ,
2 ic ,Imax )
C Atualizar temperatura da linha e verificar erro
ic = 0
DO 50 i=1,N
C Transferir temperatura da rotina TDMA para o vetor global
ic=ic + 1
C Calcular temperatura
T(i,j)=Wsobre*T1(ic)+(R1-Wsobre)*Ta(i,j)
C Computar erro nodal
Erro = ABS(T(i,j)-Ta(i,j))
C Atualizar temperatura da iterao anterior Ta
Ta(i,j)=T(i,j)
IF(Erro.GT.Tol)THEN
C Incrementar contador de pontos nao convergidos
Ncom=Ncom+1
ENDIF
50 CONTINUE
60 CONTINUE
C
C Verificar se todos os pontos convergiram
C ----------------------------------------
IF(Ncom.EQ.0)THEN
Apndice A 97
Conv = .TRUE.
C Sai do loop iterativo se todos os pontos convergiram (Ncom=0)
GOTO 999
ENDIF
70 CONTINUE
999 CONTINUE
RETURN
END
c
c
c****
c
c
C @(#) Module:<tdma.f> Version:1.0 Date:11/30/88
SUBROUTINE TDMA
1( a ,b ,c ,d ,T ,
2 n ,Imax )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
DIMENSION
1 a(Imax) ,b(Imax) ,
2 c(Imax) ,d(Imax) ,
3 T(Imax)
DIMENSION
1 p(Imax) ,q(Imax)
C*********************************************************************
c TriDiagonal Matrix Algorithm - TDMA
C*REFERENCES
C Patankar, S.V., Numerical Heat Transfer and Fluid Flow, Hemisphere
C Publishing Co., pp. 197, New York, 1980. (ver pagina 52)
C Maliska, C.R., Transferencia de Calor e Macanica dos Fluidos
C Computacional, Livros Tecnicos e Cientificos, pp.424,
C Rio de Janeiro, 1995. (ver pagina 59)
C*ACRONYM
C algortimo_TDMA
C*HISTRIA
C Name Date Comment
C M.Vaz Jr. Aug87 Initial coding
C M.Vaz Jr. April99 Change local array dimensions
C*EXTERNAL
C Vetores
C=T - Temperatura atual
C a - Coeficiente do mtodo TDMA
C b - Coeficiente do mtodo TDMA
C c - Coeficiente do mtodo TDMA
C d - Coeficiente do mtodo TDMA
C Variveis
C Imax - Dimenso mxima dos vetores
C n - Nmero mximo de pontos
C (c) Copyright 1988, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
C Inicializao
p(1)=b(1)/a(1)
q(1)=d(1)/a(1)
C Loop sobre a linha/coluna para calcular "p" e "q"
DO 10 i=2,n
p(i)=b(i)/(a(i)-c(i)*p(i-1))
q(i)=(d(i)+c(i)*q(i-1))/(a(i)-c(i)*p(i-1))
10 CONTINUE
C Clculo da temperatura
T(n)=q(n)
n1=n-1
DO 20 i=1,n1
T(n-i)=p(n-i)*T(n-i+1)+q(n-i)
20 CONTINUE
RETURN
END
4 iter ,is )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
LOGICAL
1 Conv
DIMENSION
1 T(Nmax,Mmax) ,X(Nmax,Mmax) ,
2 Y(Nmax,Mmax)
C*********************************************************************
C Imprime os resultados
C*ACRONIM
C imprime_os_RESULTados
C*HISTRIA
C Nome Data Comentrio
C M.Vaz Jr. Julho 2006 Implementao inicial
C*EXTERNAL
C vetores
C T - Temperatura nodal
C X - Coordenada X da malha
C Y - Coordenada Y da malha
C Variables
C N - Nmero de pontos da coluna i
C M - Nmero de pontos da linha j
C Nmax - Nmero mximo de colunas
C Mmax - Nmero mximo de linhas
C NALGO - Nmero do algoritmo
C iter - Nmero de iteraes
C Wsobre - Parmetro de sobrerelaxao
C is - Nmero do arquivo de resultados
C*INTERNAL
C Variveis
C i - Coluna
C j - Linha
C (c) Copyright 2006, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
1000 FORMAT(9X,'y \ x',2X,' | ',101F16.9)
1100 FORMAT(F16.9,' | ',101F16.9)
C
C Impresso dos resultados
C ------------------------
WRITE( *,*)
WRITE( is,*)
IF(NALGO.EQ.1)THEN
WRITE( *,*)'***Metodo de Jacobi ***'
WRITE(is,*)'***Metodo de Jacobi ***'
ELSEIF(NALGO.EQ.2)THEN
WRITE( *,*)'***Metodo de Gauss-Seidel ***'
WRITE(is,*)'***Metodo de Gauss-Seidel ***'
ELSEIF(NALGO.EQ.3)THEN
WRITE( *,*)'***Metodo de Gauss-Seidel com relaxacao ***'
WRITE( *,*)'Parametro: ',Wsobre
WRITE(is,*)'***Metodo de Gauss-Seidel com relaxacao ***'
WRITE(is,*)'Parametro: ',Wsobre
ELSEIF(NALGO.EQ.4)THEN
WRITE( *,*)'*** Metodo de Gauss-Seidel/TDMA ***'
WRITE(is,*)'*** Metodo de Gauss-Seidel/TDMA ***'
ELSEIF(NALGO.EQ.5)THEN
WRITE( *,*)'**Metodo de Gauss-Seidel/TDMA com relaxacao **'
WRITE( *,*)'Parametro: ',Wsobre
WRITE(is,*)'**Metodo de Gauss-Seidel/TDMA com relaxacao **'
WRITE(is,*)'Parametro: ',Wsobre
ENDIF
IF(Conv)THEN
C O problema convergiu
WRITE( *,*)
WRITE( *,*)'Problema convergiu em ',Iter,' iteracoes.'
WRITE(is,*)'Problema convergiu em ',Iter,' iteraes.'
WRITE(is,*)
WRITE(is,*)'Distribuicao de temperatura final'
WRITE(is,*)
WRITE(is,1000)(X(i,1),i=1,N)
DO 10 j=M,1,-1
WRITE(is,1100)Y(1,j),(T(i,j),i=1,N)
10 CONTINUE
ELSE
C O problema no convergiu
WRITE( *,*)
WRITE(is,*)
Apndice A 99