Acessibilidade / Reportar erro

Uma interface de controle para a Fluidodinâmica Computacional

A control interface for Computational Fluid Dynamics

Resumo

Neste artigo apresentaremos uma proposta para a utilização da dinâmica de fluidos computacional sob uma perspectiva educacional, tendo como alvo as disciplinas de mecânica dos fluidos e fenômenos de transporte, nos períodos iniciais de cursos de Engenharia e Física. A importância da utilização da simulação na formação de base é amplamente corroborada pela literatura, contudo, pretende-se que o uso da CFD não seja somente demonstrativo, mas que coloque o usuário final como agente diretamente responsável por manipular e codificar dados e resultados das simulações propostas. Propõe-se então uma interface de manipulação e controle para o software opensource OpenFOAM, cujo objetivo principal é evitar a complexa edição e manipulação do código-fonte e scripts de controle típicos desse programa.

Palavras-chave:
Fluidodinâmica Computacional; Mecânica dos Fluidos; Modelagem Computacional; Ensino de Física

Abstract

In this article we will present a proposal for the use of computational fluid dynamics under an educational perspective, targeting disciplines of fluid mechanics and transport phenomena, on initial periods of engineering and physics courses. The importance of the use of simulation in undergraduated education is widely supported by the literature, however, is proposing to work it so not only statement, but the final users as officer directly responsible for handling and encode data and results of simulations. Second, a manipulation and control interface for the opensource software OpenFOAM, in order to take out the users the responsibility of editing the source code and scripts of typical control of this program.

Keywords:
Computational Fluid Dynamics; Fluid Mechanics; Computational Modeling; Physics Teaching

1. Introdução

A utilização da simulação como forma de ensino, além de seu apelo visual, possui precisão suficiente para que sejam coletados dados concretos acerca das condições envolvidas no problema, dentro de certo grau de precisão e validade. Tal perspectiva acaba por motivar o aluno e o docente em focar o estudo no problema em vez de somente concentrar esforços na manipulação de equações do sistema. Heidemann [1][1] L.A. Heideman, I.S. Araujo e E.A. Veit, Cad. Bras. Ensino Física 29, 965 (2012). demonstra isso quando compara o enfoque do ensino, entre o tradicional e o uso de modelagem dos fenômenos físicos, concluindo que a modelagem se destaca frente a resolução de problemas teóricos por não utilizar “truques”, de modo que o aprendizado ocorre pela experiência e não pela resolução de um grande número de problemas. Logo, a utilização didática de técnicas de simulação acaba por demonstrar que atividades que se diferenciem da abordagem tradicional, acabam por se tornar não só efetivas, mas também motivadoras [2][2] R. Tavares, Rev. Online Cie. Cog. 13, 99 (2008)..

Este trabalho propõe inicialmente contribuir para a discussão sobre esse tema e a implementação do uso da simulação computacional em fluidodinâmica como ferramenta de ensino. Na intenção desta, nota-se que a utilização da CFD (Computational Fluid Dynamics) exige, por vezes, experiência em programação básica e ainda relativa habituação a sistemas operacionais diferentes. Quando não se fazem presentes tais pré-requisitos, torna improdutivo a utilização de ferramentas como o CFD em cursos de um semestre, devido a necessidade de modificação de scripts e códigos fontes. Levando em conta estas possíveis dificuldades associadas à utilização destas técnicas, tanto no ambiente profissional quanto acadêmico, propôe-se também a construção de uma interface de simulação para tornar a utilização do pacote OpenFOAM[3][3] C.J. Greenshields Openfoam user guide (OpenFOAM Foundation, London, 2015). mais amigável ao usuário final.

A interface J.A.R.V.E.S. (acrônimo para Just a Rather Very Educative Simulator1 1 Apenas um Simulador Muito Educativo - Figura 1), objeto da proposta, é um conjunto de scripts de controle e edição que, de forma direcionada, manipula scripts do software OpenFOAM. Na construção dessa ferramenta buscou-se uma melhor adaptabilidade às distribuições baseadas em GNU/LINUX, ofertando uma interface na qual seja possível sua utilização tanto no ambiente gráfico, quanto em modo texto, seja em desktops ou em terminais de comando de clusters de processamento paralelo.

Figura 1
Logomarca da Interface J.A.R.V.E.S.

Inicialmente na seção 2 apresentamos um aporte teórico das principais equações que regem o escoamento, tendo como foco a obtenção da Equação de Navier-Stokes. Na seção 3 discorremos sobre os métodos de modelagem da dinâmica de fluidos, com enfoque no Método dos Volumes Finitos e, ao longo da seção 4, discutimos sobre o software OpenFOAM e a caracterização completa das funcionalidades da interface de simulação J.A.R.V.E.S.

2. Segunda Lei de Newton aplicada ao escoamento

Define-se por escoamento toda movimentação de uma porção fluida em relação a um sistema referencial inercial adotado, onde sua dinâmica é regida por axiomas não-relativísticos, com quantidade de partículas suficientemente grande para que flutuações provocadas por descontinuidades sejam desconsideradas [4][4] R.D. Blevins, Applied fluid dynamics handbook (Van Nostrand Reinhold, New York, 1984).. A Segunda Lei de Newton aplicada a um volume infinitesimal é descrita por

(1) d d t V ρ u i d V = V ρ f i d V + S t i d S ,

onde V e S são o volume e a superfice respectivamente do volume de controle considerado, ρ é a densidade do meio material em questão, ui o campo de velocidades e fi um campo externo qualquer, aqui considerado como sendo o campo gravitacional. O vetor tração ti pode ser descrito em termos do tensor tensão σij[5][5] D.R. Smith, An Introduction to Continuum Mechanics — after Truesdell and Noll (Springer, Dordrecht, 1993), p. 143., na forma de

(2) t i = n ^ j σ j i ,

e a transposta do tensor tensão na equação (2) indica que a atuação da força de tração tj sobre uma superfície de normal n^i cria o estado de tensão traduzido pela matriz tensor tensão σij, onde

σ i j = | σ 11 σ 12 σ 13 σ 21 σ 22 σ 23 σ 31 σ 32 σ 33 | .

Em simulações computacionais envolvendo difusões moleculares, um dos grandes problemas é a reprodução das forças intra e intermoleculares existentes entre os elementos do modelo. Na modelagem de fluidos, tais como a água, existem potenciais associados às forças intermoleculares, que modelam as forças de atração e repulsão existente nessas interações [6][6] R. Laprise, Mont. Weather Rev. 120, 197 (1992).. Seguindo esse raciocínio, o estado de stress interno existente é traduzido pela contribuição das forças de repulsão intermolecular, devido às forças de superfície que tendem a diminuir a distância existente entre estes elementos. Neste momento diferencia-se portanto, a pressão termodinâmica daquela advinda da própria interação intermolecular.

Assumindo que as tensões normais do fluido tem relação com a pressão hidrostática média no centro do volume, decompõe-se o tensor σij na forma de

(3) σ i j Tensor Stress Total = p δ i j Tensor Pressão Mecânica + τ i j . Tensor Deviatórico

onde o negativo do termo pδij representa que na atuação da tração, a pressão é negativa em relação ao ponto analisado [7][7] P.M. Dixit e U.S. Dixit, Modeling of metal forming and machining processes: by finite element and soft computing methods (Springer-Verlag, London, 2008).. Considera-se também que

(4) p δ i j = 1 3 σ i i = 1 3 ( σ 11 + σ 22 + σ 33 ) .

Dentre as ferramentas utilizadas na descrição de sistemas contínuos, destaca-se o conceito de Derivada Material. O intuito principal da derivada material é estabelecer uma função de relação entre as abordagens lagrangiana e euleriana de uma grandeza qualquer analisada no escoamento de um fluido. Na notação aqui utilizada, é descrita por

(5) D f D t = o f + u j j f ,

onde o primeiro termo do lado direito da equação (5) é a derivada local de uma grandeza f qualquer, e tal como no referencial euleriano, determina a variação desta ao longo do tempo na posição determinada. O segundo termo do lado direito é a derivada de transporte ou advectiva, indicando a variação instantânea da grandeza decorrente de uma variação de posição fruto do campo de velocidades ui[8][8] J. Sokolowski e J.P. Zolesio, Introduction to shape optimization (Springer, Berlin, 1992)..

Na aplicação da derivada material no termo esquerdo da equação (1), juntamente com a substituição do Tensor de Cauchy, descrito em (2), chega-se na forma do Teorema de Transporte de Reynolds [9][9] B.R. Munson, T.H. Okiishi, W.W. Huebsch e A.P. Rothmayer, Fluid mechanics (Wiley, Singapore, 2013). aplicada à Segunda Lei de Newton para um volume de controle. Tais modificações resultam na forma primária do princípio do momento linear

(6) ( o ρ u i + j ( ρ u j u i ) ) d V = ρ f i d V + S n ^ j σ j i d S .

Transformando o segundo termo do lado direto da equação (6) usando o Teorema de Gauss, reescreve-se na forma de

(7) ( o ρ u i + j ( ρ u j u i ) ρ f i j σ j i ) d V = 0.

Dado que o diferencial dV é arbitrário, toma-se portanto que o integrando é nulo, escrevemos

(8) o ρ u i + j ( ρ u j u i ) = ρ f i + j σ j i .

A equação (8) é conhecida como Equação de Cauchy [10][10] A.J. Chorin e J.E. Marsden, A mathematical introduction to fluid mechanics (Springer, New York, 1990)., válida para qualquer meio contínuo, onde o termo σij carrega a informação da microestrutura, modelando suas consequência na macroestrutura. Como no caso analisado, σji=pδij+τji temos

(9) o ρ u i + j ( ρ u j u i ) = ρ f i + j ( p δ i j + τ j i )
(10) o ρ u i + j ( ρ u j u i ) = ρ f i j p + j τ j i

Apesar da equação (10) descrever matematicamente o formalismo do momento linear, sua relação com a microestrutura do fluido ainda não se faz presente. Entende-se por hora que o tensor τij carrega a informação das tensões cisalhantes e, consequentemente, relação intrínseca com a viscosidade do fluido.

2.1. Equações de Navier-Stokes para fluidos isotrópicos

Na mecânica de meios contínuos, as equações constitutivas contribuem, assim como dito, na transposição do axioma matemático, em uma equação que consiga realmente definir a especifidade macroscópica do sistema material. Das equações principais que regem o escoamento, percebe-se uma forte relação entre a microestrutura e as forças externas. Tal situação emprega de modo prático uma equação constitutiva que se relaciona de modo direto com o tensor deviatórico e a interação viscosa do sistema material. Na tentativa de definir esse sistema, determinadas condições são impostas ao fluido, tais como:

  1. o fluido é homogêneo, ou seja, não é função explícita da posição xi;

  2. o fluido é isotrópico, ou seja, não adota direção preferencial;

  3. na ausência de tensões de deformação, o único stress considerado será o hidrostático e

  4. o tensor deviatórico τij é função linear e explícita do gradiente de velocidades.

Tais condições, modelam o que se conhece como fluido stokesiano [11][11] J. Serrin, J. Math. Mec. 4, 459 (1959).. Considerando, portanto, a quarta condição como início e que somente a parte simétrica do tensor gradiente de velocidades é responsável pela efetiva deformação do sistema material analisado, pode-se escrever

(11) τ i j = A i j k l ( k u l ) .

A condição da isotropia do fluido permite resumir o tensor de proporcionalidade Aijkl, escrito na forma do produto entre tensores de Levi-Civita εijk

(12) A i j k l = ϵ h i j ϵ h k l = C 1 δ i j δ k l + C 2 δ i k δ j l + C 3 δ i l δ j k ,

e consequentemente, na admissão da homogeneidade as, constantes C2 e C3 são iguais, resultando na forma final do tensor de proporcionalidade

(13) A i j k l = C 1 δ i j δ k l + C 2 ( δ i k δ j l + δ i l δ j k ) .

Ao analisarmos o experimento proposto por Newton, contido na seção IX do livro 2 da obra Philosophiae Naturalis Principia Mathematica[12][12] I. Newton Philosophiae Naturalis Principia Mathematica (Cambridge University Press, London, 1972)., onde discorre sobre a viscosidade de um fluido encerrado entre dois cilindros concêntricos, percebemos que os fatores C1 e C2 são escritos em termos da viscosidade absoluta μ. Ao final de todo trabalho de reconstrução do tensor de proporcionalidade, obtem-se que a forma final do tensor deviatórico é definida com

(14) τ i j = 2 μ ( i u i ) 2 3 μ ( k u k ) δ i j ,

onde observa-se que o segundo termo corresponde a chamada ”segunda viscosidade”, acontecendo exclusivamente para fluidos ditos compressíveis. Após esta determinação, pode-se finalmente obter o mais importante conjunto de equações da dinâmica dos fluidos, as Equações de Navier-Stokes. Inicialmente derivadas em 1822 por Claude Louis Marie Henri Navier [13][13] C.L.M.H. Navier, Ann. Chim. Phys 19, 234 (1822)., que utilizando a noção da interação intermolecular, propôs uma solução onde levava em consideração os efeitos viscosos do escoamento. Vinte e três anos após a publicação de Navier, George Gabriel Stokes rederivou em 1845 [14][14] G.G. Stokes, Trans. Cambridge Philos. Soc. 8, 287 (1845). o trabalho de Navier, apresentando-as na forma como conhecemos hoje.

Percebe-se de antemão que a operação do termo jτij corresponde ao real interesse desse tópico, por conta de sua relação com os termos viscosos do escoamento. Para tanto, toma-se a derivada da equação (14)

(15) j τ i j = j ( 2 μ ( i u i ) 2 3 μ ( k u k ) δ i j ) ,
(16) o ρ u i + u j j ( ρ u i ) = ρ f i j p + 2 μ [ 1 2 j ( i u j + j u i ) 1 3 j ( k u k ) δ i j ]
(17) o ρ u i + u j j ( ρ u i ) = ρ f i j p + μ j ( i u j + j u i )

Vale ressaltar, no entanto, que a forma apresentada em (16) refere-se à fluidos newtonianos viscosos e compressíveis. No caso de fluidos incompressíveis, onde o traço do tensor gradiente de velocidade é nulo (kuk=0), temos a forma incompressível da equação de Navier-Stokes conforme é apresentada na (17). Considerando que j(iuj+jui)=2ui e que μρ=ν apresenta-se as equações de Navier-Stokes em sua forma mais conhecida

(18) u = 0
(19) t u + u u = f 1 ρ p + ν 2 u i

Apesar de sua dedução ser trivial, quando se lança mão de termos e noções corretas, a não-linearidade da equação obtida impede uma solução analítica direta. Sua importância estende-se desde a análise de escoamentos na ótica da mecânica do contínuo até a movimentação de galáxias nos estudos de astronomia. A larga aplicabilidade dessas equações, no entanto, são feitas de modo extremamente restrito, sendo modeladas sequencialmente por equações constitutivas, colaborando com a construção de um modelo numérico restrito. As Equações de Navier-Stokes são consideradas um dos problemas do milênio pela Clay Mathematics Institute, oferecendo um prêmio de $1,000,000.00 baseado no seguinte enunciado:

Prove or give a counter-example of the following statement

In three space dimensions and time, given an initial velocity field, there exists a vector velocity and a scalar pressure field, which are both smooth and globally defined, that solve the Navier–Stokes equations.

Portanto, como se demonstra, a intensão é comprovar a existência e suavidade de soluções em 3 das equações de Navier-Stokes [15][15] L. Tartar, An introduction to Navier-Stokes equation and oceanography (Springer-Verlag, Berlin, 2006)..

3. A Modelagem da Dinâmica de Fluidos

Existem hoje disponíveis no mercado uma grande quantidade de softwares de simulação em fluidodinâmica, onde se pode citar o Fluent, Ansys, Flow3D entre outros. Grande parte dos sistemas proprietários dessa classe oferecem soluções completas, desde interfaces de criação de malha e pré-processamento até softwares integrados de pós-processamento. Uma tendência hoje é o desenvolvimento de softwares Open Source, na qual a colaboração mútua de desenvolvedores em fóruns na internet permite uma melhor adaptabilidade do software, implicando porém em uma maior dificuldade de utilização, visto a não preocupação com a interface gráfica de utilização. Mesmo com toda a complexidade computacional agregada ao uso de simuladores, o conhecimento acerca da fenomenologia e da reologia do escoamento é imprescindível, visto que a imposição das condições de contorno em softwares mais completos ou adaptação das sub-rotinas em códigos via linha de comando são de responsabilidade do pesquisador.

3.1. Método dos Volumes Finitos

Enquanto o método das diferenças finitas [16][16] A.R. Mitchell e D.F. Griffiths, The finite difference method in partial differential equations (Wiley, New York, 1980). recorre à utilização de ferramentas como a Série de Taylor, o método dos volumes finitos discretiza uma equação integrando-a sobre toda a região 3 de interesse. Ao executar este primeiro passo, obtêm-se um conjunto semi-discretizado de equações que, por métodos de interpolação, transforma as relações algébricas em um conjunto de equações algébricas solucionáveis. Para o caso específico, considera-se a malha unidimensional, conforme ilustra a Figura 2.

Figura 2
Malha unidimensional estruturada

Um ponto geral P tem em sua vizinhança dois pontos, W e E, com superfícies de fronteira w e e. As distâncias nodais são definidas por δxWP e δxPE e as distâncias nodo-fronteira por δxwP e δxPe.

Considerando a equação geral de conservação, na sua forma permanente e exclusivamente difusiva [4][4] R.D. Blevins, Applied fluid dynamics handbook (Van Nostrand Reinhold, New York, 1984)., onde o negativo do divergente do vetor gradiente de ϕ é igual ao termo de fonte Q

(20) i [ Γ i ϕ ] + Q = 0 ,

onde ϕ é a grandeza analisada e Γ é a constante de difusão.

Integrando a equação (20) sobre todo o volume considerado e aplicando o Teorema de Gauss na primeira integral obtêm-se

(21) S [ Γ i ϕ ] n i d S + V Q d V = 0.

Observando o exposto na Figura 2, onde w e e são as interfaces do volume de controle, nota-se que esta integral tem seu resultado definido por

(22) w e Γ i ϕ n i d S = ( Γ A i ϕ ) w ( Γ A i ϕ ) e ,

onde (21) é reescrita como sendo

(23) ( Γ A i ϕ ) w ( Γ A i ϕ ) e + Q Δ V = 0.

O termo fonte pode ser expresso pela soma de uma constante Qu mais uma função da variável depentente Qpϕp na forma [17][17] H.K. Versteeg e W. Malalasekera, An introduction to computational fluid dynamics: the finite volume method (Longman Scientific & Techincal, Essex, 2007).

(24) Q Δ V = Q u + Q P ϕ P .

Admitindo-se que o fluxo convectivo de massa e a condutância difusiva ocorrem nas fronteiras dos volumes de controle, discretiza-se por interpolação linear o valor de Γ como sendo

(25) Γ w = Γ W + Γ P 2 Γ e = Γ P + Γ E 2

e para as derivadas de ϕ

(26) ( i ϕ ) w = d ϕ d x i | w = ( ϕ P ϕ W δ x W P )
(27) ( i ϕ ) e = d ϕ d x i | e = ( ϕ E ϕ P δ x P E )

Resultando na forma final da substituição da equação (24) na equação (23), levando em conta o demonstrado nas equações (25), (26) e (27).

(28) a P ϕ P = a W ϕ W + a E ϕ E + 2 Q u

onde ai referem-se aos coeficientes de difusão efetivos, discretizados na malha em questão

(29) a W = ( Γ W + Γ P δ x W P A w ) ;
(30) a E = ( Γ P + Γ E δ x P E A e ) ;
(31) a P = a W + a E 2 Q P .

Este resultado determina a discretização sob a perspectiva do método dos volumes finitos. Esta equação pode ser definida para cada nó da malha, a fim de solucionar o problema, quando apropriadamente adaptada as suas condições de contorno típicas. Seu resultado determina a distribuição da propriedade ϕ, discreta, sobre todo os nós da malha. A generalização para os casos bidimensional e tridimensional podem ser obtidos de formas semelhantes, de modo que a equação para o caso geral escreve-se na forma

(32) a P ϕ P = a n ϕ n + 2 Q p ,

de modo que, para os casos especificados abaixo, os valores de n para as diferentes direções tratadas no problema

(33) 1 D = a W , a E
(34) 2 D = a W , a E , a N , a S
(35) 3 D = a W , a E , a N , a S , a F , a B

Observa-se também que a generalização para o tratamento de casos advectivos/convectivos também pode ser obtido de forma semelhante, tornando esse método uma ferramenta amplamente usada na abordagem da dinâmica de fluidos computacional.

3.2. O algoritmo SIMPLE / PISO

Dado a construção do conjunto de equações discretizadas, faz-se necessário estabelecer a rotina de funcionamento deste modelo. Analisando o obtido na discretização da equação geral de conservação, poderia em primeiro momento concluir-se que a equação da continuidade e o princípio da conservação da quantidade de movimento são casos específicos desta, demonstrada sem os termos transiente e convectivo na equação (20). Mesmo que tal definição induza a pensar na simplicidade da solução, o desconhecimento a priori do campo de velocidades que efetivamente realiza o transporte da grandeza ϕ já induziria uma significativa complexidade, visto que este faz parte das equações a serem resolvidas. Tal fato gera termos não lineares como a derivada de ρuiuj, o que torna ainda mais complexa a obtenção da solução numérica desejada.

Discretizando a equação da continuidade, para o caso de um fluido invíscido, obtem-se

(36) a e u e = a n u n ( p P p E ) A e + 2 S u

Na análise da equação (36) percebe-se um acoplamento da solução da equação da quantidade de movimento com a determinação do campo de pressão. Uma abordagem a ser utilizada nesse problema é a solução acoplada das equações de momento, conjuntamente com um correlator do campo de pressão. Tal rotina caracteriza o algoritmo SIMPLE (acrônimo para Semi-Implicit Method for Pressure-Linked Equations)

O algoritmo SIMPLE [18][18] S. Patankar Numerical heat transfer and fluid flow (Hemisphere, Washington, 1980). baseia-se no princípio que a equação do momento linear somente irá satisfazer a equação da continuidade se, e somente se, o campo de pressões correto for determinado [19][19] J.P. Van Doormaal e G.D. Raithby, Num. Heat Trans. 2, 147 (1984).. Nesse algoritmo existe a necessidade de corrigir-se tanto o campo de pressão como o de velocidades

(37) u n f = u n f * + u f p α = p α * + p α

onde de modo direto, relaciona-se a correção da velocidade e a correção do campo de pressão na forma de

(38) u f = d f ( p α p α + 1 ) .

O algoritmo SIMPLE possui a seguinte sequência de execução

  1. determinar um campo de pressões p*;

  2. resolver a equação do momento linear, afim de obter os valores para u* (consequentemente para v* e w* no caso tridimensional);

  3. resolver a equação de p′;

  4. determinar o valor exato do campo p;

  5. resolver a equação de correção para determinar o valor de u (consequentemente para v e w no caso tridimensional);

  6. usar o novo campo de pressões p para determinar um novo campo de pressões p* e repetir novamente todo o processo até a obtenção da solução.

O algoritmo SIMPLE mostra-se eficiente na solução de diversos tipos de escoamentos desde que em seu estado estacionário, sejam eles laminares ou turbulentos. Para regimes de escoamento transientes utiliza-se o algoritmo PISO (acrônimo para Pressure Implicit with Splitting of Operator) [20][20] D.S. Jang, R. Jetli e S. Acharya, Num. Heat Trans. 3, 209 (1986)., sendo uma extensão do algoritmo SIMPLE, no qual são gerados dois níveis de correção, na intensão de melhor caracterizar o regime transiente simulado.

4. A Simulação Computacional e a Interface de Controle

O OpenFOAM[3][3] C.J. Greenshields Openfoam user guide (OpenFOAM Foundation, London, 2015). é um conjunto de bibliotecas escritas em C + + desenvolvidas para simulações de sistemas na qual a fenomenologia é escrita em termos de campos tensoriais. Dentro dessas bibliotecas, existem vários modelos nas mais diversas áreas, onde por consequência uma das aplicabilidades mais usadas e com maior suporte online2 2 existe diversos fóruns de discussão e comunidades na internet que dispõe de FAQ's e conteúdos voltados à utilização do OpenFOAM é exatamente a Dinâmica de Fluidos Computacional. Inicialmente desenvolvido em 1993 por Henry Weller e Hrvoje Jasak, enquanto estudantes do Imperial College, o FOAM (acrônimo de Field Operation and Manipulation) foi uma proposta frente a inacessibilidade aos softwares de simulação disponíveis na época. Escrito em C + + , o OpenFOAM é um software de simulação em CFD, que pode ser obtido via repositório da SourceForge, Github e da própria NABLA, detentora da licença oficial de desenvolvimento e distribuição do FOAM até o ano de 2005 e que posteriormente o liberou sob licença pública GNU. Hoje o código OpenFOAM é mantido e desenvolvido pela OpenCFD [21][21] http://www.openfoam.com, acessado em 08/08/2018.
http://www.openfoam.com...
e paralelamente a Wikki mantém e desenvolve o FoamExtended, similar ao OpenFOAM.

A estrutura de linguagem do OpenFOAM foi desenvolvida para aproximar de forma eficiente a linguagem matemática da linguagem de programação. A Tabela 1 demonstra alguns operadores diferenciais que estão disponíveis dentro da biblioteca de códigos do OpenFOAM.

Tabela 1
Tabela de equivalência das operações e a sitaxe utilizada no software OpenFOAM

Na manipulação das dimensões das grandezas representadas, o OpenFOAM permite operações algébricas nessas propriedades desde que devidamente representadas. Como forma de prevenir a implementação errada de determinadas rotinas, o código executa o cálculo dimensional em todas as operações tensoriais efetuadas. Para representá-las, o usuário tem disponível a seguinte linha de comando


De modo que cada entrada entre os colchetes representa a dimensão abaixo especificada

De acordo com a Tabela 2, percebe-se que na linha de comando exemplificada, a dimensão da grandeza é em m2t3. Em relação a sintaxe do programa, onde utilizando como exemplo a equação de transporte

Tabela 2
Tabela de entrada das dimensões suportadas pelo software OpenFOAM
(39) o ρ T + i ( ρ ϕ T ) i ( d t i T ) = 0 ,

em que dt é o passo temporal, observa-se as seguintes regras:


Convém notar que a variável ϕ (phi) presente no código descrito acima, corresponde ao campo de velocidades linearmente interpolado para as fronteiras do volume de controle, conforme a equação abaixo

(40) ϕ = A u i n i d A .

O OpenFOAM tem implementado o Método dos Volumes Finitos, como operação para discretização das EDP's a serem calculadas ao longo da simulação. Para tanto o software possui duas bibliotecas específicas, a FVM.H e a FVC.H. A primeira biblioteca corresponde ao conjunto de operações de discretização típicas do método dos volumes finitos. Os resultados fornecidos são armazenados em um objeto tipo fvMatrix<Type>, de modo a serem armazenados em uma matriz que será solucionada pelo próprio método. A segunda biblioteca traz o ferramental para manipular os termos da EDP de modo explícito não guardando-os porém, dentro de uma matriz solucionável pelo sistema.

5. Estrutura de Funcionamento

A interface J.A.R.V.E.S. foi construída para disponibilizar uma biblioteca de simulações pré definidas, baseadas nos exemplos mais utilizados nos cursos de mecânica dos fluidos, tais como:

  1. escoamento laminar externo sobre um cilindro com dois módulos de Reynolds diferentes: Re = 30 e Re = 195;

  2. escoamento turbulento interno em um alargamento tipo degrau (reprodução do experimento de Robert W. Pitz e John W. Daily de 1980) [22][22] R.W. Pitz e J.W. Daily, AIAA Journal 11, 1565 (1983).;

  3. escoamento multi fase com dois fluidos imiscíveis de viscosidades absolutas distintas;

  4. escoamento laminar interno em uma curva 90° com injetor;

  5. simulação da esteira de Von-Karman [23][23] T. Von Kármán e L. Edson, The wind and beyond (Little, Brown & Company, Boston, 1967).;

  6. escoamento supersônico de um fluido compressível sobre um estreitamento tipo degrau (T = 3K e P = 1N/m2);

  7. escoamento de transição em um alargamento tipo degrau.

A interface J.A.R.V.E.S. está baseado em três ferramentas nativas ao Linux, onde o funcionamento conjunto auxilia a utilização, controle e edição dos scripts do OpenFOAM.

5.1. Linguagem ShellScript

A escolha da linguagem de extensão Shell Script veio da necessidade de adaptação e controle do OpenFOAM. Como a intenção principal na construção da interface J.A.R.V.E.S é controlar a forma como se trata a pré-montagem fragmentada da simulação no OpenFOAM. Outras linguagens como Python e C++, nativa do próprio OpenFOAM, não atenderam a necessidade de controle direto das ações no computador, tal como a linguagem nativa do próprio Shell consegue executar.

O primeiro shell foi criado pelo próprio desenvolvedor do sistema OS UNIX [24][24] M.J. Bach. The design of the UNIX operating system (Prentice-Hall, Englewood Cliffs, 1986)., Kenneth Lane Thompson (1943), e foi distribuído nas versões 1 a 6 do UNIX, entre os anos 1971 a 1975 e, embora em desuso, o Thompson Shell foi o precursor de outros sistemas [25][25] S.R. Bourne, Bell System Tec. J. 6, 1971 (1978).. O Bash, interpretador Shell nativo da grande maioria das distribuições baseadas no GNU/LINUX foi desenvolvido por Brian Fox em 1988, a pedido de Richard Stallman, fundador da Free Software Foundation. Stallman desejava um shell livre e ao mesmo tempo eficiente, sendo um dos únicos projetos financiados pela FSF. O Bash foi mantido por Fox até 1994, sendo hoje assegurado por Chet Ramey, também da FSF.

Trabalhando em conjunto com o Bash, a linguagem Shell Script dá ação o comando escrito em código fonte, em um arquivo com extensão .sh, permitindo a construção de um programa ordenado, onde é possível estruturas que contenham:

  1. estruturas de decisão (if);

  2. estruturas de repetição (for ou while);

  3. funções e argumentos;

  4. definições de variáveis e formalismo de funcionamento.

A primeira linha de um ShellScript começa obrigatoriamente com um comando #! (Vale ressaltar no entanto que o indicativo de comentário no Shell Bash é o comando ”#”, sendo diferente do par utilizando no início do arquivo, que em inglês é pronunciado como ”shebang”), informando diretamente ao núcleo qual shell ele deverá usar, sendo escrito tal como:


Tal comando determina que o shell Bash, localizado no diretório /bin execute o script. Após isso, todos os comandos devem vir em linhas separadas.

5.2. Ferramenta SED

A ferramenta SED, acrônimo para Stream Editor ou editor de fluxo, que cumpre o papel de edição dos scripts típicos da simulação em OpenFOAM [26][26] E. Siever, S. Figgins, R. Love e A. Robins, Linux in a Nutshell (O'Reilly Media, Sebastopol, 2005).. Como a interface precisava manipular e editar dados ou seções inteiras dentro do OpenFOAM, foi escolhido a ferramenta SED em função da praticidade de inserir, apagar, substituir e editar partes de um documento qualquer. A ferramenta SED foi criada por Lee E. McMahon entre os anos 1973 e 1974, quando era programador da BellLabs. Foi inicialmente disponibilizado na versão 7 do UNIX, sendo considerado um dos primeiros comandos para edição de texto via linha de comando. Vale ressaltar porém que existe uma grande diferença entre a ferramenta SED e editores nativos ao terminal como o VI e o VI-M, pois o SED edita por orientação de linha, não necessitando de ”abrir e editar” o arquivo, trabalhando-o dentro do espaço padrão (Pattern space).

A ferramenta SED usa a seguinte seguinte sintaxe básica:


As opções possíveis para a ferramenta SED estão disponíveis no comando ~$ sed --help, onde sua saída no terminal de comando lê-se, de modo traduzido como: Um exemplo prático da uso do comando SED é visto no script abaixo, retirado da interface J.A.R.V.E.S:


Este comando trabalha diretamente na linha 20 do arquivo k, localizado no diretório original. O comando descrito na linha 15 executa a remoção da linha 20, através da opção ”d = delete” e o comando da linha 17 executa a inserção do valor internalField uniform $num; nesta mesma linha através da opção ”s = substitute” e o comando ” /^/ \”, onde o espaço entre o slash e o backslash é considerado um valor e não mais um comando, captando a string $num do stream anterior e substituindo-a pelo seu valor determinado. Apesar de aparentemente trabalhosa, a ação ”apagar – substituir” mostrou-se bastante útil, visto que elimina a exigência da interferência do usuário na edição do script do OpenFOAM, automatizando significativamente a interface J.A.R.V.E.S.

5.3. A Interface DIALOG

Tendo estruturado o cerne de operação da interface J.A.R.V.E.S., faz-se necessário agora determinar as dependências da interface com o usuário. Das muitas opções disponíveis para as distribuições LINUX, a interface DIALOG foi a que melhor adaptou-se na proposta. A interface DIALOG foi criada por Savio Lam, sendo sua primeira versão lançada em dezembro de 1993, ainda na versão 0.1. Após 1999, o código-fonte do DIALOG está sendo mantido por Thomas E. Dickey, conforme destacado no site https://invisible-island.net/dialog/ onde preserva o log de alterações do código fonte [27][27] J.C. Neves Programação Shell Linux (Brasport, Rio de Janeiro, 2008)..

A interface de usuário é uma das partes mais importantes quando se trata da construção e funcionalidade de um software. Através dela, o usuário realiza tarefas, determina comandos e altera condições na estrutura de dados ou de processamento do computador. Seu surgimento deu-se exatamente para simplificar e tornar menos hostil a interação usuário-computador, disponibilizando elementos gráficos que, de modo intuitivo, guiem e correlacionem entradas e saídas de informação. Desde os primórdios da computação até meados da década de 80, a maioria dos computadores tinha sua interface baseada em texto (Text-based User Interface – TUI), onde a entrada dos comandos necessários é feita prioritariamente pelo teclado. As interfaces baseadas em texto caracterizam-se por disponibilizar exclusivamente texto e admitir entrada exclusivamente de texto, onde o principal benefício é a baixa exigência de processamento durante o uso e principal desvantagem é a pouca interatividade da interface.

A escolha de uma interface baseada em texto para o J.A.R.V.E.S. deu-se devido a possibilidade de sua utilização em terminais de comando, sem a exigência de ter-se instalado uma interface gráfica na distribuição LINUX, e a lista dos tipos de caixas disponíveis é dado pelo comando dialog – help.


Esta caixa baseada em DIALOG é disponibilizada para determinar qual tipo de escoamento será simulado. A string FLOW é relacionada à saída da caixa tipo menu, onde existem duas opções disponibilizadas, nas linhas 24 (INTERNO) e 25 (EXTERNO). A encadeamento de opções utilizadas determina que a caixa tenha uma mensagem de fundo (linha 18, opção --backtitle), que a saída seja interpretada como direta (linha 19, opção --stdout), sem a presença do botão CANCEL (linha 20, opção --nocancel|) e que o título da caixa seja visto como J.A.R.V.E.S. (linha 21, opção --title). É criado um direcionamento caso o botão ESC do teclado seja pressionado (valor ”0” na saída), direcionando o terminal a uma tela de confirmação. Capturando a saída da caixa, o condicional case escrito das linhas 30 a 40 direciona para a execução de outro dois nós de direcionamentos descritos nas linhas 34 e 38. A saída do script, quando executado, é visualizado na Figura 3.

Figura 3
Caixa de texto criada pelo comando SED

A junção destas poderosas ferramentas possibilitou a criação da interface automatizada, permitindo que o usuário concentre-se na modelagem básica do problema, eximindo um largo ”know-how” em manipulação de scripts. Apesar do detrimento da forma em função da usabilidade, a interface J.A.R.V.E.S. busca cumprir o papel de simplificar e popularizar o uso educacional da CFD, mais precisamente descomplexificar o formalismo do OpenFOAM.

5.4. Instalação e Manuais

O código-fonte da interface, juntamente com o pacote OpenFOAM adaptado está hospedado no site https://so-urceforge.net/projects/jarves-1-0/, estando inicialmente compactado em protocolo .tar.gz. Juntamente a este, encontra-se o arquivo MANUAL.pdf onde está disposto um revisional sobre a dinâmica de fluidos do ponto de vista teórico e computacional, o manual de instalação, toda a rotina de simulação com os scripts associados discutidos e os objetivos e perspectivas do ponto de vista educacional.

6. Considerações Finais

A computação como ferramenta de ensino permite que fenômenos inteiros sejam modelados, de modo que além de sua ampla utilização no campo da pesquisa, a visualização e a manipulação de dados e condições da simulação contribuem para a construção do conhecimento [28][28] A. Medeiros e C.F. de Medeiros, Rev. Bras. Ensino Física 2, 77 (2002).. No caso específico da sua utilização na educação superior, demonstra uma potencialidade ainda maior [29][29] I.S. Araujo e E.A. Veit, Rev. Bras. Pesq. Educação Ciências 3, (2011).. Em disciplinas abstratas como o caso da Mecânica dos Fluidos, onde apesar da larga utilização de ferramentas experimentais, determinadas características do escoamento acabam sendo assimiladas exclusivamente através em esquemas ou ilustrações. Dado que grande parte do estudo dedicar-se a dinâmica do escoamento, tais modos de representação acabam por serem falhos.

A pré existência de ferramentas computacionais em dinâmica dos fluidos colaborou significativamente, motivando a pesquisa sobre os métodos relacionados a este campo de estudo. A simulação computacional como ciência busca, dentre outros intuitos, ser uma ferramenta na análise de cenários. Modelar um problema computacionalmente é não só buscar reproduzi-lo como representação da situação real, mas também buscar possíveis cenários onde resultados colaborem com a predição de acontecimentos em escala real, demonstrando não somente a perspectiva de visualização, mas também a predição de acontecimentos, limitados claramente em validade e precisão. Sendo portanto uma ferramenta com aplicabilidade tão vasta em análise, predição e design, uma perspectiva educacional pode ser almejada, desde que adaptada apropriadamente para a situação. Como já enunciado anteriormente, a dificuldade intrínseca na manipulação da estrutura de algoritmo e o necessário know-how pré-existente em programação acaba por desmotivar docentes em inserir em suas disciplinas, estruturas de simulação de sistemas dinâmicos, abrindo portanto uma interessante demanda. A solução proposta na criação da interface J.A.R.V.E.S vem de encontro exatamente com esta necessidade, realizando em primeira instância, o papel de ”programador-base” da simulação a ser apresentada educacionalmente.

Apesar de tratar problemas específicos a simulação computacional como ferramenta de solução de modelos matemáticos colabora para o entendimento acerca do fenômeno com um todo. Sua especificidade fica clara quando, ainda citando Heidemann [1][1] L.A. Heideman, I.S. Araujo e E.A. Veit, Cad. Bras. Ensino Física 29, 965 (2012)., demonstra que: “Os modelos computacionais são ‘recortes’ da realidade, ou seja, são implementações computacionais de modelos específicos, e, como tais, desprezam diversos aspectos do sistema real, a fim de focar a atenção em certos aspectos particulares da natureza, o que facilita a compreensão do fenômeno físico”. Durante a construção da interface, buscou-se não somente criar mais uma ferramenta de controle, mas sim um aparato baseado em teorias educacionais que efetivamente corroborasse com os preceitos teóricos pré-definidos, buscando gerar ao discente que, imerso em suas dependências, consiga alcançar um aprendizado significativo. Tal intensão vai de encontro com o apresentado por Araújo [29][29] I.S. Araujo e E.A. Veit, Rev. Bras. Pesq. Educação Ciências 3, (2011). quando diz ”Não se melhora o ensino simplesmente produzindo novos e sofisticados recursos instrucionais. O desenvolvimento instrucional deve estar acoplado à pesquisa em ensino ou, pelo menos, levar em conta o conhecimento produzido pela pesquisa em ensino e os enfoques teóricos sobre aprendizagem compartilhados pela comunidade de educadores e pesquisadores em Ensino de Física”.

Agradecimentos

Thiago F. D. Dias Fernandes agradece ao FAPEG pela bolsa de aperfeiçoamento concedida, ao Mestrado Nacional Profissional em Ensino de Física – MNPEF, Polo UFG/Catalão e à Faculdade de Caldas Novas pelas instalações para o desenvolvimento da pesquisa.

  • 1
    Apenas um Simulador Muito Educativo
  • 2
    existe diversos fóruns de discussão e comunidades na internet que dispõe de FAQ's e conteúdos voltados à utilização do OpenFOAM

Referências

  • [1]
    L.A. Heideman, I.S. Araujo e E.A. Veit, Cad. Bras. Ensino Física 29, 965 (2012).
  • [2]
    R. Tavares, Rev. Online Cie. Cog. 13, 99 (2008).
  • [3]
    C.J. Greenshields Openfoam user guide (OpenFOAM Foundation, London, 2015).
  • [4]
    R.D. Blevins, Applied fluid dynamics handbook (Van Nostrand Reinhold, New York, 1984).
  • [5]
    D.R. Smith, An Introduction to Continuum Mechanics — after Truesdell and Noll (Springer, Dordrecht, 1993), p. 143.
  • [6]
    R. Laprise, Mont. Weather Rev. 120, 197 (1992).
  • [7]
    P.M. Dixit e U.S. Dixit, Modeling of metal forming and machining processes: by finite element and soft computing methods (Springer-Verlag, London, 2008).
  • [8]
    J. Sokolowski e J.P. Zolesio, Introduction to shape optimization (Springer, Berlin, 1992).
  • [9]
    B.R. Munson, T.H. Okiishi, W.W. Huebsch e A.P. Rothmayer, Fluid mechanics (Wiley, Singapore, 2013).
  • [10]
    A.J. Chorin e J.E. Marsden, A mathematical introduction to fluid mechanics (Springer, New York, 1990).
  • [11]
    J. Serrin, J. Math. Mec. 4, 459 (1959).
  • [12]
    I. Newton Philosophiae Naturalis Principia Mathematica (Cambridge University Press, London, 1972).
  • [13]
    C.L.M.H. Navier, Ann. Chim. Phys 19, 234 (1822).
  • [14]
    G.G. Stokes, Trans. Cambridge Philos. Soc. 8, 287 (1845).
  • [15]
    L. Tartar, An introduction to Navier-Stokes equation and oceanography (Springer-Verlag, Berlin, 2006).
  • [16]
    A.R. Mitchell e D.F. Griffiths, The finite difference method in partial differential equations (Wiley, New York, 1980).
  • [17]
    H.K. Versteeg e W. Malalasekera, An introduction to computational fluid dynamics: the finite volume method (Longman Scientific & Techincal, Essex, 2007).
  • [18]
    S. Patankar Numerical heat transfer and fluid flow (Hemisphere, Washington, 1980).
  • [19]
    J.P. Van Doormaal e G.D. Raithby, Num. Heat Trans. 2, 147 (1984).
  • [20]
    D.S. Jang, R. Jetli e S. Acharya, Num. Heat Trans. 3, 209 (1986).
  • [21]
    http://www.openfoam.com, acessado em 08/08/2018.
    » http://www.openfoam.com
  • [22]
    R.W. Pitz e J.W. Daily, AIAA Journal 11, 1565 (1983).
  • [23]
    T. Von Kármán e L. Edson, The wind and beyond (Little, Brown & Company, Boston, 1967).
  • [24]
    M.J. Bach. The design of the UNIX operating system (Prentice-Hall, Englewood Cliffs, 1986).
  • [25]
    S.R. Bourne, Bell System Tec. J. 6, 1971 (1978).
  • [26]
    E. Siever, S. Figgins, R. Love e A. Robins, Linux in a Nutshell (O'Reilly Media, Sebastopol, 2005).
  • [27]
    J.C. Neves Programação Shell Linux (Brasport, Rio de Janeiro, 2008).
  • [28]
    A. Medeiros e C.F. de Medeiros, Rev. Bras. Ensino Física 2, 77 (2002).
  • [29]
    I.S. Araujo e E.A. Veit, Rev. Bras. Pesq. Educação Ciências 3, (2011).

Datas de Publicação

  • Publicação nesta coleção
    27 Jun 2019
  • Data do Fascículo
    2019

Histórico

  • Recebido
    27 Out 2018
  • Revisado
    11 Abr 2019
  • Aceito
    13 Maio 2019
Sociedade Brasileira de Física Caixa Postal 66328, 05389-970 São Paulo SP - Brazil - São Paulo - SP - Brazil
E-mail: marcio@sbfisica.org.br