Depois de fazer algumas matemáticas relacionadas à estabilidade dos elementos no problema 3D Stokes, fiquei um pouco chocado ao perceber que não é estável para uma malha tetraédrica arbitrária. Mais precisamente, caso você tenha um elemento em que todos os nós e três das quatro facetas se encontrem no limite do domínio com uma condição Dirichlet, você acaba obtendo uma matriz singular. De fato, é bastante trivial concluir da forma fraca do sistema Stokes.
Testei o único código comercial da Stokes ao qual tenho acesso (COMSOL) e ele me permitiu criar essa malha. Ao clicar em resolver, recebo 'Erro: matriz singular' conforme o esperado. (Tenho a impressão de que o COMSOL usa para seu módulo de fluxo rastejante.)
Para testar ainda mais se o problema não estava relacionado a outras configurações, tentei a seguinte malha e tudo funciona conforme o esperado.
Perguntas: Esse tipo de restrição é levado em consideração nos geradores de malha (adaptativos ou não adaptativos)? Vejo em vários trabalhos de pesquisa que esse elemento parece ser bastante popular. Esse tipo de instabilidade de fronteira geralmente é desconsiderado como insignificante ao escolher um método a ser usado? Mais importante, o que realmente significa ter um elemento finito estável , ou seja, que tipo de instabilidades dependentes de malha são demais para concluirmos que o método é ruim?
Respostas:
Os geradores de malha geralmente têm uma opção para lidar com isso, por exemplo, o gerador
bamg
de malha 2D defreefem++
tem uma-splitpbedge
opção que adiciona um nó no meio de qualquer aresta com ambas as extremidades no limite. De acordo com abamg
documentação, a geração de malha não estruturada pode retornar esses triângulos.fonte