Em palavras simples, qual é a diferença entre os solucionadores diretos e iterativos da fea? em quais casos cada um é usado?

Direct Solver ou Iterative Solver: Qual é a diferença?

Quando usamos o

método do elemento finito

(FEM), estamos resolvendo um conjunto de equações matriciais da forma [K] {u} = {f}. Aqui [K] é chamado de matriz de rigidez; {f} como vetor de força e {u} como conjunto de incógnitas. Existem vários métodos disponíveis que podem resolver diretamente esse sistema de equações. Uma maneira simples e direta - embora não seja recomendada - seria inverter a matriz [K] e multiplicar pelo vetor de força {f}. Isso resulta em soluções para o desconhecido. No entanto, um inverso quase nunca é calculado. As abordagens mais comumente adotadas para calcular diretamente a solução incluem eliminação Gaussiana, decomposições LU, Cholesky e QR.

No entanto, esses métodos diretos falham quando as matrizes são:

  • Muito grande, por exemplo, da ordem de alguns milhões: Se a matriz é da ordem n, são necessárias operações nx nx n para resolver o sistema usando a eliminação gaussiana. Imagine que o sistema tenha 10 milhões de incógnitas; neste caso, precisaria de operações da ordem de ExaFlops.
  • Tenha muitos zeros (geralmente chamados de matrizes esparsas): matrizes esparsas têm muitos zeros na matriz. Operar com eles (como multiplicar zero por zero) é um desperdício de recursos de computação e completamente sem sentido.
  • Não tem acesso direto a toda a matriz de uma só vez

Para o solucionador iterativo, consulte o artigo completo do blog aqui:

Como escolher um solucionador para problemas do MEF: direto ou iterativo?