Professional Documents
Culture Documents
Apostila Análise Computacional de Termofluidos
Apostila Análise Computacional de Termofluidos
INTRODUÇÃO AO MÉTODO DE
VOLUMES FINITOS
Agosto, 2022
6a Edição
Índice
1. Introdução 1
1.1 Métodos de aproximação numérica 2
1.2 Conclusão 3
2. Equações de governo 5
2.1 Equação da energia 5
2.2 Generalização para outras equações de governo 9
2.3 Problemas elípticos parabólicos e hiperbólicos 11
2.4 Escolha de coordenadas 12
6. Métodos de solução 65
6.1 Método de Jacobi 66
6.2 Método de Gauss-Seidel 67
6.3 Método linha-por-linha TDMA 68
6.4 Método das sobre-relaxações 70
6.5 Aspectos de convergência 71
6.6 Exemplo ilustrativo de comparação entre os métodos 71
6.6.1 Condução de calor em uma placa plana 72
6.6.2 Escoamento de fluido não newtoniano entre placas planas 76
7. Bibliografia 83
Introdução
Métodos numéricos têm recebido considerável atenção nos dias de hoje devido
ao grande avanço na tecnologia dos computadores.
Nós
Elementos
Elementos na fronteira
Nós
Elemento de integração
das Equações diferenciais
Nó
1.2 Conclusão
Equações de Governo
A aplicação do método dos volumes finitos requer que as equações de governo
envolvidas estejam na forma diferencial. As equações na forma diferencial da
conservação de massa, energia e momento podem ser obtidas a partir do balanço das
respectivas leis em um volume de controle infinitesimal. Como exemplo, a seção 2.1
ilustra a obtenção da equação da conservação da energia.
onde Q& é a taxa líquida de energia trocada pelo volume de controle, W é a potência, 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 equação simplificada é
∂ r r
Q& = ∫ u ρ d∀ + ∫ h ρ V ⋅ dA (2.2)
∂ t VC SC
Equações de governo 7
∂ ∂ ∂ ∂u ∂u
∫ u ρ d∀ = u ∫ ρ d∀ = (u m ) = m= ρ dx dy dz (2.3)
∂ t VC ∂ t VC ∂t ∂t ∂t
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 equação (2.2) inclui a energia transferida por
condução e o termo fonte de geração 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 Equações 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 expansão em série 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
Equações 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 equação da energia descrita na seção 2.1 está escrita de uma forma que os
coeficientes k/Cp a variável T e o parâmetro s& /Cp podem ser generalizados de forma a
serem aplicados a outras equações 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
Equação da transferência 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&
Equação da conservação de energia Γφ = φ =T Sφ =
Cp Cp
∂p
r S φ = SV +
Equação da quantidade de movimento φ
Γ =u φ =v ∂xi
Equações 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 parabólico.
condição de
contorno em x = L
condição de
∂ k ∂T ∂
contorno em x = 0 = ( ρT )
∂x Cp ∂x ∂t
⇐ qx
Termo difusivo em x
(derivada segunda)
Métodos das
Diferenças Finitas
A equação de governo genérica para φ pode ser aproximada usando os métodos de
Diferenças Finitas (série de Taylor) e Volumes Finitos dentre outros. Neste capítulo é
apresentado o método das diferenças finitas visando introduzir ao leitor as técnicas de
aproximação numérica 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
Deste modo, a diferencial dx é aproximada por uma variação finita ∆x, e a função
φ é avaliada para os pontos xi + ∆x e xi − ∆x
14 Método das Diferenças Finitas
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 equações para φ i e ϕ i +1 , os termos da derivada primeira, , e da
∂x
∂ 2φ
derivada Segunda, , são aproximados conforme mostrado nas seções 3.2 e 3.3.
∂x 2
Método das Diferenças 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 equação da série
∂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 são desprezados e a aproximação é dita
dx 2
como sendo da ordem de ∆x , logo,
dφ φ − φi
= i +1 (3.6)
dx i ∆x
16 Método das Diferenças Finitas
dφ
Na derivada à ré, a derivada é aproximada a partir da expansão da série 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 são desprezados e
dx 2
aproximação também é da ordem de ∆x , assim,
dφ φ − φ i −1
= i (3.8)
dx i ∆x
dφ
A derivada central aproxima através da subtração da equação (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
aproximação é dita de ordem ∆x 2 . Isto implica em uma aproximação de menor erro.
Assim,
dφ φ ( xi + ∆x ) − φ ( xi − ∆x )
= (3.10)
dx i 2∆x
Método das Diferenças Finitas 17
d 2φ
A exemplo do caso anterior, a derivada segunda, , também pode ser
dx 2
aproximada a partir das três 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 Método das Diferenças Finitas
Derivada central em
∂φ
relação xi+1/2 ψ i +1 / 2 =
∂x
φ i +1 / 2
φi +1
∂φ φi
Derivada central ψ i −1 / 2 =
em relação xi-1/2 ∂x i −1 / 2
φi −1
∆x
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
Método das Diferenças 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 são aproximadas
∂ x2 ∂ y2
como descrito na seção 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,
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 )
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 geração 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 solução.
22 Método das Diferenças 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
Método das Diferenças Finitas 23
1
Em geral, a solução do sistema de equações é feita com auxílio de métodos 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 são apresentados no Capítulo 6.
24 Método das Diferenças Finitas
Capítulo 4
Método dos
Volumes Finitos
∂ ( ρ T ) ∂ k ∂T
= + S T (4.1)
∂t ∂x Cp ∂x
∆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 específica 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 parâmetro 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: Integração 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 Método dos volumes finitos
deste modo,
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)
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
Método 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 equação geral de um problema de condução 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
função 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 Método 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 Cp∆´x
ρ Cp ∆t ∆x 2 ∆x 2
−2 2 ≥0 ⇒ −2≥0 ⇒ ≥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
Método 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 - Consistência nas faces dos volumes de controle: esta regra estabelece que
os fluxos calculados nas faces adjacente dos volumes de controle sejam representados
pela mesma expressão 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 é desejável 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 equação
geral é composta por derivadas segundas, uma temperatura qualquer acrescida de uma
constante C, T = T + C e outra T satisfazem a equação diferencial. A equação 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 função não-linear da temperatura, com isso, faz-se
necessário uma linearização que produza uma equação 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 Método 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
iteração anterior
Fig. 4.4: Linearização do termo fonte.
*
dS
dT
( )
= −12 T *
2
S* = 5 − 4 T * ( )3
ou seja,
Método 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
Método 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 fenômeno físico.
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
∆x
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 equação 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 são 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 aproximação 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 integração 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
Método dos volumes finitos 41
k k k
An = ∆x ∆z Ae = ∆y∆z Ab = ∆x∆y
Cp δ y n Cp δ x e Cp δ z b
, ,
k k k
As = ∆x∆z Aw = ∆y∆z Af = ∆x∆y
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 Métodos de aproximação das equações para o contorno
( )
t + ∆t
S θ = S C + S B TBθ e ∫ f (T ) dt = f T θ ∆ t. (5.9)
t
tem-se
qθB 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 .
Métodos de aproximação das equações para o contorno 47
Método implícito: Desta forma, a equação discreta para o caso totalmente implícito
(θ = 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)
Métodos de aproximação das equações 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 fictício
B qb I
w
Tf
∆x ∆x
Fig. 5.2: Volumes fictícios.
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
Métodos de aproximação das equações 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 método tem sido recomendados por pesquisadores pelo fato do mesmo
respeitar as leis de conservação e não introduzir incógnitas adicionais. A Figura 5.3
ilustra o procedimento.
δ xi
δ xf
qf B I
w
qb
Tf
f i
∆x
Fig. 5.3: Balanço 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 Métodos de aproximação das equações 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 consideração 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)
Métodos de aproximação das equações 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 Métodos de aproximação das equações 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
Métodos de aproximação das equações para o contorno 57
Este exemplo visa ilustrar a metodologia de obtenção das equações para o contorno. O
problema mostrado na Figura 5.4 representa uma placa plana com uma geração de calor
e com transferência de calor por convecção nas fronteiras em regime permanente. Por
uma questão de facilidade de implementação, utiliza-se a técnica de pontos sobre a
fronteira, conforme descrita na seção 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 balanço de energia aplicado a cada uma das superfícies laterais resulta nas
equações discretas mostradas na Tabela 5.2.
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
Superfície C Superfície 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 média [K]
1175
1050
925
800
1 10 100 1000 10000
Número de volumes
Métodos de Solução do
Sistema de Equações
Conforme discutido no Capítulo 3, a solução de um problema formulado
utilizando o método de Volumes Finitos requer a resolução de um sistema de equações
lineares do tipo
φ Pk +1 =
1
Ap
(
Anφ Nk + Asφ Sk + AwφWk + Aeφ Ek + A f φ Fk + Abφ Bk + B k )
(6.1)
=
1
Ap
(∑ A nb φ k
NB +B k
)
Início
Arbitrar distribuição
inicial da variável
Loop iterativo
Se
Não convergiram Sim
todos os Fim
pontos
φ Pk +1 =
1
Ap
(
Anφ Nk + Asφ Sk +1 + AwφWk +1 + Aeφ Ek + A f φ Fk + Abφ Bk +1 + B k ) (6.2)
Caminho de solução em z
N
W E
P
S
Já calculadas
Fig. 6.2: Método de Gauss-Seidel.
≤ 1 para todas.as.equações
∑ Anb =
(6.3)
Ap < 1 para.pelo.menos.uma.equação
68 Método de solução do sistema de equações
1 2 m-1 m m+1 N
com
C1 = 0 (uma vez que φ m−1 não existe) (6.6)
os valores de φ N −1 , φ N −2 ,..., φ1 .
Método de solução do sistema de equações 69
− Bm D − C m Qm−1
φm = φ m+1 + m (6.12)
( Am + C m Pm −1 ) Am + C m Pm−1
Pm Qm
que, comparado com a equação inicial (6.8) φ m = Pmφ m+1 + Qm obtém-se as seguintes
equações de recorrência:
− Bm Dm − C m Qm −1
Pm = e Qm = (6.13)
( Am + C m Pm−1 ) Am + C m Pm −1
No caso do volume "1" (m = 1), viu-se anteriormente pela equação (6.6) que
C1 = 0 , o que faz com que as equações (6.13) sejam reduzidas a
B1 D1
P1 = − e Q1 = (6.14)
A1 A1
Além disso, no caso do volume "N" (m = N), o termo φ N +1 não existe, exigindo
φ 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 equações recursivas Pm = e Qm = m
( Am + C m Pm−1 ) 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)
Método de solução do sistema de equações 71
Em geral, o parâmetro de sobre-relaxação assume valores entre 1,3 < w < 1,7
dependendo do tamanho da malha. Se w < 1,0 tem-se a chamada sub-relaxação, usada
para diminuir o avanço do processo de solução para evitar uma possível divergência em
problemas não-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 geração de calor no interior da placa (termo fonte) é máxima no centro da
placa e nula em sua fronteira, obedecendo a seguinte equação
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 número de iterações para cada caso estudado, sendo que
os métodos associados ao S.O.R. apresentam o menor número de iterações, ou seja, a
taxa de convergência da solução é maior. Além disso, quanto maior o número de
74 Método de solução do sistema de equações
volumes, maior a redução proporcionada pelo S.O.R.. É evidente pela Tabela 6.2 que o
método S.O.R.-TDMA é aquele que apresenta a melhor taxa de convergência,
diminuindo o número de em até 94 % em relação ao método de Jacobi e 89 % em
relação ao método 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
Método de solução do sistema de equações 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
Iterações
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
Parâmetro de sobre-relaxação "w"
150
S.O.R. - TDMA
120
90
Iterações
60
5x5
30
10 x 10
20 x 20
0
1 1,2 1,4 1,6 1,8 2
Parâmetro de sobre-relaxação "w"
2 a = 4 mm
L = 300 mm
n −1
du
η = k γ& n −1 = k (6.21)
dy
w (Gauss-Seidel) 1.7
Sobrerelaxação
w (TDMA) 1.9
Parâmetro da viscosidade k 18332,63
Parâmetro da viscosidade n 0,36043
∂ ∂u ∂p
η = (6.22)
∂y ∂y ∂z
n
δ yn
∆y P
s
δ ys
S
Fig. 6.9: Volume de integração 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
função das velocidades U P , U N e U S ,
Método de solução do sistema de equações 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
Iterações
Iterações
Número de pontos Erro máximo [%]
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 Programação
∂ k ∂T ∂ k ∂T s&
+ + =0 (6.19)
∂x Cp ∂x ∂y Cp ∂y Cp
sendo que a geração de calor no interior da placa (termo fonte) é máxima no centro da
placa e nula em sua fronteira, obedecendo a seguinte equação:
x x y y
2 2
s&
ST = = S 0 − . − (6.20)
L
Cp Lx L x L y y
86 Apêndice 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 cálculo da temperatura em uma placa plana
C*ACRONIM
C metodo_dos_VOLUMES_finitos
C*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Abril 1999 Implementação inicial
C M.Vaz Jr. Julho 2006 Reformulação 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 variáveis
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 Cálculo 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 Cálculo da distribuição de temperatura
C --------------------------------------
IF(NALGO.EQ.1)THEN
C Método 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 Método de Gauss-Seidel
CALL SORGSD
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
88 Apêndice A
C*********************************************************************
C
C Inicializar variáveis
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 específico
Ck = 48.0D0 ! [W/mk] - Condutividade termica
s = 0.0D9 ! [W/m3] - Geração de calor
Bo = s/Cp ! - Termo fonte
C Dados geométricos 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 ! Número máximo de iteracoes
Tol = 1.0D-05 ! [K] - Erro máximo
C Dados da malha cartesiana
N = 15 ! - Número de colunas
M = 15 ! - Número 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 sobrerelaxação
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*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Julho 2006 Implementação 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 - Número de pontos da coluna i
C M - Número de pontos da linha j
C Nmax - Número máximo de colunas
C Mmax - Número máximo 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 específico
C Ck - Condutividade térmica
C*INTERNAL
C Variáveis
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 Cálculo 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
Apêndice 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 domínio
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 iteração 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 iteração 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
Apêndice 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 iteração 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 Variáveis
C erro - Erro nodal = |T-Ta|
C Ncom - Número de pontos que não convergiram na iteração 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 variáveis
C ---------------------
C Inicializar indicador de convergência
Conv = .FALSE.
C Inicializar temperatura da iteração 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 método 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 iteração 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
Apêndice 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 algorítimo_TDMA
C*HISTÓRIA
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 método TDMA
C b - Coeficiente do método TDMA
C c - Coeficiente do método TDMA
C d - Coeficiente do método TDMA
C Variáveis
C Imax - Dimensão máxima dos vetores
C n - Número máximo de pontos
C (c) Copyright 1988, Miguel Vaz Jr., Joinville-SC
C*********************************************************************
C Inicialização
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 Cálculo 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*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Julho 2006 Implementação 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 - Número de pontos da coluna i
C M - Número de pontos da linha j
C Nmax - Número máximo de colunas
C Mmax - Número máximo de linhas
C NALGO - Número do algoritmo
C iter - Número de iterações
C Wsobre - Parâmetro de sobrerelaxação
C is - Número do arquivo de resultados
C*INTERNAL
C Variáveis
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 Impressão 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,' iterações.'
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 não convergiu
WRITE( *,*)
WRITE(is,*)
Apêndice A 99