August 21, 2015

Linguagem de programação para desenvolvimento CFD

São vários os livros e sites que contém material sobre as metodologias de solução de um problema CFD. Em específico, os métodos numéricos aplicados para a solução de equações diferenciais parciais. Eu considero que isto é uma das mais importantes áreas na formação de um engenheiro que quer aprender bem CFD. Os problemas numéricos que podem ocorrer são muitos e estes devem ser conhecidos pelo profissional, tanto para evitá-los quanto para identificar sua ocorrência em meio a tantos detalhes que um resultado CFD fornece.

Apesar do conhecimento teórico estar disponível em várias fontes, muitas vezes falta a prática em desenvolvimento de códigos computacionais e, com isso, o aprendizado fica afetado. Pensando em conhecer mais essa área, tenho algumas sugestões para vocês.

Linguagem de programação

Temos uma alta oferta de linguagens de programação à disposição e a dúvida se limita a escolher uma delas para iniciar o aprendizado. Para começar a conversar, temos que definir a diferença entre linguagem de baixo (compilada) e alto (interpretada) nível.

Em linguagens de baixo nível, o código fonte precisa ser compilado, traduzindo os comandos implementados no código em linguagem de máquina e construindo um arquivo executável. Vale ressaltar que a linguagem de máquina se refere a um conjunto de instruções pré-definidos a ser executado diretamente pelo processador. Desta forma este processo visa primordialmente a eficiência na execução das instruções implementadas no código. Com a construção do aplicativo executável, os comandos implementados estão diretamente ligados ao hardware e ao processador, facilitando seu controle pelo programador. Dentre as linguagens de baixo nível disponíveis gratuitamente temos as mais conhecidas, C, C++, Basic, Pascal, Fortran etc.

Por sua vez, as linguagens de alto nível são interpretadas ao invés de compiladas. Isto significa que as instruções são executadas por um programa que interpreta os comandos implementados no código-fonte. Portanto, nesta abordagem o código não é transformado (ou traduzido) para linguagem de máquina e, assim, perde eficiência em sua execução. Mesmo assim, o interpretador fornece muito mais flexibilidade e facilidades ao programador, permitindo uma evolução muito maior no desenvolvimento do código. Para cálculos científicos, a linguagem interpretada gratuita com maior capacidade e popularidade é o Python. Em relação aos pacotes computacionais comerciais, temos uma ampla oferta, como MatLab, Maple, Mathematica, MathCad etc.

Bem, voltando ao assunto… Qual linguagem escolher?? Eu recomendo que escolha duas linguagens básicas, sendo uma compilada e outra interpretada. O motivo é bastante simples. Para o aprendizado, use as linguagens interpretadas para maior flexibilidade. Para implementações de códigos e problemas a nível profissional, use linguagem compilada. Em relação à linguagem compilada, minha recomendação seria aprender C (ou C++). Esta linguagem contém os conceitos básicos propagados e difundidos em várias outras linguagens de programação, como o uso de ponteiros por exemplo. Deixo algumas referências para quem quiser começar a aprender C (ou C++):

  • Linguagem de programação C, da Profa. Isabel Massour (clique aqui): um curso completo da linguagem C, mas com fins voltados à aplicações de informática.
  • Curso de C, da Intelectuale (clique aqui): apesar de ser um curso pago, o site tem várias dicas sobre conceitos básicos da linguagem e tutoriais sobre a instalação do compilador.
  • Wikilivros, Programar em C (clique aqui) e Programar em C++ (clique aqui): clique e faça bom uso.
  • Programação descomplicada (clique aqui): video aulas e muito material!!

Sem dúvida alguma, Python é a linguagem interpretada mais indicada para quem quer aprender a realizar cálculos científicos. Já existem diversos códigos implementados em Python para o desenvolvimento científico, como o NumPy e o SciPy, construção de gráficos, Matplotlib, etc. Como referência para o aprendizado de Python, deixo as referências abaixo:

  • Codeacademy (clique aqui): um site para aprendizado de diferentes linguagens de programação (Python, inclusive). A aboradagem é bem didática e foi neste site que eu comecei a aprender Python. Não cheguei a terminar as lições pois, como já tinha conhecimento de outras linguagens, me senti confiante a tentar códigos mais avançados e aplicados à computação científica.
  • Learn Python the hard way (clique aqui): esta referência é um livro virtual com várias lições sobre o uso básico da linguagem. Não é o mais didático, mas tem bastante material.
  • Learn Python (clique aqui): um site bem interessante para quem quer aprender os conceitos da linguagem.
  • Scientific Python Lectures Notes (clique aqui): um curso bem voltado para o desenvolvimento científico, explicando comandos para implementação de operações com NumPy, SciPy e Matplotlib. Vale a pena, mas é preciso algum conhecimento prévio.

A parte ruim das referências para o aprendizado de Python é que os cursos básicos são mais voltados para desenvolvimento Web. Mas servem para o aprendizado básico.

Sem dúvida alguma existem outras fontes de informação e tutoriais sobre estas linguagens. Se você tem alguma sugestão, por favor, deixe nos comentários do post.

Aprendendo desenvolvimento CFD

Invariavelmente, quando falamos em desenvolvimento CFD envolvemos a implementação de modelos fenomenológicos aplicando os métodos numéricos de solução. Em CFD, normalmente são usados os métodos das diferenças finitas ou volumes finitos e, portanto, seria interessante ler e estudar a metodologia.

Uma ótima fonte de informação e material para estudo são os softwares CFD de código aberto, como o OpenFOAM e o Elmer. Você pode abrir os códigos e estudar a implementação (e alterar o que quiser). Mas abrir pela primeira vez os códigos-fonte sem conhecimento de algoritmos e detalhes numéricos pode ser assustador para os iniciantes. Mas pudera, são códigos maduros e de alta capacidade. Por isso, vou focar em dicas para os iniciantes.

De modo geral, vocês podem encontrar bastante material sobre CFD no site CFD Revolutions. Muitas referências, inclusive para iniciantes em códigos CFD.

Contudo, de longe, a melhor dica para desenvolvimento de códigos é seguir o site da Profa. Lorena Barba. Ela montou um curso de CFD com as aulas invertidas. Neste âmbito, ela gravou em vídeo todas as suas aulas, que ficam disponíveis gratuitamente em seu canal no YouTube (veja aqui).

Com esta visão, a Profa. Barba também criou um site chamado CFD Python: 12 steps to Navier-Stokes. O site apresenta os fundamentos da discretização das equações de transporte e a sua implementação em Python para diferentes casos. Ela começa com casos simples 1D e vai aumentando a complexidade até chegar à solução 2D de escoamentos simples (fluido incompressível e newtoniano). Seguindo a mesma linha, ela também criou o site AeroPython para aulas de aerodinâmica. Também vale a visita.

Os códigos em Python ficam disponíveis para estudar e modificar à vontade. Como o site tem comentários sobre a teoria e a implementação, é uma ótima fonte de informação para quem está començando a aprender sobre desenvolvimento CFD.

Espero que as dicas ajudem aos interessados no tema. Qualquer dúvida ou discussão, não hesite em deixar um comentário!

July 6, 2015

Avaliação da qualidade da malha

No post passado, vimos que o fluxo das propriedades conservadas pode ser afetado diretamente pela disposição e forma dos volumes da malha. Isto afeta a acurácia da solução, a taxa de convergência numérica e o tempo computacional necessário. Desta forma, a geração de uma malha de alta qualidade se torna de suma importância na solução de um problema CFD. Mas surge uma dúvida: o que caracteriza a qualidade de uma malha?

Parâmetros de qualidade

Em março de 2011, o site Desktop Engineering publicou a pérola (que tem seu fundamento):

"Uma regra prática em geração de malhas seria que o formato dos elementos seja agradável aos olhos."

De fato, não existe um único parâmetro ou regra que defina a qualidade de uma malha. Vale avaliar diferentes aspectos relacionado à malha, algumas regras de construção (best practices) e muita experiência acumulada.
São diferentes parâmetros que avaliam certas características dos volumes de controle na malha. A grande maioria está associada ao formato geometrico do volume e a conectividade com seus vizinhos. Outros com a densidade (quantidade) de volumes e a transição entre estes em dada região do domínio de solução. Estes parâmetros usalmente são chamados de métrica da malha.
Neste post, gostaria de apresentar e comentar sobre algumas destas métricas:

  • Aspect ratio ou razão de aspecto;
  • Skewness ou assimetria (distorção);
  • Smothness ou suavização;
  • Orthogonality ou ortogonalidade.


Razão de aspecto

A razão de aspecto é a razão entre a maior e a menor aresta do elemento. Idealmente, o valor da razão de aspecto deveria ser 1 para garantir os melhores resultados. Valores muito altos de razão de aspecto podem levar a erros inaceitáveis na aproximação numérica dos fluxos nas faces. Este fator aumenta em soluções tridimensionais.

Razão de aspecto by Shyam2791

Por exemplo, vamos avaliar a razão de aspecto na malha abaixo utilizando o software Pointwise.

Pode-se perceber que os maiores valores de razão de aspecto estão na parte inferior da malha, onde existe maior diferença no tamanho das arestas. Conforme a camada de volumes evolui, a altura dos volumes aumenta e com isso a razão de aspecto diminui. Como recomendação geral, altos valores de razão de aspecto não são desejados, mas o valor ideal (ou máximo aplicável) vai depender do solver numérico utilizado.

Mesmo assim, existem casos onde uma razão de aspecto alta pode ser usada sem medo de ser feliz. Por exemplo, para malhas quad/hexaédricas os volumes podem ser esticados onde o escoamento seja completamente desenvolvido e essencialmente unidimensional.

Skewness

O skewness representa o desvio do vetor que conecta o centro dos volumes vizinhos e o centro da face. Apresentado na figura abaixo, a distância δ representa a distorção ou skewness entre dois volumes.

Esta métrica está diretamente relacionada ao desvio do vetor que liga os centros dos volumes e o vetor normal à face e, portanto, afeta diretamente a acurácia da aproximação numérica dos fluxos. Com isso, altos valores de skewness podem facilmente degradar a solução numérica.

Existem três métodos para calcular a distorção dos volumes em uma malha:

  • Baseado no volume equilátero: pode ser aplicado apenas a triângulos e tetraedros, sendo a metodologia padrão para este tipo de volume;

Cálculo de skewness baseado no volume equilátero:

  • Baseado na normalização de um ângulo equilátero: pode ser aplicado independente da topologia da face e volume, sendo aplicado a qualquer tipo de volume. Para prismas e pirâmides, este é o método padrão;

Cálculo de skewness baseado na normalização do ângulo:

  • Baseado no desvio equiangular: semelhante ao item anterior, tambem pode ser utilizado para mensurar a qualidade da malha para qualquer tipo de volume.

Para as duas metodologias acima, θmax e θmin representam o maior e menor ângulo nas faces do volume. Por sua vez, θe é o ângulo para a face equiangular, ou seja, 60o para o triângulo e 90o para um quadrilátero.

Pelas expressões apresentadas acima, o valor de skewness está entre 0 e 1, sendo 0 é o melhor valor possível enquanto 1 representa a pior situação. Para esta métrica, existem algumas recomendações práticas para uma boa malha. Para qualquer tipo de malha, a solução numérica pode ficar muito comprometida com valores de skewness superiores a 0,85 (quadriláteros, triângulos e hexaédros) ou 0,90 (tetraedros). Contudo, ressalto que isso depende do solver numérico utilizado e, para tal, vale olhar as recomendações do manual.

Smothness

Esta métrica está relacionada com a transição no tamanho dos volumes adjacentes na malha. Esta transição deve ser suave para evitar erros de truncamento nas aproximações numéricas para cálculo dos fluxos sobre as superfícies do volume.

Transição no tamanho de volumes adjacentes na malha, tendo variação suave e brusca


No momento de criação da malha, preocupe-se em diminuir a variacão do tamanho dos volumes adjacentes. Como regra prática, evite variações com razão entre volumes maiores que 20%. Note que isso pode afetar diretamente outras métricas, como a razao de aspecto.

Ortogonalidade

A ortogonalidade se refere ao desvio do ângulo entre o vetor que conecta o centro dos volumes adjacentes e o vetor normal à superfície entre eles.

Ortogonalidade entre os vetores normal à face e que conecta os centros dos volumes


A ocorrência de não-ortogonalidade afeta a acurácia da aproximação numérica dos fluxos, em especial a discretização do operador gradiente. Malhas com alta não ortogonalidade podem sofrer com a difusão numérica de erros na solução do problema.

Existem técnicas iterativas de correção do fluxo devido à não ortogonalidade. Contudo, é muito melhor não precisar fazer uso destas técnicas tendo o cuidado de construir uma malha de boa qualidade.

Considerações finais

De fato, existem muitas outras métricas para avaliar determinados aspectos da malha. Pode ser que alguma destas métricas seja mais importante para o solver numérico que você esteja usando. Desta forma, avalie com cuidado as métricas e vá ajustando a sua malha aos poucos. Como regra geral, existe um botão muito importante nos softwares de geração de malha chamado “Salvar” ou “Save”. Usem sem parcimônia e, inclusive, podem até salvar malhas intermediárias para recuperar alguma etapa da construção de malha.

E aí? Como você usa as métricas para avaliar a qualidade da malha? Deixe seu comentário!

June 28, 2015

Geração de malhas: um grande problema

As equações diferenciais de transporte aplicadas ao escoamento de fluidos, ao serem discretizadas, formam um sistema linear de equações. Contudo, fica a dúvida. O quão acurada é a aproximação das equações diferenciais representada pelo sistema algébrico? A resposta vem do fundamento da metodologia numérica empregada e como o domínio de cálculo é discretizado.

Formulação e discretização do domínio

Para uma dada propriedade conservada em um volume de controle, as equações de tranporte são válidas para qualquer ponto infinitesimal dentro deste volume. Vale notar que a região do contorno afeta o comportamento da propriedade conservada. Para a solução numérica, o domínio passa a ser discretizado sendo, portanto, composto de vários subdomínios.

Discretização de domínio no espaço e tempo

Este processo é chamado de geração da malha computacional. A forma geométrica dos elementos de malha (subdomínios) afetam diretamente quão bem o domínio está representado e a acurácia da aproximação numérica da discretizacão das equações a serem resolvidas no espaço.

Entendendo a formulação

Para descrever o processo, vamos considerar que queremos resolver o problema de escoamento bidimensional com expansão abrupta. O domínio geométrico é bastante simples.

Canal com expansão abrupta

Para simplificar a formulação, vamos considerar a conservação de uma propriedade genérica transportada pelos mecanismos de advecção e difusão. Com isso, a equação de transporte deve ter a forma como colocada abaixo:

A discretização do domínio geométrico pode ser bastante simples, com elementos quadriláteros por exemplo.

Utilizando a técnica dos volumes finitos, a equação diferencial passa a ser válida para cada elemento discreto. Por sua vez, os operadores diferenciais (divergente e laplaciano/gradiente) passam a ser obtidos pelo fluxo de propriedade que atravessa as superfícies/faces dos elementos. Com isso, a equação para um elemento discreto genérico P, composto de faces f, se torna:

Na metodologia de volumes finitos, é usual (mas não obrigatório) que as variáveis estejam alocadas no centro dos volumes. Assim, os fluxos nas faces são estimados através das variáveis nos centros dos volumes. Note que estes fluxos são normais às faces dos volumes e, portanto, o ideal é que a aproximação numérica mantenha esta característica.

Os problemas na aproximação numérica

Dependendo do formato dos elementos de malha, a aproximação dos fluxos normais às faces fica comprometida. Para a malha gerada no canal com expansão abrupta, podemos organizar o equacionamento para um dado volume P de acordo com seus volumes vizinhos.

Por exemplo, para equacionar os fluxos que atravessam as faces do volume P, utiliza-se uma aproximação numérica envolvendo seus vizinhos E, W, N, S. Desta forma, a equação para o volume P usualmente envolve os valores dos vizinhos.
Mas a principal questão envolve a forma de representar o fluxo normal à face e o formato dos elementos da malha. O ideal seria que o vetor que liga os centros dos volumes fosse paralelo ao vetor normal à face. Desta forma, uma aproximação numérica usando o valor da variável no centro dos volumes já estaria respeitando a direção do fluxo normal à face. Isso facilita a vida, não?
Caso não o seja, a aproximação numérica precisaria ser corrigida ou adaptada para considerar o desvio do fluxo normal à face. São diferentes formas de correção do fluxo e irei discutir isso em futuros posts.

A ajuda da malha na representação do fluxo de propriedade

Vale notar que o formato geométrico dos volumes afeta diretamente a conectividade entre seus centros. Deste modo, afeta como será o cálculo da aproximação numérica. Este é o principal motivo dos profissionais de CFD buscarem a “malha perfeita” para seus problemas. E este é um dos tópicos que pretendo focar daqui em diante.
Espero que o texto tenha esclarecido algumas dúvidas. Se ainda sobrou algo, fique à vontade para comentar no post.

Um abraço e até a próxima!

June 26, 2015

Reativando o blog

Depois de muito, mas muito tempo ausente, decidi reativar as postagens sobre Fluidodinâmica Computacional, fenômenos de transporte e assuntos correlatos aqui no Notas em CFD. A decisão não foi difícil, mas complicada pelas atividades do dia a dia.

Atividades paralelas

De fato, o principal motivo pela queda na publicação de posts foram as atividades dos autores. Durante o período de atividades do Notas em CFD, todos defenderam as suas teses e hoje já são felizes detentores de títulos de doutorado. Mas suas atividades não pararam por aí... Por exemplo, o João Felipe Mitre hoje é professor na Universidade Federal Fluminense e em plena forma de suas atividades didáticas. O mesmo destino ocorreu com a Livia Jatobá, que hoje é professora na Universidade Estadual do Rio de Janeiro. Por sua vez, o Fábio Santos é pesquisador associado ao Instituto Nacional de Matemática Pura e Aplicada, IMPA. Por fim, o Jovani se encontra como pesquisador contratado em projetos de pesquisa na UFRJ e mantém atividades como sócio na empresa de consultoria em CFD, Wikki Brasil.

E você, Luiz F.?

Bem, eu já tinha assumido o cargo de professor na Escola de Química da Universidade Federal do Rio de Janeiro e tentei manter as postagens no Notas. Mas as atividades de professor novo são, em um bom carioquês, sinistras. Desde 2009, eu preparei vários cursos de graduação e pós-graduação, orientei projetos finais, dissertações de mestrado e teses de doutorado. Essa é a parte divertida, mas tem toda a parcela burocrática entranhada no sistema. E isso me toma um tempo absurdo. Em especial quando assumi o cargo de chefe do departamento. Aí o tempo livre chegou quase à escala negativa. A hora de ir ao banheiro tinha que ser agendada com uma semana de antecedência…

Reativação do Notas

Depois da correria do início de carreira, muitos cursos já estão preparados, orientações encaminhadas (ou não…) e os macetes sobre a burocracia e suas regras aprendidas. Pensei nas atividades que eu considerava importantes e prioritárias na função de docente e educador em engenharia. E me lembrei do carinho que sempre tive pelo Notas em CFD. Realmente gostava de escrever os posts, ter o retorno dos leitores e poder contribuir com a propagação do uso de CFD, sua teoria e ferramentas. Portanto, aqui estou de volta.
Espero que gostem dos posts (já tenho alguns planejados) e das novidades que devo implementar aqui… Curioso? Bem, atingi meu objetivo.
Até a próxima semana!

September 3, 2014

Mais informações sobre o livro "The OpenFOAM Technology Primer"

Olá pessoal,

o aguardado livro "The OpenFOAM Technology Primer" (dos autores Tomislav Maric, Jens Höpken e Kyle Mooney) já esta disponível para pré-venda então resolvi escrever este post para esclarecer alguns pontos para vocês.



Por enquanto, os autores informam que o livro só estará disponível através do site deles. Existem um processo lento para tornar viável a venda através do Amazon (e outros sites como o barns&nobel) e, com o objetivo de evitar mais atrasos, os autores optaram por iniciar a venda do livro através do próprio site deles, o sourceflux.de.

A data prevista para o lançamento é dia 30 de setembro e se você quiser garantir o seu volume é só fazer o pedido pelo site. Para quem esta na dúvida se vale a pena comprar o livro (que tem cerca de 400 páginas), pode espiar o índice aqui! Além disso, pela qualidade dos post do blog dos autores, imagino que o material do livro seja bom!

Eu já fiz a minha pré-compra e o processo é bastante simples. Como o livro esta na fase de pré-venda, não é necessário entrar com dados de pagamento ainda. A ideia da pré-venda é saber quantos livros serão impressos nessa primeira edição.

Quando a fase de pré-venda encerrar, cada um que fez a pré-compra receberá um email com as opções de pagamento. Os autores informaram que o PayPal é uma das formas de pagamento disponível e eles estão trabalhando para viabilizar outras.

Quem ainda tem dúvidas pode ir lá no FAQ do site. Outro ponto é o que livro não será vendido no formato eletrônico.

É isso pessoal! Espero que esse post ajude a tirar algumas dúvidas!

Até a próxima foamers!

And keep foaming!


PS: Many thank to Jens, that promptly answered my questions! :-)

August 7, 2014

Novidades sobre o livro do OpenFOAM® - The OpenFOAM Technology Primer

Atenção pessoal, os autores do livro "The OpenFOAM Technology Primer"  (Tomislav Maric, Jens Höpken e Kyle Mooney) fizeram um anúncio importante essa semana.

Existe um outro livro, chamado "Getting Started with OpenFOAM® Technology" (dos mesmos autores), que aparece disponível para pré-compra no site da Amazon. Entretanto, eles não recomendam a compra desse livro e justificam que esta é uma versão obsoleta e com um contrato antigo com uma editora (que pela nota deles não deu muito certo). Eles afirmam que em breve a versão correta estará disponível!

Leiam a nota dos autores na íntegra aqui! E a nota no CFD-oline aqui.

Bom, aguardamos ansiosos o livro!

Até o próximo post!

ps: Eu comprei (e depois cancelei) a versão errada! rs

July 3, 2014

Novidades do OpenFOAM® Workshop em Zagreb

A 9a. edição do OpenFOAM® Workshop aconteceu semana passada na Universidade de Zagreb, na Croácia, e eu tive a oportunidade de participar pela primeira vez desse encontro que reuniu foamers de todas as partes.

Antes de contar as novidades, a primeira informação que o leitor precisa saber é que existem duas grandes distribuições do OpenFOAM®: a chamada OpenFOAM® propriamente dita que é distribuída pela OpenCFD Ltd. (e "dona" da marca, por isso a necessidade do uso do símbolo ®) e a foam-extend, que consiste em projeto com diversos colaboradores e hoje esse projeto é administrado por Bernhard Gschaider, Håkan Nilsson, Henrik Rusche, Hrvoje Jasak e Martin Beaudoin. O OpenFOAM® Workshop foi organizado pelos principais desenvolvedores/administradores da distribuição foam-extend, que possui um projeto no Source Forge sob nome OpenFOAM® extensions.

O OFW9 consistiu em 4 dias cujas atividades foram divididas entre dois dias de apresentação técnicas de diferentes trabalhos envolvendo o OpenFOAM®, um dia de seminários de treinamento e um dia de painéis de discussão divididos por áreas de interesse, chamado Special Interest Groups. A programação completa pode ser consultada aqui.

Começo destacando as principais novidades anunciadas:

1. Será lançado em breve o primeiro livro sobre OpenFOAM®! O título do livro é "The OpenFOAM® Technology Primer" e essa é uma excelente notícia para todos os foamers. Os responsáveis por essa iniciativa são Tomislav Maric, Jens Höpken e Kyle Mooney. É possível encontrar informações sobre os autores e sobre o livro aqui e o mesmo já aparece em uma busca no site da Amazon (o livro que aparece na busca do Amazon "Getting Started with OpenFOAM® Technology" não é o correto, esta é uma versão obsoleta e em breve a versão correta "The OpenFOAM Technology Primer" estará disponível!). Agora é ficar de olho e adquirir essa primeira edição do livro sobre o OpenFOAM®!

2. Foi lançada a nova versão do OpenFOAM-extend, agora chamado foam-extend-3.1. Esse é um assunto que pode ser discutido em mais detalhes em um post futuro, com dicas de instalação, novos recursos e como contribuir para o projeto mas, por enquanto, o leitor pode encontrar mais detalhes da nova versão aqui. Destaco alguma novidades:
- solver compressível do tipo "density-based": dbnsFoam e dbnsTurbFoam
- nova estrutura de código que permite uma implementação da solução acoplada de múltiplas equações completamente implícita.
- diversos tutoriais novos.

3. Foi anunciado também a criação do foam-extend-bazaar. O projeto foi criado com o objetivo de facilitar e promover o compartilhamento de códigos. Assim, a versão bazaar pode ser vista como uma primeira etapa, onde códigos que estão em desenvolvimento pela comunidade podem ser submetidos para esse projeto e com o tempo migrar para a versão principal. Mais informações sobre o foam-extend-bazaar podem ser encontradas no projeto do Sorce Forge, em "How to contribute" e no site OFwiki. Alguns exemplos de recursos que estão disponíveis nessa versão são:
- cfMesh: um utilitário para geração de malha desenvolvido pela Create Fields.
- waves2Foam: ferramenta para gerar/absorver ondas de água para modelo de superfície livre.
- openFuelCell: desenvolvido para aplicações envolvendo célula a combustível (mais informações aqui também)

4. Durante a reunião do grupo de discussão do projeto foam-extend (o Special Interest Group do foam-extend) foram discutidos diversos pontos relacionados ao projeto e eu destaco aqui os seguintes:
- Call for cases: os desenvolvedores e administradores do projeto convocam os foamers a compartilhar casos com exemplos de verificação e validação dos solvers distribuídos na foam-extend.
- Foi sugerida a criação de um veículo de publicação de acesso livre, indexado e com avaliação das publicações (peer review) para os trabalhos com OpenFOAM®.

5. O OFW9 teve uma série de apresentações técnicas interessantes. Dentre essas, destaco aquelas que me chamaram mais atenção:
- Discretisation best practice (Prof. Hrvoje Jasak): dicas para aprender a escolher esquemas interpolação. A apresentação do OFW9 ainda não esta online mas a mesma apresentação do OFW8 pode ser obtida aqui.
- biomassGasificationFoam (Kamil Kwiatkowski): um solver desenvolvido para a gaseificação de biomassa. A apresentação pode ser encontrada aqui e o site do projeto é este.
- Tutoriais de turbo-máquinas (Prof. H akan Nilsson). A apresentação pode ser obtida aqui.

Assim, o balanço do OFW9 foi bastante positivo. O evento contou com a participação tanto de principiantes quanto de desenvolvedores avançados. Não existiu restrição e todos tiveram espaço durante o workshop. A melhor parte foi conversar com os diferentes foamers e achar pontos em comum e formas de colaboração. O próximo workshop será em Ann Arbor, Michingan, USA e espero poder participar desse evento anualmente.

Até o próximo post!



A esquerda: comissão organizadora do OFW9 da Universidade de Zagreb (por Eric Paterson). A direita: encerramento do OFW9 na entrada da Universidade de Zagreb (por Tessa Uroić).

March 31, 2013

Cursos de CFD e OpenFOAM



Aqui pelo e-mail do Notas em CFD, eu sempre recebo dúvidas, comentários e discussões sobre o uso do OpenFOAM e suas capacidades. Uma das maiores solicitações são relacionados a cursos de CFD e OpenFOAM no Brasil. Pois bem, agora vocês podem contar com cursos regulares sobre OpenFOAM ministrado pela Wikki Brasil.

A Wikki Brasil é uma empresa de consultoria e treinamento em engenharia, com foco em simulação e desenvolvimento CFD utilizando, primordialmente, o OpenFOAM. O interessante é que a empresa traz a experiência do Prof. Jasak, da Wikki Europa, para o Brasil e também é diretamente ligada ao Laboratório de Termofluidodinâmica da COPPE/UFRJ (ao qual faço parte). Com isso, a Wikki Brasil pode absorver muito do conhecimento acadêmico e aplicado à indústria em âmbito global diretamente para seus clientes. Para conhecer melhor a Wikki Brasil, visite o site:

http://www.wikki.com.br/

Mas vamos ao informativo sobre o curso.

Cursos CFD e OpenFOAM

Nos dias 15 e 16 de abril de 2013, a Wikki Brasil vai oferecer o treinamento Introdutório em CFD e OpenFOAM. Esta é uma boa oportunidade para aqueles que já procuraram o Notas em CFD interessados em cursos sobre o OpenFOAM. Ou você que está lendo o post e quer vencer a barreira inicial no uso do OpenFOAM.

O que posso adiantar sobre o curso:

  • Apresentação da Teoria sobre CFD aplicada ao OpenFOAM e seu uso aplicado a diferentes exemplos/casos.
  • Treinamento "hands-on", onde o participante executa os tutoriais durante o curso.
  • Material disponibilizado ao participante (muito deste material é baseado em curso da Wikki e minhas próprias notas de aula).

Para tirar dúvidas sobre o curso, entre em contato com o pessoal da Wikki Brasil pelo link abaixo que contém detalhes e depoimentos de cursos anteriores (inclusive em que eu fui instrutor - até apareço numa foto do site :) ).

http://wikki.com.br/treinamentos/

Este curso vai ocorrer no Rio de Janeiro. Mas adianto que a Wikki Brasil pode fechar turmas em qualquer lugar do Brasil, considerando um número mínimo de interessados.

Fica a dica. Se quiserem mais informações, também podem perguntar aqui na seção de comentários do Notas em CFD.

Um abraço a todos e até a próxima!

December 9, 2012

Tudo pela nota (e pelo aprendizado)

O título deste post está relacionado com a ferrenha dedicação dos alunos de graduação para com a disciplina eletiva (optativa) Mecânica dos Fluidos II da Escola de Química da UFRJ. Eu estava devendo este post a eles e estou cumprindo minha promessa agora.

Eu ministrei a referida disciplina no primeiro período de 2012 e, apesar de ser optativa na grade curricular, eu costumo cobrar como uma matéria obrigatória (hum… talvez nem tanto). Não são todos os alunos que tem o interesse em encarar tópicos mais avançados de fenômenos de transporte, como reologia de fluidos não-newtonianos, turbulência e modelagem multifásica.

Como os tópicos são avançados para a graduação escolhi não aplicar provas para as notas finais, mas cobrar presença, várias listas de exercícios e um trabalho final utilizando fluidodinâmica computacional para avaliar fenômenos básicos discutidos em aula.

Na lista de exercícios sobre fluidos não newtonianos, eu achei que seria interessante se os alunos pudessem fazer em casa a clássica experiência da avaliação da tensão cisalhante com solução de amido de milho. Mas como eu poderia saber se eles realmente tinham feito o experimento? Ora bolas, eles podem gravar a experiência, dar upload do vídeo no YouTube e me mandam o link! Perfeito, não?

E são os links dos vídeos que compartilho com vocês agora!

Se divertindo...

No final das contas, acredito que os alunos gostaram da experiência e o saldo foi positivo. Alguns alunos apresentaram a teoria completa sobre fluidos não newtonianos, outros fizeram diferentes testes de resitência do fluido (inclusive com uma espingarda de chumbinho!) e alguns outros são simplesmente hilários.

Os links estão colocados na sequência, é só clicar. Alguns alunos dividiram o vídeo em duas partes.
  • Fabriccio Muhlethaler e Felipe Telles: link
  • Guilherme Gonzalez e Yuri de Almeida: link
  • Mariana Gallassi e Thábata Maciel: link
  • Pablo de Almeida Silva: link1 e link2
  • Pedro Nin e Rodrigo Petrone: link
  • Rafael Oliveira: link
  • Ricardo Terra: link
  • Rodolpho C. D. Pereira e João Phelipe M. Barcelos: link
  • Thamiris Magalhães e Ubirajara Gomes: link
  • Victor Brum e Guilherme Landim: link1 e link2
Ao fim, eu só tenho a agradeder aos alunos, que se esforçaram bastante na disciplina, correram atrás e estudaram muito. Pelo que vi, tenho certeza que terão um futuro de sucesso.

Vale notar que todos os alunos concordaram em ceder sua imagem pelo bem da ciência (e da nota final!!).

December 2, 2012

Sistemas Acoplados em CFD

Introdução

Nas aplicações atuais, considerar apenas os efeitos fluidodinâmicos não é mais suficiente para uma boa parte dos casos abordados indústria e academia. Hoje, os problemas abordam situações multifísicas, ou seja, duas ou mais físicas tratadas em uma mesma simulação. E é fácil entender porque chegamos a esse patamar no desenvolvimento e aplicação CFD.

A Fluidodinâmica Computacional, segundo Versteeg e Malalasekera, é a análise de problemas envolvendo o escoamento de fluidos e fenômenos realcionados, como troca de calor, massa, reações químicas, turbulência, entre outros, por meio de simulação computacional. A modelagem de problemas fluidodinâmicos simples resolvidas utilizando técnicas numéricas consagradas na literatura já possuem confiança e acurácia comprovada. Inclusive com comparação da solução numérica a dados experimentais.

Hum… Então quer dizer que chegamos a um patamar já conhecido no desenvolvimento tecnológico? Não tem problema! É só complicar mais a vida! :p

Um passo a mais

Observando bem, todos os fenômenos citados anteriormente são um subconjunto da Mecânica do Contínuo que abrangem tópicos como:
  • Análise tensorial em estruturas sólidas.
  • Eletromagnetismo, incluindo fenômenos de alta e baixa frequência.
  • Previsão do tempo, com modelos de circulação atmosférica e oceânica.
  • Dinâmica galática e crescimento de estrelas (Oow! Sinistra essa!).
  • Sistemas combinados de calor e massa, com ou sem associação a escoamento de fluidos.
E o que todos estes fenômenos possuem em comum? O tratamento matemático pela mecânica do contínuo, representado por Equações Diferenciais Parciais e deduzidos com base na lei de conservação de propriedade (massa, energia, espécie química, momento linear, momento angular, etc). Ora bolas, e se os métodos numéricos existentes para solução de equações diferenciais parciais são capazes de resolver de modo satisfatório o problema, isso significa que podemos simular todas as físicas utilizando a mesma metodologia.

O que cabe a nós agora é interpretar como as diferentes físicas estão relacionadas entre si e como isso fica nas equações de transporte de cada física.

As equações da fluidodinâmica

Chegou a hora da verdade. Precisamos voltar para a base teórica para entender como podemos acoplar os efeitos mutifísica nas equações de fluidodinâmica. A fluidodinâmica do escoamento é regida por duas equações de conservação: massa e momento linear (quantidade de movimento ou momentum).

A conservação de massa é necessária em qualquer problema de fluidodinâmica e relaciona a taxa de variação de massa do sistema com o divergente do momento linear.

Por sua vez, a conservação de quantidade de movimento parte da segunda Lei de Newton, que relaciona a taxa de variação do momento linear com o somatório das forças aplicadas ao fluido. Isto nada mais é que um balanço de forças.

Pode-se desenvolver a expressão acima tal que se obtenha a equação diferencial de conservação de quantidade de movimento.

Portanto, percebe-se que o escoamento de fluidos é baseado em um balanço de forças com dependência direta das propriedades físicas do fluido.

Acoplando as físicas

Sem dúvida, os mecanismos de acoplamento dependem das físicas associadas ao problema e como estas afetam o escoamento e vice-versa. Podemos entender isto através de um exemplo de acoplamento.
  • Interação Fluido-Estrutura (FSI): movimento e/ou deformação devido escoamento sobre a estrutura.
  • Acoplamento Térmico: propriedades físicas dependem de efeitos térmicos (favorecendo convecção natural, por exemplo).
Através da física do problema, conseguimos entender de forma geral como as físicas estão associadas, mas podemos ver todos os efeitos? Para ajudar neste ponto, vale montar um diagrama de blocos para entender melhor o problema.

Efeitos FSI

No diagrama, é possível verificar que o fluido aplica uma força sobre a estrutura. Dependendo da magnitude desta força, as tensões aplicadas sobre a estrutura são alteradas e esta pode vir a deformar.

O posicionamento da interface sólido-fluido é alterado quando ocorre a deformação da estrutura e, assim, o escoamento do fluido também é afetado. Ou seja, os efeitos associados à camada limite, como foça de arrasto, formação de esteira, etc são alterados e influenciam o perfil de velocidade e pressão.

Em um problema CFD, o problema é bastante complexo pois, já que ocorre a movimentação da estrutura sólida, o uso de malha com domínio móvel ou malha adaptativa se torna necessário.

Efeitos térmicos

Pela característica intrínseca de transporte convectivo, o escoamento efeta diretamente a troca de calor no sistema. Ou seja, a energia é transportada pelo fluido, de acordo com sua velocidade de escoamento. Por sua vez, a temperatura do sistema pode alterar as propriedades físicas do escoamento, como densidade e viscosidade.

Os efeitos térmicos sobre a estrutura sólida não são tão claros para quem está acostumado apenas com fluidodinâmica. Em uma estrutura termicamente aquecida, as propriedades do sólido são alteradas e o campo de tensões se modifica. Portanto, isto afeta como e/ou quanto a estrutura suporta o escoamento incidente.

O caminho de volta é interessante. Durante a deformação do sólido, a energia térmica é dissipada no meio. Como? Podemos fazer um experimento simples para comprovar a teoria. Pegue um talher de metal com certa flexibilidade (já sem uso, por favor). Se você ficar torcendo ou deformando o metal por certo tempo, irá perceber que este vai ficar quente. Pois bem, é a estrutura sólida dissipando energia devido a deformação causada, neste caso não pelo fluido, mas por você mesmo.

Acoplando as equações

Tudo se trata de condições de contorno ou termos de transporte presentes nas equações de conservação. Cada domínio, sólido e fluido, deve ter suas equações que regem a física associada e as condições de contorno destas devem passar a informação entre os domínios.

Para o exemplo que consideramos, é fácil ver que se podemos calcular a força que o fluido exerce sobre um obstáculo, também podemos informar ao mesmo obstáculo esta força. Assim, a equação de quantidade de movimento calcula esta força, que é alimentada à equação de tensão da estrutura como condição de contorno. A movimentação da estrutura é então obtida, alterando a malha e, portanto, o domínio geométrico por onde o fluido escoa. Pronto, acoplamos as físicas.

E a troca de calor? Existe um termo na equação da energia que muitas vezes desprezamos. Este é chamado de dissipação térmica, que transforma de forma irreversível efeitos de atrito/tensão em energia térmica.

Por fim...

Por fim, a forma de acoplamento entre as diferentes físicas deve estar presente na sua modelagem, como termo de superfície (para acoplamento como condição de contorno) ou mesmo volumétrico (afetando os diferentes domínios como um todo). O que cabe a você é organizar as ideias e montar como as físicas estão associadas.

Ok, então! Espero que o post seja útil para você. Se gostou (ou não), deixe seu comentário no blog.

Um abraço e até a próxima!

October 7, 2012

Anúncio: NUMAP-FOAM-Br 2013


Numerical Modelling of Coupled Problems in Applied Physics
with OpenFOAM® (NUMAP-FOAM-Br)

Escola de Verão 2013 na Universidade Federal do Rio de Janeiro
Escola de Química e Programa de Engenharia da COPPE
Rio de Janeiro, RJ; 6 a 20 de Março de 2013


Convecção térmica mista em canal aletado.
Com o sucesso da primeira edição, a Escola de Química e o Programa de Engenharia Química da COPPE anunciam a segunda edição da Escola de Verão Brasileira em Problemas Numéricos Aplicados usando OpenFOAM® (NUMAP-FOAM-Br) para alunos de Pós-Graduação e jovens pesquisadores a acontecer no Rio de Janeiro, Brasil. Este evento é baseado na Summer School (NUMAP-FOAM) que ocorre anualmente em Zagreb, Croácia, e organizada pelo Prof. Hrvoje Jasak, desenvolvedor do OpenFOAM®. Em sua versão latina, o NUMAP-FOAM-Br está sendo organizado pelos integrantes do Laboratório de Termofluidodinâmica (LTFD) da COPPE/UFRJ e supervisionado pelos Profs. Luiz Fernando Silva (EQ/UFRJ) e Paulo Lage (PEQ/COPPE/UFRJ).


Descrição do evento
Simulação de sistema de mistura (MRF).
A Escola de Verão tem o intuito de fornecer orientação e treinamento no uso e programação em OpenFOAM® para um pequeno grupo de estudantes e pesquisadores envolvidos em trabalhos de pesquisa e desenvolvimento. A ideia da Escola de Verão é expandir os conhecimentos em modelagem de problemas avançados, métodos numéricos e programação, usando o OpenFOAM® como ferramenta de trabalho. A aplicação do OpenFOAM® aos projetos de pesquisa dos participantes terá orientação direta e trabalho prático no código.
Aulas e palestras em tópicos selecionados, como métodos numéricos, programação e modelagem, serão apresentadas de acordo com a necessidade dos alunos. Note que, para garantir a qualidade do trabalho e da supervisão, o número de vagas será limitado.

Local e data
A Escola de Verão ocorrerá em 11 dias de trabalho sob supervisão dos Profs. Luiz Fernando Silva e Paulo Lage e com auxílio de especialistas locais em OpenFOAM®, incluindo alunos do LTFD e profissionais da Wikki Brasil. Tutoriais, palestras e trabalhos em grupo vão acontecer de 6 a 20 de Março de 2013 na sala de aula do Laboratório de Termofluidodinâmica do Programa de Engenharia da COPPE, Universidade Federal do Rio de Janeiro, Campus Ilha do Fundão.

Como participar: NUMAP-FOAM-Br 2013
Resposta de sistemas de controle PID para temperatura
implementados como condição de contorno na entrada
de uma sala com fonte de calor.
 Para participar, pedimos que escrevam em uma (1) página a descrição do projeto que querem trabalhar durante o NUMAP-FOAM-Br, com os problemas atuais e os objetivos a serem atingidos na Escola de Verão. A participação é aberta a qualquer aluno de pós-graduação e graduação inscritos em universidades assim como pesquisadores pós-doc. Este evento não está restrito a universidades brasileiras e encoraja que alunos de universidades fora do Brasil também participem. Neste caso, a comunicação será em inglês.

Note que este NÃO é um curso introdutório de OpenFOAM®. Conhecimento prévio do projeto e do software são pré-requisitos para participação no evento.

O prazo para submissão dos projetos é 25 de Novembro de 2012. Os candidatos selecionados serão informados até o dia 15 de Dezembro de 2012.

Acomodação e custos
Participantes da Escola de Verão devem se planejar para cobrir suas despesas de viagem e acomodação. O ideal é que os participantes tragam laptops para desenvolvimento de seus projetos. Será cobrada uma taxa de registro (após seleção do projeto) cujo valor por participante está colocado na sequência:
  • ·      Alunos de doutorado: R$ 800,00
  • ·      Alunos de mestrado e graduação: R$ 600,00
  • ·      Pesquisadores/pós-doc: R$ 1600,00

Note que este evento não é financiado por nenhuma empresa ou agência pública de fomento.

Contato
Para maiores detalhes e submissão da proposta de projetos, entre em contato pelo e-mail numapbr@notasemcfd.com. Você também pode tirar dúvidas pelos comentários deste blog.

* Todas as figuras colocadas neste anúncio foram geradas de trabalhos desenvolvidos ou em desenvolvimento no LTFD.