O que é um solucionador iterativo robusto para grandes problemas elásticos lineares em 3-d?

9

Estou mergulhando no mundo fascinante da análise de elementos finitos e gostaria de resolver um grande problema termomecânico (apenas térmico mecânico, sem retorno).

Para o problema mecânico, eu já entendi da resposta de Geoff , que precisarei usar o solucionador iterativo devido ao tamanho da minha malha. Li ainda na resposta de Matt , que a escolha do algoritmo iterativo correto é uma tarefa assustadora.

Estou perguntando aqui se existe alguma experiência em grandes problemas elásticos lineares em 3-d que me ajudariam a restringir minha busca pelo melhor desempenho? No meu caso, é uma estrutura com filmes finos e padronizados e materiais posicionados irregularmente (ambos com alta CTE e baixa CTE). Não há grandes deformações nesta análise termomecânica. Eu posso usar o HPC da minha universidade [1.314 nós, com 2 processadores AMD Opteron (cada um com 2,2 GHz / 8 núcleos)].

Eu acho que PETScpoderia conter algo interessante, especialmente os algoritmos que fazem algum tipo de decomposição de domínio (FETI, multigrid), mas estou um pouco sobrecarregado com as opções e não tenho experiência. Também gosto da frase "pré-condicionantes informados geometricamente" , mas não tenho certeza se isso me ajuda. Ainda não encontrei algo focado na mecânica linear de continuum.

O dimensionamento forte (Amdahl) é muito importante em meu aplicativo porque meus parceiros industriais não podem esperar muito tempo pelos resultados da simulação. Definitivamente, não apenas aprecio as respostas, mas também as recomendações para novas leituras nos comentários.

Sebastian
fonte
Você está resolvendo problemas estáticos? Parece que sim. Para problemas dinâmicos ou harmônicos no tempo, acho que a resposta seria diferente.
Hui Zhang
estático sim. Dinâmico é muito caro.
Sebastian

Respostas:

6

Supondo que suas estruturas sejam realmente 3D (em vez de apenas recursos finos, talvez discretizados com elementos de casca) e que o modelo seja maior que algumas centenas de milhares de DOFs, os solucionadores diretos se tornam impraticáveis, especialmente se você precisar resolver cada problema apenas uma vez. Além disso, a menos que a estrutura esteja sempre "próxima" de um limite do Dirichlet, você precisará de um método multinível para ser eficiente. A comunidade é dividida entre "multigrid" e "decomposition domain multinevel". Para uma comparação da matemática, consulte minha resposta para: Qual é a vantagem do multigrid sobre pré-condicionadores de decomposição de domínio e vice-versa?

A comunidade multigrid geralmente tem tido mais sucesso na produção de software de uso geral. Para elasticidade, sugiro o uso de agregação suavizada que requer um "espaço nulo próximo" aproximado. No PETSc, isso é feito escolhendo PCGAMG ou PCML (configure com --download-ml) e chamando MatSetNearNullSpace()para fornecer os modos de corpo rígido.

Os métodos de decomposição de domínio oferecem uma oportunidade de engrossar mais rapidamente que a agregação suavizada, possivelmente sendo mais tolerante à latência, mas o "ponto ideal" em termos de desempenho tende a ser mais estreito que a agregação suavizada. A menos que você queira pesquisar sobre métodos de decomposição de domínio, sugiro apenas o uso de agregação suavizada e talvez tente um método de decomposição de domínio quando o software se tornar melhor.

Jed Brown
fonte
muito obrigado por esta resposta muito informativa! O que exatamente você quer dizer com perto de um limite de Dirichlet ? Fechar em termos de contagem de elementos?
2929 Sebastian
Feche em termos de distância, medida em elementos ou subdomínios (para decomposição de um nível de domínio com soluções fortes de subdomínios), ao longo de um caminho de material forte. Se a informação precisar percorrer muitos subdomínios para determinar uma solução local, os métodos de um nível convergirão lentamente. Observe que uma conexão forte não é suficiente para a elasticidade; todos os modos de corpo rígido precisam ser controlados.
Jed Brown 29/05
4

Eu diria que a escolha canônica para esse problema seria o solucionador de Gradiente Conjugado mais um pré-condicionador algébrico multigrid. Para o PETSc, hypre / boomeramg ou ML seriam as escolhas óbvias para os pré-condicionadores.

Todos esses componentes, quando usados ​​no PETSc, escalam muito bem para milhares ou dezenas de milhares de processadores, se o problema for grande o suficiente (pelo menos ~ 100.000 graus de liberdade por processo MPI).

Wolfgang Bangerth
fonte
Observe que o BoomerAMG (e o AMG clássico em geral) não usa informações de espaço nulo ou assegura que espaços esparsos possam representar com precisão modos de rotação. Você pode (e deve) tentar, além de dividir os componentes e resolvê-los separadamente (uso PCFIELDSPLITno PETSc), mas a agregação suavizada geralmente é mais robusta em termos de elasticidade.
Jed Brown
1

<0.4(x,y,z)KxxKyyKzz

Nesse caso, você pode usar métodos AMG menos avançados para calcular uma aproximação de cada bloco inverso e obter um bom pré-condicionador.

Tom
fonte
1

Walter Landry desenvolveu um código para deformação elastostática tridimensional usando multigrid adaptável. Você pode encontrar o código em

https://bitbucket.org/wlandry/gamra

Você pode incluir o efeito do forçamento térmico com eigenstrain isotrópico e forças corporais equivalentes. Uma vez instalados, o solucionador funcionaria perfeitamente.

Sylvain Barbot
fonte