Estou interessado em implementar uma malha móvel para um problema de difusão de advecção. Os métodos de malha móvel adaptativa fornecem um bom exemplo de como fazer isso para a equação de Burger em 1D usando diferença finita. Alguém seria capaz de oferecer um exemplo elaborado para resolver a equação de difusão de advecção 1D usando diferença finita com uma malha móvel?
Por exemplo, na forma conservadora, a equação é,
onde é a velocidade (uma função do espaço). As condições iniciais u ( 0 , x ) podem especificar (por exemplo) uma espécie de fluxo que se move da esquerda para a direita (por exemplo, ao longo de um tubo), onde a condição inicial tem um gradiente acentuado.
Como o problema de equidistribuição da malha móvel deve ser resolvido (possivelmente com o algoritmo de De Boor ou outra abordagem)? Desejo implementar isso pessoalmente em Python, para que sua resposta possa ser facilmente traduzida em código, tanto melhor!
Pergunta antiga antes da recompensa
- Quais são as abordagens básicas para gerar uma malha adaptativa com base nas propriedades do sistema? Devo usar o fluxo como uma medida de onde os gradientes são grandes?
- Porque procuro uma solução iterativa (varredura de tempo). Eu imagino que é importante interpolar da grade antiga para a nova grade, qual é a abordagem usual?
- Eu ficaria realmente interessado em ver um exemplo trabalhado para um problema simples (como a equação de advecção).
Um pouco de plano de fundo sobre as especificidades do problema. Estou simulando um sistema de equações 1D acoplado,
O conjunto de equações descreve um problema de difusão de advecção de duas espécies em que a terceira equação se une às outras duas. A solução muda rapidamente perto do centro da minha grade, veja abaixo (estes são exemplos, não cálculos),
Observe que, na escala de log no gráfico inferior, as soluções para e v variam em ordens de magnitude. No gráfico superior ( w ) há uma descontinuidade no centro. Estou resolvendo o sistema acima com um upwind adaptável, em que a discretização pode se adaptar do central ao upwind dominado, dependendo do valor local do número de Péclet . Estou resolvendo o sistema implicitamente com a integração trapezoidal no tempo ("Crank-Nicolson").
Estou interessado em aplicar uma grade adaptável a esse problema. Eu acho que é importante porque, caso contrário, os detalhes do parâmetro shape peak ( ) poderão ser perdidos. Diferentemente desta questão , eu gostaria de aplicar um algoritmo, espero que simplesmente, para geração de malha.
Como se trata de um problema de difusão de advecção, pode-se imaginar um esquema de malha adaptativa baseado nos fluxos de e v nos limites das células. Como isso indicaria onde o valor está mudando rapidamente. O pico de w também corresponde a onde o fluxo é maior.
Respostas:
Uma grade adaptativa é uma rede de grade que agrupa automaticamente pontos de grade em regiões com gradientes de campo de alto fluxo; ele usa a solução das propriedades do campo de fluxo para localizar os pontos da grade no plano físico. A grade adaptativa evolui em etapas de tempo em conjunto com uma solução dependente do tempo das equações de campo de fluxo governantes, que calcula as variáveis do campo de fluxo em etapas de tempo. Durante o curso da solução, os pontos da grade no plano físico se movem de maneira a se "adaptar" a regiões com grandes gradientes de campo de fluxo. Portanto, os pontos reais da grade no plano físico estão constantemente em movimento durante a solução do campo de fluxo e ficam estacionários apenas quando a solução de fluxo se aproxima de um estado estacionário.
A adaptação da grade é usada para problemas constantes e instáveis. No caso de problemas de fluxo constante, a grade é adaptada após um número predeterminado de iterações e a adaptação da grade para no momento em que a solução é convergida. No caso de soluções precisas no tempo, o movimento e o refinamento do ponto da grade são realizados em conjunto com a solução precisa no tempo do problema físico. Isso requer tempo de acoplamento preciso dos PDEs do problema físico e daqueles que descrevem o movimento ou a adaptação da grade.
Para os cálculos de configurações mais recentes, a dependência das diretrizes de melhores práticas para geração de malha e experiência anterior deixa a porta aberta para grandes quantidades de erro numérico. Os métodos de adaptação à grade podem produzir melhorias substanciais na qualidade da solução e prometem melhores resultados, porque não existem limitações que definam o limite de resolução da grade que pode ser atingido.
Em vez de fazer alterações topológicas locais na malha e sua conectividade, os métodos r-adaptativos fazem alterações locais na resolução movendo os locais de um número total fixo de pontos de malha.
Método muito popular de adaptação de grade na abordagem por elementos finitos, em vez de volume finito ou método de elementos finitos. Reduz o erro na solução enriquecendo o polinômio de funções de interpolação com a mesma ordem de elementos geométricos. Aqui não há nova malha, geometria a ser calculada e outra vantagem desse método é que ele pode aproximar melhor limites irregulares ou curvos com menos sensibilidade para proporção e inclinação. Por causa disso, é muito famoso em aplicações estruturais.
Muito bem sucedida!
[1] Fidkowski Krzysztof J. e Darmofal David L. Revisão da estimativa de erro com base em saída e adaptação de malha na dinâmica computacional de fluidos. AIAA Journal, 49: 673–694, 2011.
[2] John Tannehill Richard Pletcher e Dale Anderson. Mecânica computacional de fluidos e transferência de calor. Taylor e Francis, 1997.
[3] JD Jr. Anderson. Dianamics computational do flidid: O básico com aplicações.McGraw Hill Inc., 1995.
[4] Roy Christopher J. Estratégias para impulsionar a adaptação da malha no cfd. Na 47ª Reunião de Ciências Aeroespaciais da AIAA, incluindo o Fórum New Horizons e a Exposição Aeroespacial, 2009.
[5] McRae Scott D. Algoritmos e problemas de adaptação à grade de refinamento. Métodos computacionais em mecânica aplicada e engenharia, 189: 1161-1182, 2000.
[6] Ivanenko Sergey A. Azarenok Boris N. e Tang Tao. Método de redistribuição de malha adaptativa com base no esquema godunovs. Comm. matemática. sci. 1: 152-179.
[7] Ahmadi Majid e Ghaly Wahid S. Simulação de fluxo inviscível em cascata usando um método de volume finito com adaptação da solução. No 6º Simpósio de Aerodinâmica da CASI, 1997.
[8] Jasak H. e Gosman AD Controle automático de resolução para o método de volume finito, parte 1: estimativas de erro a posteriori. Transferência Numérica de Calor, Taylor & Francis, 38: 237–256, 2000.
[9] Jasak H. e Gosman AD Controle automático de resolução para o volume finito em ethod, parte 2: refinamento de malha adaptável e engrossamento. Transferência Numérica de Calor, Taylor & Francis, 38: 257–271, 2000.
[10] Thompson David S. Soni Bharat K., Koomullil Roy e Thornburg Hugh. Estratégias de grade adaptativa da solução com base na redistribuição de pontos. Métodos computacionais em mecânica aplicada e engenharia, 189: 1183–1204, 2000.
[11] Venditti David A. e Darmofal David L. Estimação adjunta de erros e adaptação de grade para saídas funcionais: Aplicação ao fluxo quase unidimensional. Journal of Computational Physics, 164: 204–227, 2000.
[12] Balasubramanian R. e Newman JC Comparação de adaptação de grade baseada em características e características para resultados funcionais. Revista internacional de métodos numéricos em fluidos, 53: 1541-1569, 2007.
[13] Hartmann Ralf. Estimativa de erros e adaptação adjunta em aerodinâmica. Na Conferência Europeia sobre Dinâmica dos Fluidos Computacional, 2006.
fonte
Eu estava (ainda estou) procurando boas respostas para isso. Trabalho com grades adaptativas de vários níveis, onde utilizo algum tipo de critério para refinamento. As pessoas que praticam o MEF desfrutam, de maneira bastante barata (computacionalmente), estimativas de erro rigorosas que usam como critério de refinamento. Para nós, que fazemos FDM / FVM, não tive sorte em encontrar essas estimativas.
Nesse contexto, se você deseja ser rigoroso com relação ao refinamento, ou seja, refine com base em alguma estimativa do erro real, sua (quase) única opção é a extrapolação de Richardson. Foi o que foi, por exemplo, usado por Berger e Oliger (1984) em seu solucionador hiperbólico de AMR estruturado em blocos. A metodologia é geral no sentido de que você pode usar a extrapolação de Richardson para praticamente qualquer problema. O único problema é que é caro, especialmente para problemas transitórios.
Além da extrapolação de Richardson, todos os outros critérios (na minha humilde opinião) são apenas ad hoc. Sim, você pode definir um certo limite para uma "quantidade de interesse" e refinar com base nisso. Você pode usar fluxos ou derivados de alguma quantidade para alertar um grande gradiente e usá-lo. Ou, se você estiver acompanhando uma interface, poderá refinar com base na proximidade com a interface. Tudo isso é muito barato, é claro, mas não há nada de rigor neles.
Quanto à interpolação entre grades, geralmente você precisa de algo que seja pelo menos tão preciso quanto o solucionador. Às vezes é possível construir interpolações que satisfaçam certas propriedades, por exemplo, conservam a massa ou são convexas, portanto não introduzem novos extremos. Observei que essa última propriedade às vezes é muito importante para a estabilidade do esquema geral.
fonte
Se for de fato 1D, você provavelmente não precisará de nenhuma malha adaptativa aqui. Para um problema tão simples, você provavelmente pode resolver tudo o que precisa com uma grade estática, com o poder de computação de uma estação de trabalho moderna. Mas é uma estratégia perfeitamente razoável, no processo de integração no tempo, identificar periodicamente áreas onde a resolução numérica está estressada, adicionar pontos de grade lá (e remover pontos de grade de áreas super resolvidas) e interpolar para a nova grade. Mas isso não deve ser feito com muita frequência, porque a interpolação pode ser cara e adicionaria erro numérico no cálculo geral.
fonte