Refinamiento de malla adaptable (AMR) es una técnica común para tratar el problema de escalas espaciales muy variadas en la solución numérica de PDEs. ¿Qué bibliotecas de propósito general existen para AMR en cuadrículas estructuradas? Idealmente, me gustaría algo en el espíritu de PETSc, donde la biblioteca maneja solo las mallas adaptativas y proporciono la física y la discretización (diferencia finita / volumen / elemento).
La biblioteca ideal sería
- Modular : no dicta cómo escribo mi código o demasiado de mis estructuras de datos
- General : no me importa qué tipo de discretización estoy usando
- Eficiente : no genera demasiados gastos generales
- Paralelo y altamente escalable
Las bibliotecas que se ajustan solo a un subconjunto de estos criterios seguirían siendo interesantes.
Anexo : Soy consciente de la extensa lista de paquetes de AMR de Donna Calhoun , pero no sé cuál de ellos (si corresponde) cumple con los criterios anteriores. Por lo tanto, estoy interesado principalmente en escuchar a las personas que tienen experiencia real con uno o (mejor aún) más paquetes, en cuanto a cómo se comparan en esos términos.
fuente
Respuestas:
Una biblioteca a considerar es BoxLib . Sus características clave (del sitio web) son:
También hay un contenedor Python (escrito por mí) para la versión Fortran incluida (aunque es bastante joven).
fuente
También deberías mirar libMesh . Está dirigido a métodos de elementos finitos, pero aparte de eso, creo que marca la mayoría de sus cuadros. A diferencia de BoxLib, es una biblioteca de tipos de elementos mixtos, totalmente desestructurada, que debe ser compatible con tets, pirámides, prismas y hexahedra en la misma malla. También tiene uno de los conjuntos más grandes de reglas de integración para funciones de base polinomiales de alto orden. Está configurado para permitirle llamar a PETSc (y algunas otras bibliotecas también) directamente, por lo que tiene la misma escalabilidad de solucionador que PETSc.
Ciertamente hay una forma libMesh de hacer las cosas, pero también hay una forma PETSc de hacer las cosas. Espero que eso no te asuste.
fuente
Me gustaría probar Samrai Conozco al menos un código que lo utiliza con éxito - IBAMR , un código de Inmerso Límites Método para la interacción del fluido-estructura con AMR.
fuente
No especificó estructurado o no estructurado.
Echa un vistazo a Paramesh, Pyramid, p4est, Dendro, Samrai y Chombo.
Por cierto, la pirámide no hace engrosamiento.
fuente