Refinamento de malha adaptável (AMR) é uma técnica comum para lidar com o problema de escalas espaciais muito variadas na solução numérica de PDEs. Quais bibliotecas de uso geral existem para AMR em grades estruturadas? Idealmente, eu gostaria de algo no espírito do PETSc, onde a biblioteca lida apenas com as malhas adaptativas e eu forneço a física e a discretização (diferença finita / volume / elemento).
A biblioteca ideal seria
- Modular : não determina como eu escrevo meu código ou muito das minhas estruturas de dados
- Geral : não se importa com o tipo de discretização que estou usando
- Eficiente : não gera muita sobrecarga
- Paralela e altamente escalável
As bibliotecas que se encaixam apenas em um subconjunto desses critérios ainda seriam interessantes.
Adendo : Estou ciente da extensa lista de pacotes AMR de Donna Calhoun , mas não sei qual deles (se houver) se encaixa nos critérios acima. Portanto, estou interessado principalmente em ouvir pessoas que tenham experiência real com um ou (melhor ainda) mais pacotes, sobre como eles se comparam nesses termos.
fonte
Respostas:
Uma biblioteca a considerar é o BoxLib . Suas principais características (do site) são:
Há também um wrapper Python (escrito por mim) para a versão Fortran incluída (embora seja bastante jovem).
fonte
Você também deve olhar para libMesh . É direcionado a métodos de elementos finitos, mas, além disso, acho que verifica a maioria das suas caixas. Ao contrário do BoxLib, é uma biblioteca de tipos de elementos mistos totalmente não estruturada, que deve permanecer compatível com tets, pirâmides, prismas e hexaedra na mesma malha. Ele também possui um dos maiores conjuntos de regras de integração para funções de base polinomial de alta ordem. Ele foi configurado para permitir que você chame diretamente o PETSc (e algumas outras bibliotecas), para que você tenha a mesma escalabilidade do solucionador que o PETSc.
Certamente, existe uma maneira libMesh de fazer as coisas, mas também existe uma maneira PETSc de fazer as coisas. Então espero que isso não o assuste.
fonte
Eu tentaria o SAMRAI . Conheço pelo menos um código que o utiliza com êxito - IBAMR , um código de Método de Fronteira Imersa para Interação Fluido-Estrutura com AMR.
fonte
Você não especificou estruturado ou não estruturado.
Dê uma olhada em Paramesh, Pyramid, p4est, Dendro, Samrai e Chombo.
Btw Pyramid não faz grosseiro.
fonte