Aumentar os ciclos V para obter um tamanho constante da grade mais grosseiro e aumentar o tamanho da grade fina

8

Declaração do problema

Eu implementei multigrid geométrica para onde em em um cubo de unidade . Os limites do dirichlet na face esquerda, inferior e frontal são 0 . Os limites de Neumann na parte superior, direita e traseira são .-2=ff=3π24sEunπx2sEunπy2sEunπz2Ω[0 0,1]vocên=0 0

Método

Um método multigrid é usado para resolver a equação. Aproximo os pontos fantasmas no limite de Neumann usando a fórmula da diferença central .

Visão geral do método (a partir dos comentários, confirmados pelo autor): Comece na malha fina (a malha final com a qual a equação será resolvida), prossiga para a malha mais grossa para calcular a correção, propagá-la de volta e suavizar no final do multigrid procedimento.

Observações

O problema é que, quando eu reparo minha grade mais grossa (digamos 16x16x16), e medo os ciclos V para aumentar o tamanho da grade , meus ciclos V não são constantes . Eu li no livro MULTIGRID de Trottenberg et. al . que precisamos usar um operador de restrição Full Weighted modificado para evitar dimensionamento incorreto nos limites de Neumann. Além disso, não consigo entender esse operador de restrição total modificado mencionado no livro.

Em outro exemplo em que implementei um problema misto de Dirichlet-Neumann que nos limites do Dirichlet, não era necessário usar esse operador modificado para convergência (grade mais grossa fixa e aumentando a grade mais fina, os ciclos V permaneceram constantes).-2=0 0você=1+x+y+z

Questão

A "restrição ponderada total modificada" poderia estar causando uma deterioração na taxa de convergência?

Por favor, sugira / explique.

Gaurav Saxena
fonte
1
Você pode explicar o procedimento multigrid que você está usando? Eu estou familiarizado com o início de uma malha fina (a malha final que você deseja resolver a equação), depois será grosseiro para calcular a correção e, em seguida, prolongue novamente (e suavize algumas vezes no final) .. esse é o seu procedimento ? Além disso, pode ser útil se você incluir uma convergência versus iteração para algumas malhas (curso e multa).
Charles
1
@ Charlie: Desculpas pela resposta tardia. Meu procedimento é exatamente como você descreveu. O problema era que, no exemplo dos termos 'seno', precisaríamos modificar o estêncil perto dos limites, conforme descrito em Trottenberg. Eu tive a sorte de acertar o segundo exemplo sem um estêncil modificado na fronteira. Na verdade, outra maneira é dobrar o resíduo próximo ao limite e usar um operador de estêncil não modificado para executar a restrição. Em algum momento vou tentar o meu melhor para escrever a explicação completa como resposta!
Gaurav Saxena

Respostas:

0

Sua suposição inicial pode gerar um grande resíduo próximo ao limite de Neumann. Dependendo do método de restrição, esse resíduo pode não diminuir conforme desejado.

O que eu tentaria é, em vez de um ciclo V, usar um ciclo FMG. Como o ciclo FMG começa na grade mais grosseira, você terá uma estimativa razoável perto da sua condição de limite de Neumann em níveis mais refinados. Na minha experiência, o FMG funciona bem com as condições de contorno de Neumann.

Jannis Teunissen
fonte