Devemos sempre esperar que os gráficos de erro do FEM sejam retos?

8

As estimativas de erro no MEF são geralmente da forma

||uhu||Ch.

Tomando logaritmo de ambos os lados, obtemos

log||uhu||logC+logh.

Essa estimativa implica que o erro esteja abaixo da linha reta dada por na escala log-log. Essa estimativa não diz que o gráfico de erro em relação a deve ser uma linha reta, apenas que deve estar abaixo de uma linha reta.logy=logC+loghh

Então, por que a maioria dos gráficos de erros publicados em periódicos mostra uma linha reta muito nítida para o erro? Ficaria muito grato por ter descoberto essa questão, pois sou um novato na computação científica.

Em particular, alguns cálculos que realizei no FEniCS mostraram gráficos de erros que não são linhas retas, no entanto, o gráfico fica abaixo de uma linha reta. Um solucionador linear específico afeta esse comportamento? Estou usando o resolvedor linear de caxumba.

Edit: Na figura abaixo, os resultados teóricos mostram que o erro (plotado no eixo y) deve decair como onde é plotado no eixo x. A segunda figura está na escala log-log.1/RR

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Tanuj Dipshikha
fonte
Se você implementar um método que converge com a ordem polinomial N no tamanho da malha (e implementá-lo corretamente), é isso que você deve esperar.
Paul
2
A julgar pelas parcelas, não parece que você esteja refinando a malha, mas criando uma nova com tamanho diferente a cada vez, está correto?
nicoguaro
@nicoguaro Sim, isso é verdade. Estou criando uma nova malha sempre.
Tanuj Dipshikha 14/07/19
Você já tentou refinar a malha, dividindo por 4 todos os elementos todas as vezes, assumindo que é um problema 2D.
nicoguaro
1
- Um solucionador linear direto (como MUMPS) não tem impacto no nível de erros que você está considerando (por exemplo, ~ ) - Quando o problema é coercitivo (por exemplo, é equivalente a uma norma), o uso de uma série de malhas aninhadas garantirá que o erro diminua com ... mas não que você obtenha uma linha reta. 10-3uma(v,v)h
user7440

Respostas:

3

Embora eu não possa comentar seu caso em particular, pois você não forneceu detalhes suficientes, posso dar algumas orientações sobre o assunto, pois passei vários anos da minha vida tentando fazer com que esses gráficos de convergência parecessem o mais agradável possível. Eu só trabalhei com problemas elípticos e de ponto de sela e a orientação provavelmente não se aplica a problemas parabólicos e hiperbólicos.

Uma coisa já deve estar clara nos comentários: não há motivo algum para os gráficos sempre parecerem linhas retas se você tiver um limite superior para o erro.

Outra coisa a se perceber é que essas estimativas de erro geralmente são satisfeitas por algum conjunto genérico de problemas em que os dados de limite e carregamento são especificados como um elemento de um espaço de Sobolev. Portanto, existem muitos problemas com cargas diferentes, condições de contorno etc. que satisfazem a mesma estimativa - normalmente com uma constante diferente. Quando resolvidos numericamente em uma sequência de malhas, apenas alguns dos problemas ficam próximos o suficiente do limite assintótico - conforme definido pela estimativa - para que os gráficos pareçam lineares .

hh0 0

Tornar artificialmente o alcance pré-sintético o menor possível e encontrar problemas que fiquem principalmente próximos do limite assintótico é mais uma arte do que uma ciência. Aqui estão algumas dicas:

  • pecado(x)h<<π
  • Certifique-se de que não há outras singularidades além das que você está interessado em estudar.
  • eu2
  • Verifique se a sequência de malhas está aninhada. Isso geralmente melhora a monotonicidade do gráfico: a próxima malha sempre deve ser melhor que a anterior.
  • Certifique-se de usar a regra de integração alta o suficiente ao avaliar o erro. Cometi esse erro mais de uma vez e demorou um pouco para perceber onde estava o problema.
  • Não use pontos de integração que residem nos limites do elemento se você tiver dados descontínuos sobre o limite do elemento. Eu também cometi esse erro uma vez e demorou um pouco para depurar.

Em geral, acho que as estimativas de erro são mais úteis ao verificar se o código de elemento finito recém-implementado está funcionando corretamente e não é tão útil para problemas aplicados em que os dados e as condições de contorno não são necessariamente bons o suficiente para que você obtenha gráficos de convergência linear.

Se você fornecer mais detalhes sobre o problema em questão, acho que poderia fornecer dicas mais específicas. No entanto, acho que essas dicas ajudarão você a encontrar o problema.

knl
fonte