Você está na página 1de 24

UNIVERSIDADE DE CABO VERDE

FACULDADE CIÊNCIA E TECNOLOGIA


CURSO DE ENGENHARIA MECÂNICA

RELATÓRIO DO TRABALHO COMPUTACIONAL

JAILSON RIBEIRO
HELDER FERNANDES
OSVALDO FURTADO

PRAIA
2021
JAILSON RIBEIRO
HELDER FERNANDES
OSVALDO FURTADO

Relatório técnico, apresentado


como requesito parcial para obtenção
da nota da unidade na desciplina de
MECÂNICA COMPUTACIONAL,
no curso de E.Mecânica, na
Universidade de Cabo Verde.
Prof: Dr. Jackson Monteiro

PRAIA
2021
1 INTRODUÇÃO

Na maior parte do curso de engenharia são abordados problemas que envolvem


simplificações do fenômeno físico e geometrias simples, como transferência de calor
em meios infinitos ou semi-infinitos, escoamento de um fluído sem considerar a sua
viscosidade (escoamento potencial), bem como problemas que impõem limitações na
validade da solução, como a teoria linear de vigas, válida somente para vigas delgadas
e que apresentem pequenos deslocamentos. Essas simplificações possibilitam a solução
analítica das equações envolvidas, permitindo entender o seu conceito.

No entanto, a maior parte dos problemas práticos de engenharia envolvem


problemas complexos que não apresentam solução analítica. O nível de complexidade está
relacionado com a complexidade da geometria envolvida, as equações que descrevem o
fenômeno físico (por exemplo, escoamento fluído envolvendo viscosidade, plasticidade em
estruturas, propriedades que dependem da temperatura, etc.), ou a variação das grandezas
envolvidas (por exemplo, estruturas sujeitas à grandes deformações). Uma abordagem
comum em engenharia para resolver esses problemas até então era utilizar fórmulas
com coeficientes obtidos de forma empírica. Essa abordagem é muito custosa pois
exige a realização de experimentos para obter esses coeficientes sendo incompatível com
a engenharia moderna. Atualmente esses problemas de engenharia são analisados
utilizando-se simulação computacional que envolve uma forte combinação de
computação gráfica e métodos numéricos. Pelo fato dos computadores serem mais
acessíveis atualmente, a simulação computacional está fortemente presente em todos os
ramos da engenharia.

Dessa forma, o conhecimento de computação gráfica e métodos numéricos são


extremamente importantes para o engenheiro atualmente. Portanto, o objetivo desse curso é
ensinar as ferramentas de métodos numéricos mais comuns na engenharia moderna para
que o aluno tenha condições de transpor a barreira que existe entre os problemas
didáticos dados em aula e os problemas práticos de engenharia. É importante deixar
claro que os problemas didáticos de solução analítica simples são extremamente
importantes pois nos ajudam a entender o fenômeno físico, o que permitirá interpretar os
resultados da solução numérica. Sempre que possível devemos dar preferência para
uma solução analítica se esta estiver disponível. No entanto, não só problemas
complexos necessitam ser solucionados por métodos numéricos.

Num sentido amplo, uma "instrução" pode ser qualquer representação de um elemento
num programa executável, tal como um codebloks, o programa aser utilizada para resolver
o problema em estudo.

A resolução de problemas reais podem ser feita através de métodos tais como, Elementos
finitos, Diferenças finitas e Volumes finitos. O uso de método dos volumes finitos, pelo uso
de equilíbrio integral em torno de cada nó da malha, permite realizar adaptações que levem
a um baixo custo computacional, próximo ao obtido com o método das diferenças finitas e
permite a utilização de malhas irregulares, tornando possível uma boa representação de
contornos e interfaces complexas. O emprego de Volume Finito se torna vantajoso na
modelagem de problemas de transferência de calor que demandam um considerável tempo
computacional.

1.1 Objetivos

Resolver um problema Mecânico através do método dos volumes finitos, com recurso
alinguagem de programação.

Em específico: resolver a equação de calor dada as condições de iniciais e de fronteira, e


determinar e representar o comportamento da temperatura ao longo de uma placa, através
do método TDMA.
2 VOLUMES FINITOS

O Método dos Volumes Finitos (MVF) tem sido largamente utilizado nas mais diversas
áreas do conhecimento científico nas últimas décadas, é precipitado o pensamento em que
esta técnica se limita apenas às áreas de engenharia, podemos citar dentre os seus principais
usos aplicações que vão desde áreas de saúde até a aeroespacial.

É vasta a literatura que trata deste assunto, porquanto este relatório não tem a pretensão
de reproduzir as deduções do desenvolvimento do MVF precisamente tratado em Patankar
(1980), mas sim buscar facilitar aos iniciantes no MVF, o entendimento da elaboração de
códigos computacionais de aplicação do MVF com o auxílio da ferramenta Matlab®
através de um exemplo prático.

Uma definição simplificada para o MVF é “um método de solução de equações


diferenciais parciais na forma de equações algébricas”. Derivado do Método dos Elementos
Finitos (MEF), também faz uso de pequenos elementos, os quais menores possíveis,
resultam em melhores aproximações dos resultados quando comparados aos valores obtidos
por uma solução exata das equações de governo do fenômeno físico investigado.

O procedimento básico de aplicação do método dos volumes finitos pode ser descrito
pelos seguintes passos:

1. Identificar o domínio ou limites da região que acontece o fenômeno investigado;

2. Dividir ou discretizar o domínio avaliado em pequenas partes ou volumes


localizando no centróide de cada volume o variável que será calculada;

3. Integrar a equação diferencial de governo em cada volume agora chamado de


volume de controle;
4. Aplicação do método numérico na solução de um problema unidimensional (1-D)
de transferência de calor.

Antes de entrarmos em permenores em relação ao procedimento básico de


aplicação do método dos volumes finitos, entraremos num tema muito importante
que é o os tipos de malhas:

Malhas do tipo A: Chamadas, também de malhas de face centrada. Neste tipo de malha
os nós estão igualmente distribuído ao longo do domínio, e nos nós à fronteira a distância é
a metade da verificada nos demais nós.

Malhas do tipo B: Chamadas, também de malhas de nó centrado. Neste tipo de malha, os


nós estão no centro das faces do volume de controlo, e a existência de nós à fronteira faz
com que estes sejam definidos como nós de volume de controlo nulo. O número total de
volume de controlo é N-2.

Identificação do Domínio de Simulação


A identificação do domínio de simulação para o caso de problemas de condução e difusão
de calor é relativamente mais simples que para os casos de problemas de escoamento de
fluidos. O domínio de simulação em problemas de condução de calor deve ser entendido
como sendo os limites dimensionais físicos do sólido que se deseja investigar a distribuição
das temperaturas e fluxos de calor.

Discretização do Domínio de Simulação

A discretização do domínio a ser simulado pode ser entendida como sendo a divisão da
área total de interesse em pequenos elementos de área (2D), segmentos (1D) e volumes
(3D), esses elementos podem ter diferentes formas geométricas, sendo os mais usuais
elementos triangulares, elementos tetraédricos.

Integração da equação diferencial

O processo de integração deve ser feito aplicando os limites do domínio da região


simulada em cada termo da equação de governo, assim como os limites de tempo para o
caso de regime de simulação transiente.

Depois de ter a equação discretizada falta então utilizar um método para resolução da
equação na forma linear. O método a utilizar é o Método de Algorítmo para Matrizes
Tridiagonais (TDMA).

2.1 Método de Algorítmo para Matrizes Tridiagonais (TDMA).

O TDMA é o caso particular da eliminação gaussiana aplicada a matrizes tridiagonais.


Uma matriz tridiagonal é uma matriz quadrada cujos únicos elementos não nulos estão na
diagonal principal e nas diagónais imediatamente acima e abaixo da principal. Um sistema
tridiagonal é um sistema de equações lineares cujo matriz associada é tridiagonal, conforme
a seguir:
𝑏1 𝑐1 𝑥1 𝑑1
𝑎2 𝑏2 𝑐2 𝑥2 𝑑2
𝑎3 𝑏3 ⋱ 𝑥3 = 𝑑3
⋱ ⋱ 𝑐𝑛−1 ⋮ ⋮
[ 𝑎𝑛 𝑏𝑛 ] [𝑥𝑛 ] [𝑑𝑛 ]

Que podem tambêm escrita na forma:

𝑎𝑖 𝑥𝑖−1 + 𝑏𝑖 𝑥𝑖 + 𝑐𝑖 𝑥𝑖+1 = 𝑑𝑖

Onde: 𝑎1 = 𝑐𝑛 = 0

O primeiro passo consiste em alterar os coeficientes da seguinte forma:

𝑐𝑖
, 𝑖=1

𝑏𝑖
𝑐𝑖={ 𝑐𝑖
, 𝑖 = 2,3, … , 𝑛 − 1
𝑏𝑖 − 𝑎𝑖 𝑐𝑖 𝑖−1

Marcando com o superíndice ‘ os coeficientes recém alterados. Da mesma forma faz-se:

𝑑𝑖
, 𝑖=1
′ 𝑏𝑖
𝑑𝑖=
𝑑𝑖 − 𝑑 ′ 𝑖−1 𝑎𝑖

, 𝑖 = 2,3, … , 𝑛 − 1
{ 𝑏𝑖 − 𝑐 𝑖−1 𝑎𝑖

A solução é então obitida pela substituição de volta:

𝑥𝑛 = 𝑑 ′ 𝑛

𝑥𝑖 = 𝑑′ 𝑖 − 𝑐 ′ 𝑖 𝑥𝑖+1 ; 𝑖 = 𝑛 − 1, 𝑛 − 2, …,
3 Aplicação do MVF–Transmissão de Calor para resolver o
problema em estudo.

A seguir vamos desenvolver um código computacional para determinar o perfil de


distribuição de temperatura com malha do tipo A (faces centradas) a equação de calor numa
barra unidimensional de comprimento L. Usando o esquema temporal de Euler implícito.
Testar com a situação em que a temperatura inicial é constante (T = 1) e são aplicadas
condições convectivas em ambas as extremidades (Bi = ℎ𝐿⁄𝑘 = 1). Formular o problema
em termos adimensionais. Fazer refinamento de malha (𝑁 = 10, 20, 40, 80 e 160) e de
passo no tempo ∆𝑡 = 1/1000, 1/500, 1/200, 1/100 para tempo admensional (igual ao
número de Fourier 𝐹0 = 𝛼𝑡/𝐿2 ) a variar de 0 a 1. Calcular erro (diferença entre solução
numérica e analitica) para 𝐹0 = 𝛼𝑡/𝐿2 = 0.5.

O nosso domínio discretizada será:

A aplicação diferencial parcial de governo para a transferência de calor unidimensional da


barra, pode ser escrita conforme a equação a baixo:

𝑑𝑇 𝑑 𝑑𝑇
𝜌𝑐𝑝 = 𝑘( )
𝑑𝑡 𝑑𝑥 𝑑𝑥
Como o tempo é uma coordenada unilateral, obtemos a solução marchando no tempo a
partir de uma dada distribuição inicial de temperatura:

• Valores presentes (conhecidos): 𝑇𝑃0 , 𝑇𝐸0 , 𝑇𝑤0 ;


• Valores futuras (desconhecidos): 𝑇𝑃1 , 𝑇𝐸1 , 𝑇𝑤1 ;

Para fazer discretização vamos fazer integração dupla no espaço (volume de controlo) ao
longo do intervalo do tempo.

𝑒 𝑡+𝛿𝑡 𝜕𝑇 𝑡+𝛿𝑡 𝑒 𝑑 𝜕𝑇
∫𝑤 ∫𝑡 𝜌𝑐𝑝 𝜕𝑡 𝑑𝑡𝑑𝑥 = ∫𝑡 ∫𝑤 𝑑𝑥 (𝑘 𝜕𝑡 )𝑑𝑡𝑑𝑥

𝜕𝑇
A ordem da integração é escolhida de acordo com a natureza do termo. Para o termo ,
𝜕𝑡

devemos assumir que os valores de T no grid-point prevalece em todo o volume de


controlo. Então:

𝑒 𝑡+𝛿𝑡 𝑑𝑇
𝜌𝑐𝑝 ∫𝑤 ∫𝑡 𝑑𝑡𝑑𝑥 = 𝜌𝑐𝑝 ∆𝑥𝑝 (𝑇𝑃1 − 𝑇𝑝0 )
𝑑𝑡

𝑡+𝛿𝑡 𝑒 𝑑 𝑑𝑇 𝑡+𝛿𝑡 𝑘𝑒 (𝑇𝐸 −𝑇𝑃 ) 𝑘 (𝑇𝑃 −𝑇𝑊 )


∫𝑡 ∫𝑤 𝑑𝑥 (𝑘 𝑑𝑥 ) 𝑑𝑥𝑑𝑡 = ∫𝑡 [ (𝛿𝑥) − 𝑤 (𝛿𝑥) ] 𝑑𝑡
𝑒 𝑤

Precisamos de uma suposição sobre 𝑇𝑃 , 𝑇𝐸 , 𝑇𝑤 , variam com o tempo 𝑡 a 𝑡 + 𝛿𝑡. Muitos


suposições são possíveis, e algumas das eles podem ser generalizado propondo:

𝑡+𝛿𝑡
∫ 𝑇𝑃 𝑑𝑡 = [𝑓𝑇𝑃1 + (1 − 𝑓)𝑇𝑃0 ]∆𝑡
𝑡

𝑓 é um fator de interpolação (varia de 0 e 1). Usamos forma semelhantes para o integrais


de 𝑇𝐸 , 𝑇𝑤 , derivamos da equação

∆𝑥 (𝑇𝐸1 −𝑇𝑃1 ) (𝑇𝑃1 −𝑇𝑊


1
) (𝑇𝐸0 −𝑇𝑃0 ) (𝑇𝑃0 −𝑇𝑊
0
)
𝜌𝑐𝑝 ∆𝑡 (𝑇𝑃1 − 𝑇𝑝0 ) = 𝑓 [𝑘𝑒 − 𝑘𝑤 ] + (1 − 𝑓) [𝑘𝑒 − 𝑘𝑤 ]
(𝛿𝑥)𝑒 (𝛿𝑥)𝑤 (𝛿𝑥)𝑒 (𝛿𝑥)𝑤
Ao reorganizar isso devemos eliminar a a sobre escrito 1 (𝑇 1 = 𝑇) e lembrar que
𝑇𝑃 , 𝑇𝐸 , 𝑇𝑤 , representa daqui em diante os novos valores de T no tempo (𝑡 + 𝛿𝑡).

∆𝑥 (𝑇𝐸1 −𝑇𝑃1 ) (𝑇𝑃1 −𝑇𝑊


1
) (𝑇𝐸0 −𝑇𝑃0 ) (𝑇𝑃0 −𝑇𝑊
0
)
𝜌𝑐𝑝 ∆𝑡 (𝑇𝑃1 − 𝑇𝑝0 ) = 𝑓 [𝑘𝑒 (𝛿𝑥)𝑒
− 𝑘𝑤 (𝛿𝑥)𝑤
] + (1 − 𝑓) [𝑘𝑒 (𝛿𝑥)𝑒
− 𝑘𝑤 (𝛿𝑥)𝑤
]

𝑘 𝑘
𝑎𝑝0 (𝑇𝑃 − 𝑇𝑝0 ) = (𝛿𝑥)
𝑒
[𝑓(𝑇𝐸 − 𝑇𝑃 ) + (1 − 𝑓)(𝑇𝐸0 − 𝑇𝑃0 )] − 𝑤 [𝑓(𝑇𝐸 − 𝑇𝑃 ) + (1 − 𝑓)(𝑇𝑃0 − 𝑇𝑊
0]
𝑒 (𝛿𝑥) 𝑤

𝑎𝑝0 (𝑇𝑃 − 𝑇𝑝0 ) = 𝑎𝐸 [𝑓𝑇𝐸 + (1 − 𝑓)𝑇𝐸0 ] + 𝑎𝐸 [−𝑓𝑇𝑃 − (1 − 𝑓)𝑇𝑃0 ] + 𝑎𝑤 [𝑓𝑇𝑤 + (1 − 𝑓)𝑇𝑤0 ] − 𝑎𝑤 [𝑓𝑇𝑃 + (1 − 𝑓)𝑇𝑃0 ]

𝑎𝑝0 𝑇𝑃 = 𝑎𝐸 [𝑓𝑇𝐸 + (1 − 𝑓)𝑇𝐸0 ] + 𝑎𝑤 [𝑓𝑇𝑤 + (1 − 𝑓)𝑇𝑤0 ] − 𝑇𝑃 [𝑎𝐸 𝑓 + 𝑎𝑤 𝑓] + [𝑎𝑝0 − (1 − 𝑓)𝑎𝐸 − (1 − 𝑓)𝑎𝑤 ]𝑇𝑝0

[𝑎𝑃0 + 𝑎𝑤 𝑓 + 𝑎𝐸 𝑓]𝑇𝑃 = 𝑎𝐸 [𝑓𝑇𝐸 + (1 − 𝑓)𝑇𝐸0 ] + 𝑎𝑤 [𝑓𝑇𝑤 + (1 − 𝑓)𝑇𝑤0 ] + [𝑎𝑃0 − (1 − 𝑓)𝑎𝐸 − (1 − 𝑓)𝑎𝑊 ]𝑇𝑝0

𝑎𝑃 𝑇𝑃 = 𝑎𝐸 [𝑓𝑇𝐸 + (1 − 𝑓)𝑇𝐸0 ] + 𝑎𝑤 [𝑓𝑇𝑤 + (1 − 𝑓)𝑇𝑤0 ] + [𝑎𝑃0 − (1 − 𝑓)𝑎𝐸 − (1 − 𝑓)𝑎𝑊 ]𝑇𝑝0

Onde:

𝑘 𝑘 ∆𝑥
𝑒
𝑎𝐸 = (𝛿𝑥) ; 𝑤
𝑎𝑤 = (𝛿𝑥) ; 𝑎𝑃0 = 𝜌𝑐𝑝 ∆𝑡 ;
𝑒 𝑤

𝑎𝑃 = 𝑓𝑎𝐸 + 𝑓𝑎𝑤 + 𝑎𝑃0


Usar o esquema temporal de Euler implícito (𝑓 = 1) que é o caso especifico do nosso
problema dada, então nossa equação simplificará:

(𝑎𝑃0 + 𝑎𝐸 + 𝑎𝑤 )𝑇𝑃 = 𝑎𝐸 𝑇𝐸 + 𝑎𝑤 𝑇𝑤 + 𝑎𝑃0 𝑇𝑝0

𝑎𝑃 𝑇𝑃 = 𝑎𝐸 𝑇𝐸 + 𝑎𝑤 𝑇𝑤 + 𝑏

Com 𝑎𝑃 = 𝑎𝑃0 + 𝑎𝐸 + 𝑎𝑤 ; e 𝑏 = 𝑎𝑃0 𝑇𝑝0 .

Então já temos a nossa equação na forma linear, antes de aplicar o TDMA vamos fazer
um estudo sobre fronteira (condições de fronteira) do modelo em estudo.

Codições de fronteira

Para a malha do tipo A, e para caso de condição em que o fluxo 𝑞𝑏 for especificado em
termos de um coeficiente de transferência de calor h e uma temperatura do fluído
circundante 𝑇𝑓 , tal que:

𝑞𝑏 = ℎ(𝑇𝑓 − 𝑇𝐵 )

Então a equação para 𝑇𝐵 torna-se

𝑎𝐵 𝑇𝐵 = 𝑎𝐼 𝑇𝐼 + 𝑏

onde: 𝑎𝐼 = 𝑘𝑖 /(𝛿𝑥 )𝑖 , 𝑎𝐵 = 𝑎𝐼 − 𝑆𝑃 ∆𝑥 + ℎ , 𝑏 = 𝑆𝐶 ∆𝑥 + ℎ𝑇𝑓 .

𝑇𝐵 -Temperatura na fronteira da barra;


𝑇𝐼 -Tenperatura no nó seguinte;
𝑇𝑓 – Temperatura do fluído.
No nosso caso a condição de fronteira dada é: 𝑞 = ℎ(𝑇 − 𝑇∞ ) em 𝑥 = 0 e 𝑥 = 𝐿.
Considerando: L= 𝜌 = 𝐶𝑝 = 𝑘 = 𝑇𝑖 = 1 ; 𝑇∞ = 0.
Para o nó 1 e último (N) que fica em cima na própria fronteira barra, considerando ainda
que o fluxo do calor é de esquerda para direita teremos:
• nó N: 𝑎𝑁 𝑇𝑁 = 𝑎∞ 𝑇∞ + 𝑏

𝑏 𝑆 ∆𝑥+ℎ𝑇∞
Como 𝑇∞ = 0, 𝑇𝑁 = 𝑎 = 𝑎 𝐶−𝑆 , como não temos termo fonte e 𝑇∞ = 0, então
𝑁 𝐼 𝑃 ∆𝑥+ℎ

teremos que: 𝑇𝑁 = 0;

• nó 1: 𝑎1 𝑇1 = 𝑎2 𝑇2 + 𝑏

𝑎2 𝑇2 +𝑏 𝑎2 𝑇2 +𝑆𝐶 ∆𝑥+ℎ𝑇∞ 𝑘
𝑇1 = = , com 𝑎2 = 𝛿 , como não temos termo fonte e 𝑇∞ = 0,
𝑎1 𝑎2 −𝑆𝑃 ∆𝑥+ℎ 𝑥

então teremos:

𝑎2 𝑇2
𝑇1 =
𝑎2 + ℎ

Desse modo, podemos construir o número necessário de equações para as temperaturas


desconhecidas atravês do TDMA, para calcular as temperaturas somente nos volumes de
controlo interiores.

3.1 Aplicação do TDMA

Reescrevendo a equação na forma:

𝑎𝑃 𝑇𝑃 = 𝑎𝐸 𝑇𝐸 + 𝑎𝑤 𝑇𝑤 + 𝑏

Atravez da equação a seguir juntamentes com as condições de fronteira resolve as


tmeperaturas em cada nó:

𝑇𝑁 = 𝑃𝑁 𝑇𝑁+1 + 𝑄𝑁
𝑎𝐸 𝑏+𝑎𝑤 𝑄𝑁−1
𝑃𝑁 = 𝑎 , 𝑄𝑁 = 𝑎
𝑃 −𝑎𝑤 𝑃𝑁−1 𝑃 −𝑎𝑤 𝑃𝑁−1

Aplicando o método para o cálculo de 𝑃1 e 𝑄1 uma vez conhecida que para N=1, 𝑎𝑤 = 0,
continuando com o procedimento até N=N, temos que 𝑇𝑁 = 𝑄𝑁 , mas para N=N já foi
implimentada a condição de fronteira que podemos contabilizar o número da temperatura .

3.2 Cálculo da solução analitica e do erro

Para o calculo da solução analítica no méto do capacitivo a evolução da temperatura ao


longo do tempo, é dada pela equação:

2𝐹 𝑥
𝑇𝑎 (𝑥) = 𝑒 −𝑐1 0 cos (𝜏1 )
𝐿
Da tabela1 (coeficiente do 1º termo da série que dá a solução analitica para transferência
de calor por conveçã de umpa placa infinita), Fourier (𝐹0 = 0.5), entrando com 𝐵𝑖 = 1 ,
obtemos: 𝑐1 = 1.1191; 𝜏1 = 0.8603;

Para o erro fez se um erro de temperatura númerica relativo a temperatura analitica:

𝑇(𝑥)−𝑇𝑎 (𝑥)
𝐸𝑟𝑟 (𝑥) = 𝑇𝑎 (𝑥)

Onde: 𝑇(𝑥)- representa a temperatura , e 𝑇𝑎 (𝑥)- representa a temperatura numerica.


4 RESULTADOS DA SIMULAÇÃO, E DISCUSSÃO DO RESULTADO

Depois de modelamos o nosso problema, utilisando o Codebloks para programar e


Tecplot para ageração dos graficos da temperatuas da simulação, assim como calculo de
erro e as relações entre resultado análitico e numérico, para refinamentos da malha e espaço
de tempo.

• No gráfico abaixo fez-se plote do gráfico para N=40 e refinamento dos 4 passos
de tempo (∆𝑡 = 1/1000, 1/500, 1/200, 1/100):

• Enquanto que no gráfico abaixo fez-se plote do gráfico para (∆𝑡 = 1/200) e
refinamento dos 4 nós (N=10, 20, 40, 80, 160).
• No gráfico abaixo encontra-se o gráfico da solução analitica em para N=40 e os 4
passos de tempo (∆𝑡 = 1/1000, 1/500, 1/200, 1/100):
Mesmo refinando o nosso passo de tempo a temperatutra analitica comtinua o mesmo,
linhas sobrepostos como podem ver no gráfico.

• Podemos fazer grafico da solução numerica, e função analitica na mesma figura,


uma vez que para N=40 a solução analitica continua constante independentemente
do espaço do tempo utlisado, podemos considerar esse caso do numero de nó para
projetar esse gráfico de temperatura analitica e numerica:
• Podemos ver atravez do seguinte gráfico o comporatamento do erro para N=40 e
os 4 passos de tempo (∆𝑡 = 1/1000, 1/500, 1/200, 1/100):
5 CONSIDERAÇÕES FINAIS

O presente relatorioo almeja dar inicio a uma série de ensaios futuros a respeito da
utilização de técnicas numéricas aplicadas a problemas de transferencia de calor e mass.
Destaca-se positivamente neste relatorio o detalhamento de um código computacional como
referência básica para elaboração de outras aplicações com maior grau de complexidade.

O código computacional anexo a este trabalho pode ser facilmente alterado com
características físicas de outros materiais e condições de contornos diferentes permitindo
assim a predição da distribuição de temperaturas para nossos casos de simulação. Este
trabalho limitou-se a aplicação do método dos volumes finitos a uma geometria simples e
com malha de discretização regular. Sugere-se para trabalhos posteriores aplicar esta
metodologia a geometrias mais complexas e com malhas não regulares. Sugere-se para
trabalhos posteriores confrontar os resultados numéricos obtidos com os resultados a partir
de uma modelagem algébrica com solução exata.

Podemos ver tambem que a medida que refinamos o nosso dominio obtemos uma menor
margem de erro, assim como tambem quando refinamos o nosso passo de tempo. Ao refinar
o nosso dominio com mais numeros de nós mais perto do valor analitica estamos, isso
tambem acontece quando temos um passo de tempo amior como é no caso de deltat=0.01.
Referencias

ANDERSON, J. D. Computational Fluid Dynamics: the basics with applications.


McGrawHill: USA, 1995.

HAHN, B. H.; VELENTINE, D. T. Essential MATLAB for Engineers and Scientists. 4.


ed. Academic Press: USA, 2010. MALISKA, C. R. Transferência de Calor e Mecânica dos
Fluidos Computacional. Livros Técnicos e Científicos Editora: Rio de Janeiro, 2010.

ÖZISIK, M. N. Transferência de Calor: um texto básico. Guanabara: Rio de Janeiro,


Brasil, 1990.

PATANKAR, S. V. Numerical Heat and Transfer and Fluid Flow. McGraw-Hill: USA,
1980.

VERSTEEG, H. K.; MALALASEKERA, W. An Introduction to Computational Fluid


Dynamics: the Finite Volume Method. Pearson Education Limited: England, 2007.

Anexo
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <math.h>
4 int main ()
5 {
6 int opcao=1;
7 do{
8 int i, Tinf,s , Tf;
9 float l, N, h, qb, deltax, t, ta, alfa, Q[160], Ke, kw, k , rho, Cp, L, ae, ap,ap1, aw, aw1, aw10, ap01,
ap0, aeN, ae20, r, H, X[160], P[160], T[160], A1=1.1191, Z1,F0, j, Ta[160], Err[160];
10 printf(" Bem Vindo(a) ao programa para resolver com malha do tipo A(faces centradas) a equacao de calor
unidimensional,\n elaborado pelo:\n\n");
11 printf(" Helder Fernandes;\n");
12 printf(" Osvaldo Furtado;\n");
13 printf(" Jailson Ribeiro.\n\n");
14 printf(" Para rodar o programa, segue os seguintes passos:\n\n");
15
16 //Entrada dos dados da barra e condição inicial
17 printf(" Ensire o valor do comprimento da barra (L):\n \n\n");
18 scanf("%f",&L);// Comprimento da barra L[m]
19 printf(" Ensire o valor da massa volumica (rho):\n \n\n");
20 scanf("%f",&rho);// Massa volumica rho[Kg/m^3]
21 printf(" Ensire o valor da Calor especifico do material (Cp):\n \n\n");
22 scanf("%f",&Cp);// Calor especifico do material Cp[J/Kg.K]
23 printf(" Ensire o valor da condutividade termica do material (K):\n \n\n");
24 scanf("%f",&k);// Condutividade termica do material K[W/m.K]
25 printf(" Escolha uns dos seguintes valores dos nos:\n \n\n N=10 N=20 N=40
N=80 N=160 \n\n");
26 scanf("%f",&N);//pedindo numero de nó para avançar
27 if (N==10 || N==20 || N==40 || N==80 || N==160 ){
28 //printf("L=%f\n", L);
29 //printf("rho=%f\n", rho);
30 //printf("Cp=%f\n", Cp);
31 //printf("k=%f\n", k);
32 //printf("N=%f\n\n\n", N);
33 deltax=L/(N-1);
34 Ke=kw=k;
35 s=abs(N);
36 //printf("\n O valor de espacamento entre os nos(deltax=L/(N-2)) e = %f\n\n\n", deltax);
37 printf(" Escolha os seguintes valores de passo de tempo :\n \n\n t=0.001 t=0.002 t=0.005
t=0.01 \n\n");
38 scanf("%f",&t);
39 //printf("\n O valor de espacamento de tempo (deltat) escolhido e = %f\n\n\n", t);
40 alfa=k/(rho*Cp);
41 ta=alfa*t/(pow(L,2));
42 //printf("\n O valor de espacamento de tempo adimensionalisado (deltata=F0) escolhido e = %f\n\n\n", ta);
43
44
45
46 //O posicionamento de cada no:
47 //printf(" O posicionamento de cada no e indicado pela letra X[i] onde i indica o no:\n");
48 X[1]=0;
49 //printf("X[1]=%f\n", X[1]);
50 X[s]=L;
51 for (i=2; i<=N-1; i++)
52 {
53 X[i]= X[i-1] + deltax;
54 //printf("X[%d]=%f\n",i, X[i]);
55 }
56 //printf("X[%d]=%f\n",s, X[s]);
57
58 //printf("\n\n\n\n\n");
59 ae=aw=k/(deltax);
60 aw1=aeN=0; //como ke=kw=k atomaticamente ae=aw
61 ap01=((rho*Cp)*(deltax/2))/t;
62 ap0=((rho*Cp)*deltax)/t;
63 ap=ae+aw+ap0;
64 ap1=ae+aw1+ap01;
65 //Coeficientes ap0, aw e ap para o nó 1
66 //printf(" Para o no 1 os coeficientes ap0, aw e ap sao diferentes dos restantes nos, enquanto que ae sao
iguais:\n\n");
67 //printf("aw1=%f\n", aw1);
68 //printf("ap1=%f\n", ap1);
69 //printf("ap01=%f\n", ap01);
70
71
72 //Coeficientes ap0, aw e ap para os restentes nos excepto o ultimo nó
73 //printf("\n\n");
74 //printf(" Para os restantes nos (exceto no N) os coeficientes ap0, aw e ap:\n\n");
75 //printf("ae=%f\n", ae);
76 //printf("aw=%f\n", aw);
77 //printf("ap=%f\n", ap);
78 //printf("ap0=%f\n", ap0);
79 //printf("\n\n\n\n");
80 P[1]= (ae)/(ap1);
81 for (i=2;i<=N-1; i++){
82 P[i]=(ae)/((ap)-(aw*P[i-1]));
83 //printf("P[%d]=%f\n",i, P[i]);
84 }
85 P[s]=0;//aeN=0
86 //printf("P[%d]=%f\n", s, P[s]);
87
88 //printf("\n\n\n\n");
89 Tf=1;Tinf=0; h=k/L; //Bi=h.L/k=1 h=k/L;
90 qb =h*(Tf-Tinf); //dado para x=0 e x=L;
91 Q[1]=(ap01/ap1); //Através da condição inicial T=1 (x=0) e Sc é zero,o que implica que b=Sc*deltax+qb = qb
=h(T-Tinf);
92 //printf("Q[1]=%f\n", Q[1]);
93 for(i=2; i<=N-1; i++)
94 {
95 Q[i]=(ap0*Tf+aw*Q[i-1])/(ap-aw*P[i-1]);
96 //printf("Q[%d]=%f\n",i, Q[i]);
97 }Q[s]=0; //Condições de fronteira em x=o e x=L, qb =h(T-Tinf);
98 //printf("Q[%d]=%f\n",s, Q[s]);
99
100 //Calculo de temperatura
101 //printf("\n\n\n\n");
102 T[s]=0;//Na fronteira x=L
103 //printf("T[%d]=%f\n",s,T[s]);
104 for (i=N-1;i>1; --i)
105 {
106 T[i]=P[i]*T[i+1]+Q[i];
107 //printf("T[%d]=%f\n",i, T[i]);
108 }
109 T[1]=((k/deltax)*T[2])/((k/deltax)+h);
110 //printf("T[%d]=%f\n",i,T[1]);
111 //printf("\n\n\n\n");
112 for (i=N;i>=1; --i)
113 {
114 A1=1.1191;
115 Z1=0.8603;
116 F0=0.5;
117 j=-(pow(Z1,2))*F0;
118 Ta[i]=A1*exp(j)*cos(Z1*X[i]/L);
119 Err[i]=(T[i]-Ta[i])/Ta[i];
120 //printf("Ta[%d]=%f\n",i, Ta[i]);
121 }
122 //printf("\n\n\n\n");
123 for (i=N;i>=1; --i)
124 {
125 Err[i]=(T[i]-Ta[i])/Ta[i];
126 //printf("Err[%d]=%f\n",i, Err[i]);
127 }
128 for (i=N;i>=1; --i)
129 {
130 printf("%f ", X[i]);
131 printf("%f\n", Err[i]);
132 }
133 }
134 else {printf("Valor do no (N) inserido invalido\n");}
135 printf("\n\nDIGITE 1 PARA CONTINUAR OU 0 PARA SAIR\n\n");
136 scanf("%d",&opcao);
137
138 }while(opcao!=0);
139 return 0 ;
140 }

Você também pode gostar