Skip to content

HenriqueCCdA/Heat1D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heat1D

Solução do equação do calor utilizando o método dos volumes finitos para problemas unidimensionais. Objetivo é a comparação de uma implementação simples de volume finitos em diversas linguagem diferentes.

Liguagens de implementação

  • Fortran
  • Python (puro)
  • Python (numpy)
  • C++

Equação resolvida

A equação diferencial resolvida é:

onde é a temperatura é a massa específica é o calor específico a pressão constante é o coeficiente de difusçao de calor.

Resultados

A dimensão da domínio é 50 unidades. Todas as propriedades fisicas são consideradas como unitárias. O passo de tempo utilizado da integração temporal foi de 5.0 unidades de tempo. O domínio foi discretizado em 100 células.

Temperatura prescrita

  • Condições de contorno

  • Condição inicial

Fig1 - Caso com Temperatura prescrita.

Fluxo prescrito

  • Condições de contorno

  • Condição inicial

Fig2 - Caso com fluxo prescrito.

Fluxo convectivo ( Lei de resfriamento de Newton )

  • Condições de contorno

  • Condição inicial

Fig3 - Caso com fluxo convectivo.

Comparação de tempos de excecução

A Tabela 1 mostra que o codigo em Fortran e cerca de 100 vezes mais rápido que a sua versão em Python.

Tabela 1

nDiv Fortran Python C++
1.000 0.054 7.1844 0.0381
10.000 0.543 57.0355 0.407
100.000 4.970 566.2701 4.5165

Referencia

Versteeg, H., Malalasekera, W. An Introduction to Computational Fluid Dynamics: The Finite Volume Method. 2 ed. , Pearson Education Limited, 2007