You are on page 1of 104

UNIVERSIDADE DO ESTADO DE SANTA CATARINA

CENTRO DE CIÊNCIAS TECNOLÓGICAS


DEPARTAMENTO DE ENGENHARIA MECÂNICA

INTRODUÇÃO AO MÉTODO DE
VOLUMES FINITOS

Miguel Vaz Júnior


E.Mec. M.Eng. Ph.D.

Agosto, 2022
6a Edição

Laboratório de Mecânica Computacional


Campus Universitário - Bom Retiro
89223-100 - Joinville-SC - Brasil
Tel.: +55 (0xx)47-4009-7971
Fax: +55 (0xx)47-4009-7240
L A M E C
email: Miguel.vaz@udesc.br
Índice ii

Introdução ao Método de Volumes Finitos


Autor: Miguel Vaz Júnior
Edição: Centro de Ciências Tecnológicas
Universidade do Estado de Santa Catarina
Agosto de 2022
Índice iii
Índice iv

Í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

3. Método das diferenças finitas 13


3.1 Aproximação em série de Taylor 13
3.2 Aproximação da derivada primeira 15
3.3 Aproximação da derivada segunda 17
3.4 Aproximação do termo difusivo 17
3.5 Exemplo ilustrativo 19

4. Método dos volumes finitos 25


4.1 Condução de calor unidimensional transiente 25
4.1.1 Método explícito 29
4.1.2 Método implícito 30
4.2 Regras básicas na determinação das equações aproximadas 31
4.3 Linearização do termo fonte 33
4.4 Avaliação das propriedades na fronteira 36
4.5 Equação geral da condução 37
4.6 A estrutura da matriz dos coeficientes 41
4.7 Tratamento das não-linearidades 42

5. Métodos de aproximação das equações para o contorno 43


5.1 Pontos sobre a fronteira 43
5.1.1 Temperatura prescrita 44
5.1.2 Fluxo prescrito 44
Índice v

5.1.3 Convecção na fronteira 47


5.2 Volumes fictícios 49
5.2.1 Temperatura prescrita 50
5.2.2 Fluxo prescrito 50
5.2.3 Convecção na fronteira 51
5.3 Balanço nos volumes da fronteira 53
5.3.1 Fluxo prescrito 54
5.3.2 Temperatura prescrita 55
5.3.3 Convecção na fronteira 56
5.4 Exemplo ilustrativo 57

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

Apêndice A - Exemplo de programação 85


A.1 Programa principal 87
A.2 Sub-rotina para entrada de dados 88
A.3 Sub-rotina para o cálculo dos coeficientes 89
A.4 Sub-rotina para o método de Jacobi 91
A.5 Sub-rotina para o método de Gauss-Seidel 93
A.6 Sub-rotina para o método TDMA 95
A.7 Sub-rotina para a saída de resultados 97
A.8 Arquivo de resultados 99
Capítulo 1

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.

Os Métodos computacionais vêm no apoio ao desenvolvimento experimental .

Vantagens : Baixo custo experimentação é cara

Velocidade permite facilmente simulações com diferentes


geometrias e dimensões

Informação completa obtem-se valores de variações outrossim


indisponíveis experimentalmente

Facilidade de simular condições reais facilidade em alterar valores


de condições de contorno
2 Introdução

Desvantagens : Modelo matemático alguns fenômenos físicos são de difícil


modelamento numérico

Precisão do modelo numérico às vezes muitas hipóteses


simplificativas são assumidas

Complexidade do fenômeno às vezes o fenômeno é tão complexo


que exigiria tantas aproximações que a
solução numérica não é confiável

1.1 Métodos de Aproximação Numérica

Há diversos métodos ditos numéricos, os quais aproximam o fenômeno através de um


modelo matemático. Dentre eles, os mais conhecidos são :

Método dos elementos finitos: divide o domínio em pequenos elementos, onde a


solução é interpolada a partir dos nós do elemento.

Nós
Elementos

Fig. 1.1: Elementos Finitos.


Introdução 3

Método dos elementos de contorno: transforma as equações no domínio em equações


na fronteira e aplica as técnicas de elementos finitos na nova situação.

Elementos na fronteira
Nós

Fig. 1.2: Elementos de contorno.

Método dos volumes finitos: Integra as equações diferenciais do problema em um


volume conhecido. Comumente usado em conjunto com malhas estruturadas .

Elemento de integração
das Equações diferenciais

Fig. 1.3: Volumes finitos.

1.2 Conclusão

A escolha do método numérico mais adequado em geral é baseada no tipo de fenômeno


a ser simulado. Em geral, problemas elasto-plásticos são simulados usando o método de
4 Introdução

Elementos Finitos, enquanto que em problemas de transporte de calor/massa e momento


aplica-se o método dos Volumes Finitos.
Capítulo 2

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.

2.1 Equação da energia

A equação da energia pode ser obtida a partir do balanço de energia no volume de


controle infinitesimal mostrado na Figura 2.1.

A equação da energia na forma integral é

0 (1) 0 (2) 0 (2) 0 (2) 0 (2)


∂  V2   V2  r r
Q& − W = ∫  u + + g z  ρ d∀ + ∫ h + + gz  ρ V ⋅ dA (2.1)
∂ t VC  2  SC  2 
6 Equações de governo

onde Q& é a taxa líquida de energia trocada pelo volume de controle, W é a potência, u é

a energia interna, h é a entalpia, V 2 / 2 é a energia cinética, g z é a energia potencial e


ρ é a massa específica.

As hipóteses assumidas são: (1) Não há trabalho associado ao volume de controle;


V2 V2
(2) + g z << u e + g z << h ;
2 2
(3) Propriedades uniformes no interior do volume de
controle;
(4) Propriedades uniformes sobre cada superfície do
volume de controle.

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

Fig. 2.1: Balanço de energia no volume de controle.

A equação simplificada é

∂   r r
Q& =  ∫ u ρ d∀  + ∫ h ρ V ⋅ dA (2.2)
∂ t  VC  SC
Equações de governo 7

a partir da qual a integral no volume é aproximada por

∂   ∂   ∂ ∂u ∂u
 ∫ u ρ d∀  =  u ∫ ρ d∀  = (u m ) = m= ρ dx dy dz (2.3)
∂ t  VC  ∂ t  VC  ∂t ∂t ∂t

enquanto que a integral na superfície de controle

∫ 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 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

Q& = s& dx dy dz + ∑ q e Ae − ∑ q s As (2.6)

e, substituindo os termos (2.3), (2.4) e (2.6) na equação da conservação da energia, tem-


se

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

Os termos em y e z são aproximados de forma semelhante, logo, a equação (2.8) é


reduzida a

∂  ∂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

Fazendo Cp = Cv e rearranjando, tem-se

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

2.2 Generalização para outras equações de governo

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.

Assim, fazendo φ = T , s&φ = S T = s& / Cp e Γ φ = Γ T = k / Cp , obtém-se a equação


geral

∂  φ ∂φ  ∂  φ ∂φ  ∂  φ ∂φ 
Sφ Γ  + Γ  + Γ =
∂x  ∂x  ∂y  ∂y  ∂z  ∂z 
(2.14)
∂ ∂ ∂ ∂
= ( ρ uφ ) + ( ρ vφ ) + ( ρ wφ ) + ( ρφ )
∂x ∂y ∂z ∂T

Deste modo, os valores de φ , Γ φ e S φ são definidos de acordo com a equação de


governo em questão conforme exemplificado abaixo.
10 Equações de governo

Equação da conservação da massa:

0=

( ρ u ) + ∂ ( ρ v ) + ∂ ( ρ w) + ∂ρ (2.15)
∂x ∂y ∂z ∂t

Equação da conservação da quantidade de movimento: (equação vetorial onde


r r r r
v = u i + v j + wk )

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

Equação da conservação de massa Γφ = 0 φ =1 Sφ = 0

Equação da transferência de massa Γ φ = ρ D AB φ = mA S φ = n& A

∂p
r S φ = SV +
Equação da quantidade de movimento φ
Γ =u φ =v ∂xi
Equações de governo 11

2.3 Problemas elípticos, parabólicos e hiperbólicos

É importante conhecer as características das equações de governo a fim de tirar


vantagens computacionais na hora de modelar o fenômeno. Há três tipos de problemas:
parabólico, hiperbólico e elíptico.

De um modo geral diz-se que os problemas parabólicos e hiperbólicos permitem


um procedimento de solução em marcha, enquanto que os problemas elípticos não.

U∞ Seção de cálculo (a ser determinada)

seção anterior (conhecida)


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.

O problema parabólico permite a solução em marcha ao longo de uma


coordenada enquanto que um problema hiperbólico a marcha se dá ao longo de um
parâmetro característico do problema (exemplo do cone de Mach em escoamentos
supersônicos). Nesta classe de problema leva-se em conta apenas os termos convectivos
da equação diferencial (ver Figura 2.2 para o exemplo de um 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)

Fig. 2.3: Problema elíptico.


12 Equações de governo

A vantagem deste tipo de aproximação é um menor armazenamento de variáveis


uma vez que se necessita apenas duas seções de cálculos. Em problemas elípticos, os
termos difusivos da equação diferencial não permitem a solução em marcha uma vez
que necessitam as condições de contorno à jusante e à montante (ver Figura 2.3).

2.4 Escolha de coordenadas

Além das tradicionais coordenadas cartesianas, cilíndricas e esféricas, tem sido


comum a utilização de coordenadas generalizadas a fim de utilizar malhas que se
adaptam à geometria dos problemas.

(a) Malha cartesiana. (b) Malha coincidente com a fronteira.

Fig. 2.4: Tipos de malhas.

É importante ressaltar que as malhas em coordenadas generalizadas podem ser


ortogonais (eixos coordenados fazem 90º entre si) ou não ortogonais (eixos coordenados
fazem entre si um ângulo diferente de 90º).

(a) malha ortogonal (b) malha não ortogonal

Fig. 2.5: Malhas estruturadas ortogonais e não ortogonais.

A solução é, portanto, transformada de uma coordenada qualquer para uma


coordenada cartesiana através de técnicas de mapeamento, ou seja, a equação de
governo é resolvida para a malha cartesiana equivalente ζ - η.
Capítulo 3

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.

3.1 Aproximação em séries de Taylor

Neste método, os termos da equação de governo são aproximados individualmente


usando a série de Taylor.

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

A Figura 3.1 representa as aproximações descritas acima.

φ(xi + ∆x)
φ(xi )
φ(xi -∆x)

∆x ∆x

x
xi - ∆x xi xi + ∆x

Fig. 3.1: Diferenças finitas.

Por uma questão de simplicidade de notação, definem-se

φ (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

3.2 Aproximação da derivada primeira

Há basicamente 3 tipos de aproximações possíveis da derivada primeira: derivada


à frente, derivada à ré e derivada central, conforme ilustrado na Figura 3.2.

derivada no ponto xi
∂φ
(xi )
∂x
φ
φi
φi +1

derivada
à ré φi −1
derivada à
derivada frente
central

x
xi-1 xi xi+1

Fig. 3.2: Aproximação da derivada primeira.

∂φ
Na derivada à frente, a derivada é aproximada a partir da equação da série
∂x i

de Taylor para φ (xi + ∆x ) ,

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


Na derivada à ré, a derivada é aproximada a partir da expansão da série de
dx i

Taylor para φ (xi − ∆x ) ,

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


A derivada central aproxima através da subtração da equação (3.7) para
dx i

φ (xi − ∆x ) da equação (3.5) para φ (xi + ∆x ) ,

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

3.3 Aproximação da derivada segunda

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.

A derivada central é aproximada somando-se as equações (3.5) e (3.6) para


φ (xi + ∆x ) e φ (xi − ∆x ) respectivamente,

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

Neste caso, a aproximação da derivada segunda é da ordem de ∆x 2 ,

d 2φ φ i +1 + φ i −1 − 2φ i
= (3.12)
dx 2 ∆x 2

3.4 Aproximação do termo difusivo

O do termo difusivo da equação de governo é aquele onde aparecem expressões


∂  φ ∂φ 
do tipo Γ  . A aproximação é obtida aplicando-se o conceito de derivada
∂x  ∂x 
central nos subintervalos mostradas na Figura 3.3.

∂φ
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

Fig. 3.3: Aproximação central da derivada segunda.

∂  φ ∂φ  ∂ψ
Γ = (3.13)
∂x  ∂x  ∂x

e, no ponto i, a derivada ∂ψ / ∂x pode ser calculada por

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

que, substituindo na equação inicial, resulta

 φ − φ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

Assim, se Γ φ = 1 a equação (3.18) torna-se idêntica à (3.12) referente ao caso da


d 2φ
aproximação de .
dx 2

3.5 Exemplo ilustrativo

Seja um problema de condução de calor em regime permanente em uma placa


plana bidimensional com temperatura prescrita em todas as faces. A Figura 3.4
apresenta um desenho esquemático do problema.

TN

TW TE H=4m

TS

L=4m
Fig. 3.4: Placa plana.

A equação de governo para este caso é


20 Método das Diferenças Finitas

∂  k ∂T  ∂  k ∂T 
ST +  +  =0 (3.19)
∂x  Cp ∂x  ∂y  Cp ∂y 

sendo que as derivadas em x e y são aproximadas individualmente ao longo de i e j


conforme mostrado na Figura 3.5.

Ti , j +1

∆y
Ti −1, j Ti , j Ti +1, j

∆y
Ti , j −1

∆x ∆x

Fig. 3.5: Discretização bidimensional.

∂ 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,

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 
Método das Diferenças Finitas 21

dividindo por k Cp e rearranjando os termos,

 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 geração interna ( S iT, j = 0 ),

obtém-se a equação discretizada do problema,

4Ti , j = Ti +1, j + Ti −1, j + Ti , j −1 + Ti , j +1 . (3.25)

A placa é discretizada de modo que ∆ x = ∆ y = 1 , conforme mostrado na Figura


3.6.

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

Aplicando a condição de contorno aos pontos externos e utilizando a equação


geral para os pontos internos, tem-se

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

Escrevendo na forma de matriz:

T7 T8 T9 T12 T13 T14 T17 T18 T19


 4 −1 −1   T7   150 
 −1 4 −1 −1  T   100 
   8   
 −1 4 −1   T9   150 
     
 −1 4 −1 −1   T12   50 
 −1 −1 4 −1 −1  ⋅  T13  =  0 
  T   50 
 −1 −1 4 −1 
 14   
 −1 4 −1   T17   80 
  T   
 −1 −1 4 −1   18   30 
 −1 −1 4   T19   80 

∑ [A] ∑ {T} ∑ {b}

De um modo geral, pode-se escrever a equação na seguinte forma matricial:

[A] ⋅ {T } = {B} , (3.26)

cuja solução pode ser representada por

{T } = [A]−1 ⋅ {B} (3.27)

onde [ A] é inversa da matriz dos coeficientes1. A solução no presente caso é


−1

T7 = 70,0 ºC T8 = 74,4 ºC T9 = 70,0 ºC


T12 = 55,6 ºC T13 = 57,5 ºC T14 = 55,6 ºC
T17 = 45,0 ºC T18 = 44,4 ºC T19 = 45.0 ºC

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

O método dos Volumes Finitos difere do método das Diferenças Finitas no


sentido em que as equações aproximadas são obtidas a partir da integração das equações
diferenciais em um volume de controle de geometria conhecida.

4.1 Condução de calor unidimensional transiente

A equação de condução de calor unidimensional transiente é :

∂ ( ρ T ) ∂  k ∂T 
=   + S T (4.1)
∂t ∂x  Cp ∂x 

A integração no tempo e espaço da equação diferencial é feita no volume de


controle mostrado na Figura 4.1.
26 Método dos volumes finitos

∆x

w e
qe
W qw P E
w

δ xw δ xe

Fig. 4.1: Volume de integração.

∂ ∂  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)

Assumindo as propriedades constantes no


interior do volume de controle

sendo que o super-índice "0" indica que o parâmetro esta associado com o passo de
tempo corrente (conhecido).

O termo "2" é integrado primeiramente entre as faces "w" e "e",


Método dos volumes finitos 27

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

A integração no tempo aproxima uma variável qualquer, f, entre o instante


corrente, t, e o instante de tempo a ser determinado, t+dt, sendo feita conforme ilustrado
na Figura 4.2

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.

Assim, para o caso onde f (t ) = T (t ) , tem-se

θ θ
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

As derivadas avaliadas em "w" e "e" são aproximadas, respectivamente, pela


derivada central em relação a P e W e E e P, como

θ θ
∂T TEθ − TP
=
∂x e δ xe
, (4.6)
θ θ θ
∂T TP − TW
=
∂x w δ xw
28 Método 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 

Finalmente, o termo "3" é aproximado por

t + ∆t e t + ∆t
∫t ∫w S dx dt = ∫t S ∆x dt = S θ ∆x ∆t (4.8)

O termo termo fonte Sθ é, em geral, linearizado como

S θ = S P TPθ + S C , (4.9)

cuja integral é dada por

∫w S dx dt = (S P TP )
t + ∆t e θ
∫t + S C ∆x ∆t . (4.10)

Deste modo, a equação aproximada apresenta a seguinte forma:

 k TEθ − TPθ k TPθ − TWθ 


(ρ T P )
− ρ 0T 0 ∆x = 
δ

δ
θ
 ∆t + S PTP + SC ∆x ∆t ( ) (4.11)
 e
Cp x e Cp w
x w 

e, fazendo M P = ρ ∆x e reagrupando, tem-se :

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

Os coeficientes da equação podem ser escritos por :

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)

onde θ=0 ⇒ Método explícito ⇒ Tθ = T 0


θ=1 ⇒ Método implícito ⇒ Tθ = T
θ = 1/2 ⇒ Método de Crank-Nicholson ⇒ T θ = (T 0 + T ) / 2

4.1.1 Método explícito

No caso do método explícito T θ = T 0 e a equação é reduzida a :

( )
A p TP = AeTE0 + AwTw0 − − A p0 + Ae + Aw − S P ∆x TP0 + S C ∆x (4.18)

o que constitui um problema condicionalmente estável. A condição de convergência


para uma malha igualmente espaçada ( ∆x = δ xe = δ x w ) e de termo fonte nulo

( 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

onde α = k /( ρ Cp ) é a difusibilidade térmica. Finalmente, o critério de estabilidade para


o método explícito nas condições acima é

α ∆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 α ) .

4.1.2 Método implícito

A aproximação implícita da equação geral (4.16) é obtida fazendo T θ = T , ou suja,


θ = 1. Assim,

MP
TP = Ae TE + AwTW − ( Ae + Aw − S P ∆x )TP + A 0p TP0 + S c ∆ x (4.23)
∆t

resolvendo para TP , tem-se

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

de modo que a equação discreta pode ser representada por

A p TP = AeTE + AwTW + B (4.25)

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

A solução deste problema exige a solução de um sistema de equações lineares a


cada passo de tempo. Os valores de TP0 e A 0p são avaliados no instante de tempo

corrente e, portanto, conhecidos. No caso de transientes distorcidos, a temperatura TP0 é


também aumentada a cada passo no tempo a fim de alcançar a solução de regime
permanente com um menor aumento de passos no tempo.

4.2 Regras básicas na determinação das equações


aproximadas

Há quatro regras básicas na aproximação das equações para volumes finitos .

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.

A expressão do fluxo mostrado abaixo é igual para as equações referentes aos


volumes de controle "2" e "3".
32 Método dos volumes finitos

T3 − T2
qi = (4.27)
∆x

Nota-se que q i = q e quando a equação discreta aproxima o volume de controle

"2", enquanto que q i = q w refere-se ao volume "3".

1 2 3 4

qi

Fig. 4.3: Consistência dos volumes de controle.

Regra 2 - Coeficientes positivos: Na equação básica A p TP = AeTE + AwTW + B

verifica-se que se a temperatura TE aumenta e as outras condições permanecerem

constantes, a temperatura TP também aumenta, implicando que os coeficientes A p e

Ae devem possuir o mesmo sinal. Este efeito requer que

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 .

Regra 3 – Linearização do termo fonte com inclinação negativa: para garantir


que A p seja maior que zero quando o termo fonte for aproximado por

S = S P TP + S C , (4.29)

o coeficiente S P deverá ser sempre menor que zero, ou seja


Método dos volumes finitos 33

SP ≤ 0 (4.30)

Este conceito é discutido com maior detalhe na seção 4.3.

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)

No caso unidimensional A p = Ae + Aw . É importante notar que isto é verdadeiro

somente quando o termo fonte é zero , ou seja S = 0 .

4.3 Linearização do termo fonte

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)

com o requerimento de que SP < 0.

A linearização é feita a partir da expansão em série de Taylor tomando como


ponto inicial a última iteração convergida, conforme mostrado abaixo:

* *
∂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

onde o índice * representa valores referentes à última iteração convergida. Assim,


rearranjando a equação acima, tem-se

* *
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.

Exemplo : O termo fonte é dado por S = −4T 3 + 5

*
dS
dT
( )
= −12 T *
2

A partir das equações (4.33) e (4.34), tem-se que ⇒ p

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

que zero, outra estratégia é requerida para garantir que SP < 0.

Exemplo: O termo fonte é dado por S = 7T + 3

Neste caso SP = 7 e SC = 3, o que pode produzir instabilidade pois S P > 0 , sendo


assim, a equação para S pode ser aproximada por

( )
S = 3 + 7TP* + 0 TP

SP = 0

SC = 3 + 7 TP (calculado no instante de convergência anterior)

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)

SC = 9 TP*+3 (calculado no instante de convergência anterior)

SP = -2

Esta última estratégia diminui a velocidade de convergência do problema.


36 Método dos volumes finitos

4.4 Avaliação das propriedades na interface dos volumes

Viu-se anteriormente que os coeficientes Aw e Ae requerem a avaliação de k/Cp

nas interfaces "w" e "e" respectivamente. No caso de k = k (T ) e Cp = Cp (T ) deve ser


feito um procedimento específico para garantir os princípios de conservação.

δ xe

δxe− δxe+

qe
W P E
k P = k(TP ) k E = k(TE )

w e
∆x

Fig. 4.5: Propriedades na interface entre dois volumes.

No caso de condução de calor (ver Figura 4.5), a equação do fluxo de calor na


interface "e" é avaliada como

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 

Recentemente, estudos numéricos mostraram que a forma mais precisa de avaliar


os coeficientes difusivos na fronteira em problemas onde Γ φ = Γ φ (T ) é a interpolação

inicial da temperatura na fronteira e posterior determinação Γ φ . Assim, a partir de uma


interpolação linear da temperatura, tem-se

Te = (1 − f e )TE + f eTP e Γφ = Γ φ (Te ) (4.41)


e

4.5 Equação geral da condução

A obtenção das equações aproximadas para problemas 2D e 3D segue a mesma


metodologia do problema unidimensional. Para tanto, pode-se utilizar uma malha
cartesiana conforme mostrado nas Figuras 4.6 e 4.7 para problemas bi e tridimensionais.

∆x

n
δ yn
W P E
∆y
w e
s δ ys

δ xw δ xe

Fig. 4.6: Malha cartesiana bidimensional.


38 Método dos volumes finitos

n
b

y
W w P e E x

f z
s

Fig. 4.7: Malha cartesiana tridimensional.

A equação diferencial é


( ρ T ) = ∂  k ∂T  + ∂  k ∂T  + ∂  k ∂T  + S
     
(4.42)
∂t ∂x  Cp ∂x  ∂y  Cp ∂y  ∂z  Cp ∂z 

Integrando a equação diferencial em um elemento associado a uma malha


cartesiana tridimensional,

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

e integrando no tempo o primeiro termo e entre "w" e "e" o termo da derivada em x,


entre "s" e "n" o termo da derivada em y e entre "b" e "f" o termo da derivada em z,
Método dos volumes finitos 39

 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

Substituindo na equação anterior


40 Método dos volumes finitos

 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

No caso de aproximação implícita T θ = T (θ = 1) a equação resultante é

ApTP = AnTN + AsTS + AwTW + AeTE + AbTB + A f TF + B (4.49)

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)

Para problemas bidimensionais elimina-se os termos relacionados ao eixo z


fazendo Ab = A f = 0 e ∆ z = 1 , assim

A p TP = AnTN + As TS + AwTW + AeTE + B (4.52)

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)

4.6 A estrutura da matriz de coeficientes

A matriz de um problema de volumes finitos é caracterizada pela existência de


muitos zeros e pela dominância da diagonal principal. Em problemas unidimensionais, a
42 Método dos volumes finitos

matriz dos coeficientes é tri-diagonal, enquanto que para problemas bi e tri-


dimensionais a matriz é respectivamente penta-diagonal e hepta-diagonal.

(a) Unidimensional (b) Bidimensional (c) Tridimensional

Fig. 4.8: Estrutura da matriz de coeficientes.

O índice de esparcididade é definido como

número de posições nulas


e= (4.55)
número total de posições

O Quadro 4.1 apresenta alguns exemplos de índice de esparcidade para problemas


bi-dimensionais

Quadro 4.1: Índice de esparcidade


Malha
10 x 10 20 x 20 40 x 40
Índice de esparcidade 0,95 0,9875 0,9968

4.7 A Tratamento de não-linearidades

A exemplo do tratamento do termo fonte, a equação é linearizada de modo que


as não-linearidades são incluídas no termo fonte. Uma vez que o processo é iterativo, a
não-linearidade não acarreta maiores problemas, basta atualizar os coeficientes e o
termo fonte a cada iteração.
Capítulo 5

Métodos de Aproximação das


Equações para o Contorno
As equações aproximadas discutidas anteriormente são válidas apenas para nós no
interior do domínio. As equações para as fronteiras devem ser determinadas através de
procedimento específicos, cuja equação característica para problemas unidmensionais é

AB TB = AI TI + B (5.1)

onde AB , AI e B são coeficientes a serem determinados através de modelamento


específico. Para pontos na fronteira há três estratégias: pontos sobre a fronteira ,
volumes fictícios e balanços na fronteira.

5.1 Pontos sobre a fronteira

Esta estratégia é comumente adotada quando se coloca o valor da variável sobre a


fronteira. A Figura 5.1 ilustra esta situação.
44 Métodos de aproximação das equações para o contorno

Vantagens : Facilidade de obtenção da equação discreta.


Desvantagens : Não uniformidade dos volumes;
Não obediência da equação de conservação nos meio-volumes da
fronteira.

δ xi

B I
Volume da w
fronteira é a qB Tf qi
metade

i
∆x
Fig. 5.1: Pontos sobre a fronteira.

5.1.1 Temperatura prescrita

No caso de uma temperatura, T f , prescrita na fronteira, a equação para TB é bastante

simples. Assim, a partir da equação geral unidimensional

AB TB = AI TI + B (5.1)

e, uma vez que TB = T f , tem-se

AB = 1

AI = 0 (5.2)

B= Tf

5.1.2 Fluxo prescrito

No caso de condição de fluxo conhecido na fronteira, um balanço nos volumes sobre a


fronteira é feito, conforme mostrado na equação abaixo:
Métodos de aproximação das equações para o contorno 45

∂ (m B C p T )
w q B − w q i + s& ∆x w = (5.3)
∂t

onde qB e qi são fluxos por unidade de área, e m B é a massa do volume de controle.


Assim

∂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

Rearranjando a equação anterior

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

linearizando o termo fonte e efetuando a integração no tempo conforme mostrado no


caítulo anterior,

( )
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

com as variáveis TIθ e q θB avaliadas conforme visto anteriormente, ou seja

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

Método explícito: A equação discreta para o caso explícito (θ = 0) é obtida fazendo


T θ = T 0 e q θB = q B0 com

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 

Nota-se que a solução para TB é imediata, não requerendo a solução do sistema de


equações.

5.1.3 Convecção na fronteira

No caso da condição de contorno de convecção na fronteira, o fluxo q B do caso anterior


é definido como
48 Métodos de aproximação das equações para o contorno

(
q θB = h T∞ − TBθ ) (5.18)

que, substituindo na equação geral resulta

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

Com as temperaturas TIθ avaliadas conforme equação (4.17),

T θ = θ T + (1 − θ )T 0 . (4.17)

Método implícito: para o caso totalmente implícito (θ = 1) faz-se T θ = T de modo que

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

Método explícito: A equação discreta para o caso explícito (θ = 0) é obtida fazendo


T θ = T 0 com

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 

5.2 Volumes fictícios

A fim de garantir os princípios de conservação para todo o domínio, utiliza-se


volumes fictícios nas fronteiras, conforme ilustrado na Figura 5.2.

δ xi = ∆ x

Volume fictício
B qb I
w
Tf

∆x ∆x
Fig. 5.2: Volumes fictícios.

Vantagens: Uniformidade dos volumes


Respeita os princípios de conservação

Desvantagens: Introduz um número maior de equações no sistema. Por exemplo, esta


abordagem exige equações para temperatura prescrita na fronteira em
contraposição com a aproximação de "pontos sobre a fronteira" descrita
na seção 5.1 não faz tal exigência.
50 Métodos de aproximação das equações para o contorno

5.2.1 Temperatura prescrita

No caso de temperatura prescrita, a temperatura na fronteira, T f , é a média das

temperaturas do volume fictício e do volume na fronteira

T B + TI
Tf = (5.24)
2

resolvendo para TB

TB = −TI + 2T f (5.25)

obtém-se a equação discreta que, escrita na forma geral é

AB TB = Ai TI + B (5.26)

onde
AB = 1

AI = −1 (5.27)

B= 2T f

É importante ressaltar que a temperatura do volume fictício TB não tem


significado físico.

5.2.2 Fluxo prescrito

No caso de fluxo prescrito q B na fronteira, faz-se o balanço de energia apenas na


superfície "i", a qual é a própria fronteira. Assim,

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

Logo, a equação geral é

AB TB = Ai TI + B (5.30)

com

k
AB =
δxi

k
AI = (5.31)
δxi

B = qB

Note que a expressão acima é válida para qualquer esquema de integração no


tempo.

5.2.3 Convecção na fronteira

No caso de convecção na fronteira, o fluxo de calor q B é definido pela equação

q B = h (T∞ − TB ) (5.32)

deste modo, a equação de conservação da energia na interface "i" é

TB − T I
w q B = h w (T∞ − T f ) = w k (5.33)
δ xi

onde a temperatura na fronteira, T f , é a temperatura média dos volumes adjacentes,


52 Métodos de aproximação das equações para o contorno

TB + TI
Tf = (5.34)
2

Substituindo a equação para T f na equação (5.33),

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 

obtém-se a equação discreta,

AB TB = Ai TI + B (5.37)

com

k h
AB = +
δxi 2

k h
AI = − (5.38)
δxi 2

B = h T∞

Neste caso, também, a equação é válida para qualquer esquema de integração no


tempo.
Métodos de aproximação das equações para o contorno 53

5.3 Balanço nos volumes de fronteira

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.

O balanço de energia no volume de controle é


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

obtém-se a equação geral na forma discreta. Os valores de q θf são definidos conforme o

caso.

5.3.1 Fluxo prescrito

No caso de fluxo prescrito, o valor de q f é conhecido. A equação discreta para um

esquema implícito de integração ( q θf = q f e T θ = T ) é

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

5.3.2 Temperatura prescrita

No caso de temperatura prescrita sobre a fronteira, o valor de T f é conhecido. Assim, a

partir da equação de balanço na superfície "f",

θ
TBθ − T fθ
q f = −k f
δ xf
(5.47)
kf kf
q θf = T fθ − TBθ
δ xf δ xf

Substituindo a expressão para q θf na equação geral, e assumindo uma integração

implícita no tempo ( T fθ = T f e TBθ = TB ), tem-se

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

5.3.3 Convecção na fronteira

No caso de fluxo prescrito por convecção, a equação discreta é obtida a partir da


equação característica,

(
q θf = h T∞ − TBθ , ) (5.50)

em conjunto com o balanço de energia na superfície "f" do volume sobre a fronteira,

( )
q θf = h T∞ − T fθ = − k f
(T θ
B − T fθ ). (5.51)
δ xf
1

Admitindo uma integração implícita no tempo ( T fθ = T f e TBθ = TB ), isolando T f

na equação acima e substituindo em "1" tem-se

qf =
h
(T∞ − TB ) (5.52)
 hδ x f 
1 + 
 k 
 f 

que, substituindo na equação geral, obtém-se a equação discreta

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

5.4 Exemplo ilustrativo

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∞ )

Fig. 5.4:Geometria do problema.

A equação de governo para este problema é obtida a partir de uma simplificação


da equação geral da energia (ver seção 2.1) considerando nulo os termos convectivos, o
termo da derivada no tempo e os termos relativos à direção z. Assim,

∂  k ∂T  ∂  k ∂T  s&
 +  + =0 (5.55)
∂x  Cp ∂x  ∂y  Cp ∂y  Cp

A equação discreta para o domínio segue o mesmo procedimento mostrado na


seção 4.5, exceto pela integral no tempo.
58 Métodos de aproximação das equações para o contorno

A p TP = AnTN + As TS + AwTW + AeTE + B (5.56)

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

As equações para a fronteira são obtidas através de um balanço de energia nos


volumes de controle mostrados na Figura 5.5.

A
∆ xC ∆x ∆ xD
(a) (b)

∆ yA

δy
C ∆y D

∆ yB
(c) (d)
δx
B

Fig. 5.5: Geometria do problema.

Há, basicamente, dois tipos de equações na fronteira: aquelas referentes aos


cantos (4 cantos) e aquelas relativas às laterais das placas (4 laterais).
Métodos de aproximação das equações para o contorno 59

O balanço de energia aplicado a cada um dos quatro cantos da placa é apresentado


na Tabela 5.1, sendo ilustrado pela Figura 5.6 que mostra o canto (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

Fig. 5.6: Balanço de energia no canto (b).


Tabela 5.1. Equações para os cantos.
Canto (a) Canto (b)
A p TP = As TS + Ae TE + B A p TP = As TS + AwTW + B

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

Canto (c) Canto (d)


A p TP = An TN + Ae TE + B A p TP = An T N + Aw TW + B
k k
An = ∆ xC An = ∆ xD
Cp δ y n Cp δ y n
k k
Ae = ∆ yB Aw = ∆ yB
Cp δ x e Cp δ x w
h h h h
A p = An + Ae + ∆x C + ∆y B − S P ∆x C ∆y B A p = An + Aw + ∆x D + ∆y B − S P ∆x D ∆y B
Cp Cp Cp Cp
h h h h
B = S C ∆x C ∆y B + ∆ x C T∞ + ∆ y B T∞ B = S C ∆x D ∆y B + ∆ x D T∞ + ∆ y B T∞
Cp Cp Cp Cp
60 Métodos de aproximação das equações para o contorno

O balanço de energia aplicado a cada uma das superfícies laterais resulta nas
equações discretas mostradas na Tabela 5.2.

Tabela 5.2. Equações para as laterais.


Superfície A Superfície 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

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

As simulações foram feitas considerando uma malha cartesiana ortogonal


igualmente espaçada, conforme ilustrada na Figura 5.5. A geração de calor é
Métodos de aproximação das equações para o contorno 61

uniformemente distribuída e não depende da temperatura. Consequentemente


s& / Cp = S C = constante ( S P = 0 ). As propriedades do material são apresentados na
Tabela 5.3.

Tabela 5.3: Parâmetros de simulação.


Descrição Símbolo Valor
Calor específico Cp 452 J/kg/K
Condutividade térmica k 48 J/mK
Coeficiente de troca h 150 W/m2K
Temperatura ambiente T∞ 30 ºC
Geração de calor s& 500 kW/m3

A Figura 5.7 apresenta a distribuição de temperatura na placa plana para uma


malha cartesiana 5 x 5. Verifica-se que a distribuição de temperaturas é simétrica, com a
temperatura máxima localizada no centro.

Fig. 5.7: Distribuição de temperatura para uma malha 5 x 5.


62 Métodos de aproximação das equações para o contorno

O aumento do número de pontos causa um aumento na precisão dos resultados. A


Figura 5.8 apresenta a solução do mesmo problema para uma malha 21 x 21.

Fig. 5.8: Distribuição de temperatura para uma malha 21 x 21.

O efeito do aumento da discretização é ilustrado pela Figura 5.9, que mostra o


valor da temperatura média em função do número de volumes. Os dados da Figura 5.9
são apresentados na Tabela 5.4.

1300
Temperatura média [K]

1175

1050

925

800
1 10 100 1000 10000
Número de volumes

Fig. 5.9: Efeito do aumento do número de volumes.


Métodos de aproximação das equações para o contorno 63

Tabela 5.4: Parâmetros de simulação.


Número de
Temperatura média [K]
Volumes
1 863.33
16 1227.46
81 1261.54
196 1266.64
361 1268.30
576 1269.03
841 1269.42
1156 1269.65
1521 1269.80
1936 1269.90
2401 1269.97
64 Métodos de aproximação das equações para o contorno
Capítulo 6

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

[A] ⋅ {φ } = {B} (3.26)

onde [ A] representa a matriz de coeficientes, {B} o termo fonte e {φ } as variáveis a


serem determinadas.

Há basicamente duas estratégias de solução deste problema: o método direto e os


métodos iterativos. O método direto requer a inversão da matriz completa, [ A] , sendo,
portanto ineficiente na maioria das vezes. A seguir são discutidos alguns dos métodos
de solução iterativos mais comuns.
66 Método de solução do sistema de equações

6.1 Método de Jacobi

Neste método, a variável φ P é calculada tomando-se como base os valores de


φ E , φW .... da iteração anterior. Assim,

φ 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
)

onde k indica a iteração .

Início

Arbitrar distribuição
inicial da variável

Loop iterativo

Loop sobre os volumes

Calcular novo valor da


variável φ Pk +1

Calcular erro ε P relativo


à interação anterior

Se
Não convergiram Sim
todos os Fim
pontos

Fig. 6.1: Método de Jacobi.


Método de solução do sistema de equações 67

O método é de convergência lenta e requer grande dominância diagonal. Por outro


lado, o método pode ser facilmente implementado e permite processamento paralelo. A
Figura 6.1 apresenta o fluxograma deste método.

6.2 Método de Gauss-Seidel

Este método é semelhante ao anterior, no entanto os valores já calculados da


iteração k+1 são usadas para o cálculo da nova φ Pk +1 . Tomando como exemplo a

seqüência de cálculo ilustrada na Figura 6.2, os valores φ S , φW e φ B já são conhecidos

da iteração anterior, assim, o novo φ Pk +1 é calculado por

φ 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

Caminho de solução nas colunas

N
W E
P
S

Caminho de solução nas linhas

Já calculadas
Fig. 6.2: Método de Gauss-Seidel.

O método de Gauss-Seidel é robusto quando a diagonal é dominante, ou seja, o


critério de Scarborough é satisfeito

≤ 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

6.3 Método linha-por-linha - TDMA

O método linha-por-linha (ou coluna-por-coluna) utiliza o algoritmo TDMA (Tri


Digonal Matrix Algorithm ou algoritmo de Thomas) para a solução direta de um
problema unidimensional em uma linha (ou coluna) conforme ilustrado na Figura 6.3.

1 2 m-1 m m+1 N

Fig. 6.3: Método TDMA.

A partir da equação geral,

A pφ P = Anφ N + Asφ S + Aeφ E + AwφW + B , (6.4)

a seguinte equação é proposta

Amφ m + Bmφ m +1 + C mφ m −1 = Dm (6.5)

com
C1 = 0 (uma vez que φ m−1 não existe) (6.6)

B N = 0 (uma vez que φ m +1 não existe) (6.7)

Procura-se determinar uma equação recursiva do tipo

φ m = Pmφ m+1 + Qm (6.8)

que, conhecendo-se Pm , Qm e φ m+1 , determina-se recursivamente, a partir do ponto N,

os valores de φ N −1 , φ N −2 ,..., φ1 .
Método de solução do sistema de equações 69

Para tanto, a equação (6.8) é re-escrita para o ponto m-1

φ m−1 = Pm−1φm + Qm−1 (6.9)

que, substituindo na equação inicial (6.5),

Amφ m + Bmφ m+1 + Cm ( Pm−1φ m + Qm −1 ) = Dm (6.10)

e resolvendo para φ m , tem-se

( Am + Cm Pm−1 )φ m = Dm − Bmφ m+1 − Cm Qm−1 (6.11)

− 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

Com ( P1 , Q1 ) , os valores de ( P2 , Q2 ) , ( P3 , Q3 ) ,..., ( PN , Q N ) são determinados

pelas equações de recorrência (6.13) para Pm e Qm fazendo m = 2, 3, ...N.


70 Método de solução do sistema de equações

Além disso, no caso do volume "N" (m = N), o termo φ N +1 não existe, exigindo

que B N = 0 , conforme equação (6.7), e PN = 0 , segundo a equação (6.13). Deste modo,


0

φ N = PN φ N + Q N = Q N (6.15)

Os passos de solução são mostrados no Quadro 6.1

Quadro 6.1: Passos de solução do método TDMA.

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

determinar os outros valores de ( P2 , Q2 ), ( P3 , Q3 ), L , ( PN , Q N )

(3) Fazer φ N =Q N

(4) Usando a equação φ m = Pmφ m+1 + Qm calcular os outros valores de φ começando

por φ N −1 até φ1

6.4 Método das sobre-relaxações sucessivas - S.O.R.

O método das sobre-relaxações sucessivas, S.O.R, foi concebido para acelerar


convergência do processo iterativo através do cálculo de φ Pk +1 através de uma média

ponderada entre φ Pk e o valor de φ Pk +1 calculado pelo método de Gauss-Seidel ou TDMA,

φ pk +1 = w φ pk +1 G − S + (1 − w)φ pK (6.16)
Método de solução do sistema de equações 71

onde φ pk +1 G −S é o valor calculado pelo método de Gauss-Siedel

φ Pk é o valor calculado na iteração anterior


"w" é o coeficiente de relaxação

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.

6.5 Aspectos de convergência

A convergência do método iterativo pode ser verificada de diversas formas, entre as


quais o cálculo do erro local e do erro global,

Local ⇒ ε pk +1 = φ pk +1 − φ pk ⇒ Se ε pk +1 > ε pmáx ⇒ Repetir iteração


(6.17)
ε
k +1
∑ (φ − φ pk ) ⇒ Se ε
k +1
> ε máx
k +1 2
Global ⇒ = p ⇒ Repetir iteração
volumes

ou do cálculo da norma do resíduo,

R
k +1
= ∑ (B + ∑ k +1
nb Anbφ NB
k +1
− A pφ Pk +1 )
2
(6.18)
volumes

O erro global e o resíduo avaliam globalmente a convergência do problema, não


se importando com problemas de convergência localizada. A avaliação de convergência
baseada no resíduo tem se mostrado mais confiável, principalmente em problemas não-
lineares onde a convergência é lenta.
72 Método de solução do sistema de equações

6.6 Exemplos de comparação entre os métodos

6.6.1 Condução de calor em uma placa plana

Este exemplo visa ilustrar os métodos de solução iterativos através da análise do


problema de condução de calor em uma placa plana em regime permanente com
geração interna e temperatura prescrita na fronteira. O programa fonte relativo a este
exemplo é apresentado no Apêndice A.

A equação diferencial de governo deste problema é

∂  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 

As propriedades do material são apresentadas na Tabela 6.1, enquanto que a


malha utilizada é mostradas na Figura 6.4.

Tabela 6.1: Dados dos materiais e outros parâmetros de simulação .

Parâmetro Símbolo Valor


Condutividade térmica k 48 W / m.K
Termo fonte S0 100 (W/m3)/(J/kg/K)

Tolerância de solução εP 0.01 K


Temperatura arbitrada inicial Ti 50 K

Número máximo de iterações NITmax 1000


Método de solução do sistema de equações 73

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 Figura 6.5 ilustra a distribuição de temperaturas no interior da placa plana para


uma malha 10 x 10. Nota-se que a geração de calor causa um grande aumento de
temperatura no centro da placa.

Fig. 6.5: Distribuição de temperaturas em K.

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.

Tabela 6.2: Número de iterações.

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)

O efeito do valor do parâmetro de relaxação, w, no número de iterações é


mostrado nas Tabelas 6.3 e 6.4 para os métodos S.O.R.-Gauss-Seidel e S.O.R.-TDMA.

Tabela 6.3: Número de iterações para o método S.O.R.- Gauss-Seidel.

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

Tabela 6.4: Número de iterações para o método S.O.R.- TDMA.

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"

Fig. 6.6: Convergência do método S.O.R. - Gauss-Seidel.


76 Método de solução do sistema de equações

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"

Fig. 6.7: Convergência do método S.O.R. - TDMA.

As Figuras 6.6 e 6.7 ilustram o comportamento dos casos apresentados nas


Tabelas 6.3 e 6.4. Nota-se que quando w = 1 os resultados são iguais àqueles obtidos
sem sobre-relaxação. Á medida que w aumenta, o número de iterações decresce até um
valor mínimo, para em seguida crescer rapidamente, de modo que quando w → 2 o
número de iterações requerido para convergência tende para infinito. Os valores de w
correspondente à melhor taxa de convergência são apontados na Tabela 6.2.

6.6.2 Escoamento de fluido não newtoniano entre placas planas

O objetivo deste exemplo é ilustrar a solução de um problema não-linear


utilizando o método de Volumes Finitos. O problema consiste no escoamento de um
polímero (fluido não newtoniano) em um canal de injeção, aproximado por duas placas
planas paralelas infinitas, conforme ilustrado pela Figura 6.8.
Método de solução do sistema de equações 77

2 a = 4 mm

L = 300 mm

Fig. 6.8: Escoamento entre placas planas paralelas infinitas.

O escoamento é considerado em regime permanente, laminar e plenamente


desenvolvido. A viscosidade aparente, η , é dada pela lei potencial,

n −1
 du 
η = k γ& n −1 = k   (6.21)
 dy 

onde k e n são parâmetros da viscosidade e γ& é a taxa de deformação, definida em


termos do gradiente de velocidade. A Tabela 6.5 apresenta os parâmetros do problema.

Tabela 6.5: Dados dos materiais e outros parâmetros de simulação .

Parâmetro Símbolo Valor


Comprimento da placa L 300 mm
Queda de pressão ∆p 40 MPa
Distância entre placas 2a 4 mm
Tolerância de solução εP 1.0E-14 m/s

Número máximo de iterações NITmax 100000

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

O problema é unidimensional e a equação diferencial de governo é


78 Método de solução do sistema de equações

∂  ∂u  ∂p
η  = (6.22)
∂y  ∂y  ∂z

cujas condições de contorno são velocidades prescritas sobre as placas u ( y = 0) = 0 e

u ( y = 2a ) = 0 . A equação discretizada é obtida pela integração da equação diferencial


em um volume de controle unidimensional, conforme ilustrado na Figura 6.9.

n
δ yn

∆y P
s
δ ys

S
Fig. 6.9: Volume de integração unidimensional.

Assim, a discretização da equação diferencial para o domínio é

A pU P = AnU N + AsU S + B (6.23)

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 

caracterizando a não linearidade do problema. Ou seja, a determinação da viscosidade


aparente requer o conhecimento do campo de velocidades e vice-versa.

A solução analítica para este problema usando a viscosidade baseada na lei


potencial é
n +1
1  
a ∆ p n n   y n 
u ( y) =   a 1−   , (6.27)
k L  n +1  a  
 

cuja comparação com a solução numérica é apresentada pela Tabela 6.6.

Tabela 6.6: Comparação entre as soluções numérica e analítica para 21 pontos.

y [mm] Velocidade [m/s] Erro [%]


Numérica Analítica
.0 .000000000 .000000000 .000000000
.2 .291887843 .292551270 .226772965
.4 .506273843 .507545938 .250636450
.6 .657763525 .659588051 .276616122
.8 .759612328 .761931327 .304357998
1.0 .823684100 .826437554 .333171464
1.2 .860401483 .863526844 .361929859
1.4 .878684772 .882116242 .389004311
1.6 .885873092 .889540409 .412270999
1.8 .887615364 .891441369 .429193119
2.0 .887698037 .891591235 .436657304
2.2 .887615364 .891441369 .429193119
2.4 .885873092 .889540409 .412270999
2.6 .878684772 .882116242 .389004311
2.8 .860401483 .863526844 .361929859
3.0 .823684100 .826437554 .333171464
3.2 .759612328 .761931327 .304357998
3.4 .657763525 .659588051 .276616122
3.6 .506273843 .507545938 .250636450
3.8 .291887843 .292551270 .226772965
4.0 .000000000 .000000000 .000000000
80 Método de solução do sistema de equações

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]

Fig. 6.10: Distribuição de velocidade no canal.

Verifica-se que os maiores erros acontecem próximo do centro da placa onde a


taxa de deformação é zero, ∂u ∂y = 0 (ver Figura 6.10 e Tabela 6.6). Este
comportamento faz com que a viscosidade aparente tenda ao infinito no centro do canal,
afetando sobremaneira a taxa de convergência do método de Gauss-Seidel, conforme
ilustrado pela Tabela 6.7. Por outro lado, o número de pontos não afeta a taxa de
convergência do método TDMA, uma vez que o mesmo é baseado em uma solução
fechada unidimensional. O processo iterativo do método TDMA no presente caso se
deve apenas à não linearidade material e não ao processo de solução do sistema de
equações. A Figura 6.11 mostra a taxa de convergência do ponto no centro do canal.

1.00

0.90 u(y=a) = 0.8916 m/s


Velocidade [m/s]

0.80

0.70

0.60 Gauss-Seidel
TDMA
0.50
1 10 100 1000 10000 100000
Iterações

Fig.6.11: Taxa de convergência dos métodos Gauss-Seidel e TDMA


para a velocidade no centro do canal.
Método de solução do sistema de equações 81

Tabela 6.7: Número total de iterações e erro máximo (centro do canal).

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

Como se esperava, o aumento do número de pontos causa uma diminuição


progressiva do erro da solução numérica, ilustrado através do erro máximo (centro do
canal) mostrado na Tabela 6.7. É importante lembrar que a tolerância especificada para
as simulações apresentadas foi 10-14 , ou seja, U k +1 − U k ≤ 10 −14 m/s.
82 Método de solução do sistema de equações
Capítulo 7

Bibliografia

PATANKAR, S.V.: Numerical Hear Transfer and Fluid Flow. McGraw-Hill,


1980.

FERZIGER, J.H. e PERIC, M.: Computational Methods for Fluid Dynamics, 2a


Edição, Springer, Berlin, 1999.

MALISKA, C.R.: Transferência de Calor e Mecânica dos Fluidos Computacional.


2a Edição. Livros Técnicos e Científicos Editora S.A., Rio de Janeiro,
2004.

ADAMS, J.A. e ROGERS, D.F.: Computer-Aided Heat Transfer Analysis.


McGraw-Hill, New York, 1973.

INCROPERA, F.P. e De VITT, D.P.: Fundamentos de Transferência de Calor e


de Massa. Livros Técnicos e Científicos Editora S.A., 1992.
84 Bibliografia
Apêndice A

Exemplo de Programação

Este apêndice apresenta o programa fonte em FORTRAN relativo ao exemplo mostrado


na seção 6.6. O problema consiste na condução de calor em uma placa plana em regime
permanente com geração interna e temperatura prescrita na fronteira, conforme ilustrado
pela Figura A.1.

A equação diferencial de governo deste problema é

∂  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

T = 400 K Face norte

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

T = 300 K Face sul


L x = 20 mm
Fig. A.1: Placa plana bidimensional.

Os dados da simulação são apresentados na Tabela 6.1, reproduzida a seguir.

Tabela 6.1: Dados dos materiais e outros parâmetros de simulação .

Parâmetro Símbolo Valor


Condutividade térmica k 48 W / m.K
Termo fonte S0 100 (W/m3)/(J/kg/K)

Tolerância de solução εP 0.00001 K


Temperatura arbitrada inicial Ti 50 K

Número máximo de iterações NITmax 10000


Apêndice A 87

A.1 Programa principal

Ao executar o programa, o usuário deverá escolher o método de solução e o parâmetro


de sobre-relaxação, caso necessário. Os dados do problema são definidos no corpo do
programa principal que invoca a subrotina correspondente ao método de solução
escolhido.

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

3 N ,Nmax ,M ,Mmax ,Tol ,


4 Wsobre )
ELSEIF(NALGO.EQ.4.OR.NALGO.EQ.5)THEN
C Método TDMA
CALL TDMGSD
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
3 N ,Nmax ,M ,Mmax ,Tol ,
4 Wsobre )
ENDIF
C
C Impressão dos resultados
C ------------------------
CALL RESULT
1( T ,X ,Y ,N ,Conv ,
3 Nmax ,M ,Mmax ,NALGO ,Wsobre ,
4 iter ,is )
C
C Gera arquivos para o Hyview
C ---------------------------
CALL HYVIEW
1( T ,X ,Y ,N ,
2 M ,Nmax ,Mmax )
WRITE( *,*)
WRITE(is,*)
STOP 'O programa terminou com sucesso'
END

A.2 Subrotina para a entrada de dados

C @(#) Module:<dados.f> Version:1.0 Date:7/11/06


SUBROUTINE DADOS
1( N ,M ,XL ,YL ,Ti ,
3 Tn ,Ts ,Te ,Tw ,Ck ,
4 Cp ,Bo ,Wsobre ,Nitmax ,Tol ,
5 NALGO )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
DATA
1 R1 /
2 1.0D0 /
C*********************************************************************
C Dados do problema
C*ACRONIM
C DADOS_do_problema
C*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Julho 2006 Implementação inicial
C*EXTERNAL
C vetores
C Variables
C=N - Número de pontos da coluna i
C=M - Número de pontos da linha j
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=Nitmax - Número máximo de iterações
C=Tol - Tolerância máxima de convergência
C=Wsobre - Parâmetro de sobre/sub-relaxação
C=XL - Comprimento da placa em X
C=YL - Comprimento da placa em Y
C=NALGO - Algorítimo de solução
C 1 - Jacobi
C 2 - Gauss-Seidel
C 3 - Gauss-Seidel com sobre-relaxação
C 4 - TDMA
C 5 - TDMA com sobre-relaxação
C*INTERNAL
C Variáveis
C (c) Copyright 2006, Miguel Vaz Jr., Joinville-SC
Apêndice A 89

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

A.3 Subrotina para o cálculo dos coeficientes


C @(#) Module:<coftmp.f> Version:1.0 Date:7/11/06
SUBROUTINE 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 )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
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)
DATA
1 R0 ,R1 /
2 0.0D0 ,1.0D0 /
C*********************************************************************
C Calcula os coeficientes Ap, Ae, ... para a solução da condução
C de calor em regime permanente
90 Apêndice A

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

Ap(i,j) = An(i,j) + As(i,j) + Ae(i,j) + Aw(i,j)


B(i,j)=Bo * ((X(i,j)/XL)**2-(X(i,j)/XL)) *
1 ((Y(i,j)/YL)**2-(Y(i,j)/YL)) * DeltaX * DeltaY
ENDIF
10 CONTINUE
20 CONTINUE
RETURN
END

A.4 Subrotina para o método de Jacobi

C @(#) Module:<jacobi.f> Version:1.0 Date:4/26/99


SUBROUTINE JACOB
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
3 N ,Nmax ,M ,Mmax ,Tol )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
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)
DIMENSION
1 Ta(Nmax,Mmax)
C*********************************************************************
C Solução da equação característica de Volumes Finitos pelo método de
C Jacobi. Restrições: Temperatura prescrita e pontos sobre a fronteira.
C*ACRONIM
C metodo_de_solução_de_JACOBI
C*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Abril 1999 Implementação inicial
C M.Vaz Jr. Julho 2006 Inclui todos os coeficientes e j=1 1a linha
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 Variables
C=Conv - Indicador de convergência
C .TRUE. - Problema convergiu
C .FALSE. - Problema divergiu
C=iter - Número de iterações
C Nitmax - Número máximo de iterações
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 Tol - Erro nodal máximo
C*INTERNAL
C Vetores
C Ta - Temperatura da iteração anterior
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 (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
92 Apêndice A

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

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

A.5 Subrotina para o método de Gauss-Seidel

C @(#) Module:<sorgsd.f> Version:1.0 Date:4/26/99


SUBROUTINE SORGSD
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
3 N ,Nmax ,M ,Mmax ,Tol ,
4 Wsobre )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
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)
DIMENSION
1 Ta(Nmax,Mmax)
DATA
1 R1 /
2 1.0D0 /
C*********************************************************************
C Solução da equação característica de Volumes Finitos pelo método de
C Gauss-Seidel em comjunto com sobrerelaxação. Restrições: Temperatura
C prescrita e pontos sobre a fronteira.
C*ACRONIM
C metodo_de_solução_de_GAUSS_seidel
C*HISTÓRIA
C Nome Data Comentário
C M.Vaz Jr. Abril 1999 Implementação inicial
C M.Vaz Jr. Julho 2006 Inclui todos os coeficientes e j=1 1a linha
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 Variables
C=Conv - Indicador de convergência
C .TRUE. - Problema convergiu
C .FALSE. - Problema divergiu
C=iter - Número de iterações
C Nitmax - Número máximo de iterações
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 Tol - Erro nodal máximo
C Wsobre - Parâmetro de sobre-relaxação
C*INTERNAL
C Vetores
C Ta - Temperatura da iteração anterior
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
94 Apêndice A

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 somente sobre o domínio
DO 40 i=1,N
DO 30 j=1,M
C Calcular novas temperaturas no domínio
If((i.eq.1).and.(j.eq.1))Then
C Canto inferior esquerdo
T(i,j)=(An(i,j)*T(i,j+1) +
1 Ae(i,j)*T(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)*T(i,j-1) +
1 Ae(i,j)*T(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)*T(i,j+1) +
1 Aw(i,j)*T(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)*T(i,j-1) +
1 Aw(i,j)*T(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(i.eq.1)Then
C Coluna esquerda
T(i,j)=(An(i,j)*T(i,j+1) + As(i,j)*T(i,j-1) +
1 Ae(i,j)*T(i+1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(i.eq.N)Then
C Coluna direita
T(i,j)=(An(i,j)*T(i,j+1) + As(i,j)*T(i,j-1) +
1 Aw(i,j)*T(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(j.eq.1)Then
C Linha inferior
T(i,j)=(An(i,j)*T(i,j+1) +
1 Ae(i,j)*T(i+1,j) + Aw(i,j)*T(i-1,j) + B(i,j)) /
2 Ap(i,j)
ElseIf(j.eq.M)Then
C Linha superior
T(i,j)=(As(i,j)*T(i,j-1) +
1 Ae(i,j)*T(i+1,j) + Aw(i,j)*T(i-1,j) + B(i,j)) /
2 Ap(i,j)
Else
C Interior
T(i,j)=(An(i,j)*T(i,j+1) + As(i,j)*T(i,j-1) +
1 Ae(i,j)*T(i+1,j) + Aw(i,j)*T(i-1,j) + B(i,j)) /
2 Ap(i,j)
EndIf
C Calcular temperatura
T(i,j)=Wsobre*T(i,j)+(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
Apêndice A 95

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

A.6 Subrotina para o método TDMA


C @(#) Module:<tdmdsd.f> Version:1.0 Date:11/30/88
SUBROUTINE TDMGSD
1( T ,Ap ,An ,Aw ,As ,
2 Ae ,B ,Conv ,iter ,Nitmax ,
3 N ,Nmax ,M ,Mmax ,Tol ,
4 Wsobre )
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
LOGICAL
1 Conv
PARAMETER
1( Imax=50 )
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)
DIMENSION
1 A1(Imax) ,B1(Imax) ,
2 C1(Imax) ,D1(Imax) ,
3 T1(Imax) ,Ta(Nmax,Mmax)
DATA
1 R1 /
2 1.0D0 /
C*********************************************************************
C Calculo de uma linha usando o método TDMA associado ao procedimento
C de solução de Gauss-Seidel
C*ACRONYM
C método_de_GauSs_linha_por_linha_pelo_método_TDMA
C*HISTORY
C Name Date Comment
C M.Vaz Jr. Aug87 Initial coding
C M.Vaz Jr. Julho 2006 Inclui todos os coeficientes e j=1 1a linha
C*EXTERNAL
C Arrays
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 Variables
C=Conv - Indicador de convergência
C .TRUE. - Problema convergiu
C .FALSE. - Problema divergiu
C=iter - Número de iterações
C Nitmax - Número máximo de iterações
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 Tol - Erro nodal máximo
C Wsobre - Parâmetro de sobre-relaxação
C*INTERNAL
96 Apêndice A

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

A.7 Subrotina para a saída de resultados

C @(#) Module:<result.f> Version:1.0 Date:7/11/06


SUBROUTINE RESULT
1( T ,X ,Y ,N ,Conv ,
3 Nmax ,M ,Mmax ,NALGO ,Wsobre ,
98 Apêndice A

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

WRITE( *,*)'Problema nao convergiu em ',iter,' iteracoes'


WRITE(is,*)'Problema não convergiu em ',iter,' iterações'
WRITE(is,*)
WRITE(is,*)'Distribuição de temperatura não convergida'
WRITE(is,*)
WRITE(is,1000)(X(i,1),i=1,N)
DO 20 j=M,1,-1
WRITE(is,1100)Y(1,j),(T(i,j),i=1,N)
20 CONTINUE
ENDIF
RETURN
END

A.8 Arquivo de resultados

A seguir é apresentado o arquivo de resultados correspondendo as dados apresentados


na Tabela 6.1 para uma malha 5 x 5.

**Metodo de Gauss-Seidel/TDMA com relaxacao **


Parametro: 1.800000000000000
Problema convergiu em 83 iterações.

Distribuicao de temperatura final

y \ x | .000000000 .005000000 .010000000 .015000000 .020000000


.020000000 | 600.000000000 600.000000000 600.000000000 600.000000000 600.000000000
.015000000 | 300.000000000 428.571429840 458.035714843 428.571429840 300.000000000
.010000000 | 300.000000000 356.249997636 374.999995747 356.249997636 300.000000000
.005000000 | 300.000000000 321.428572123 329.464285886 321.428572123 300.000000000
.000000000 | 300.000000000 300.000000000 300.000000000 300.000000000 300.000000000

You might also like