método de volume finito: malha não estruturada vs adaptação octree + corte celular


12

Estou trabalhando com a biblioteca OpenFOAM C ++ Computational Continuum Mechanics (ela pode lidar com interação fluido-sólido, fluxos MHD ...) que usa malhas não estruturadas arbitrárias. Isso foi motivado pela idéia de usar a vantagem da geração rápida (geralmente automática) de malhas não estruturadas para simular problemas em geometrias complexas.

No entanto, recentemente encontrei outra abordagem: malhas cartesianas adaptáveis ​​octree com "corte" de células, onde o refinamento agressivo da malha é usado para descrever uma geometria complexa.

Do ponto de vista numérico, as malhas cartesianas são muito mais precisas, então minha pergunta é: alguém tem experiência em usar / implementar uma ou ambas as abordagens? Como eles se comparam?

Estou desenvolvendo códigos para o fluxo de fluido em duas fases e notei, por exemplo, que a reconstrução dos gradientes de campo pode ser facilmente mais precisa nas malhas cartesianas, enquanto a malha não estruturada requer regressão linear para mudanças bruscas no campo ...


Outra alternativa: métodos de células cortadas cartesianas. Existe uma grande literatura; este documento pode ser um bom ponto de partida: dx.doi.org/10.1016/S0378-4754(02)00107-6 .
David Ketcheson

Respostas:


5

Eu acho que todas as bibliotecas mais modernas do FEM (por exemplo, deal.II, libmesh, ...) usam o esquema baseado em octree (ou, para ser mais preciso: oct-florestas, com uma árvore começando de cada célula de uma malha grossa não estruturada ) Há muitas vantagens nisso, principalmente porque você conhece a hierarquia das células de malha. Isso implica que você pode facilmente executar multigrid geométrico grosseiro, etc., o que é incrivelmente difícil se você começar com apenas uma malha não estruturada. Além disso, o particionamento se torna um problema quase trivial. A desvantagem da abordagem é que, se você possui uma geometria complicada, anteriormente você só precisava descrevê-la no gerador de malha, enquanto agora também precisa descrevê-la no código FEM, porque precisa da geometria ao refinar uma célula localizada no fronteira.

Sendo tudo igual, acho que a abordagem baseada em octree é muito mais flexível e útil do que usar uma malha não estruturada gigantesca.


Não quero dizer que usaria uma grande malha não estruturada. O refinamento é baseado em octree, mas há uma diferença de precisão se você comparar uma malha refinada octree cartesiana e uma malha refinada octree não estruturada. Malhas não estruturadas foram impulsionadas pela indústria na esperança de geração automática (pelo menos rápida) de malhas para geometrias complexas, mas agora, o corte de células + malhas cartesianas também parecem fazer o trabalho muito rápido, com precisão numérica adicional fornecida pela natureza estruturada da malha ...
tmaric

Eu pensei que já tinha aceitado esta resposta .. :) Desculpe pelo atraso.
tmaric 7/07

4

O refinamento dinâmico da malha adaptativa a é muito eficaz para captar recursos isotrópicos da solução. Muitas implementações de AMR impõem um critério de refinamento como para refinamento de octree. Às vezes, isso leva a uma região refinada maior do que o necessário, mas geralmente é necessária alguma classificação geométrica de qualquer maneira, e diferentes implementações de AMR podem manter o refinamento localizado dentro de um fator constante modesto da melhor malha refinada não estruturada.2 : 1h2:1

Onde AMR tem mais problemas é capturar recursos anisotrópicos , porque -AMR não tem como rotacionar as coordenadas para se adaptar a esses recursos anisotrópicos. Por exemplo, o alto número de Reynolds CFD possui camadas limite extremamente finas e malhas com proporção de ou superior são usadas em muitas simulações industriais. Capturar limites tão finos com uma grade estruturada desalinhada é bastante ineficiente. Existem maneiras de aninhar grades rotacionadas localmente, mas esses métodos são bastante técnicos e estão fora do escopo dos métodos de refinamento de octree ou de célula de corte. Observe que os métodos de malha móvel (freqüentemente chamados de reffinement, o livro recente de Huang e Russellh 10 6 rhh106r é um bom recurso) pode ser usado para alinhar aos recursos anisotrópicos em movimento.

Observe também que a discretização implícita no tempo e o método das linhas são mais simples e têm propriedades melhores para métodos nos quais o número de DOFs e a conectividade da malha não estão mudando. Além disso, desde que a física e a discretização espacial sejam continuamente diferenciáveis, haverá um acessório contínuo (útil para análise de sensibilidade, otimização, quantificação de incertezas, etc.).

A melhor opção é altamente dependente do problema, mas para problemas de CFD com camadas delimitadoras finas, especialmente ao usar resolução de parede em vez de modelagem de parede, malhas conformes não estruturadas ou estruturadas em blocos são boas escolhas.


2

As grades estruturadas permitem muitas suposições que podem ser exploradas para o desempenho, mas geralmente são mais difíceis de implementar e menos eficientes do que as grades não estruturadas na presença de limites complexos. Grades não estruturadas aproximarão eficientemente limites complexos sem programação adicional, mas muito poucas suposições podem ser feitas sobre a estrutura da matriz. Como sempre, não existe uma abordagem melhor que não seja a mais adequada às suas necessidades. O primeiro é frequentemente empregado no oceano, clima, modelagem cosmo / geográfica, o segundo em problemas de engenharia.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.