Adaptive Mesh Refinement (AMR) ist eine gängige Technik, um das Problem stark variierender räumlicher Skalen in der numerischen Lösung von PDEs zu lösen. Welche Universalbibliotheken gibt es für AMR auf strukturierten Gittern? Idealerweise hätte ich gerne etwas im Sinne von PETSc, wo die Bibliothek nur die adaptiven Netze verwaltet und ich die Physik und Diskretisierung (endliche Differenz / Volumen / Element) bereitstelle.
Die ideale Bibliothek wäre
- Modular : Gibt nicht vor, wie ich meinen Code oder zu viele meiner Datenstrukturen schreibe
- Allgemein : Es ist mir egal, welche Art von Diskretisierung ich verwende
- Effizient : Es entsteht nicht zu viel Overhead
- Parallel und hoch skalierbar
Bibliotheken, die nur eine Teilmenge dieser Kriterien erfüllen, wären weiterhin von Interesse.
Nachtrag : Mir ist die umfangreiche Liste der AMR-Pakete von Donna Calhoun bekannt , aber ich weiß nicht, welche davon (falls vorhanden) die oben genannten Kriterien erfüllen. Daher bin ich hauptsächlich daran interessiert, von Leuten zu hören, die tatsächlich Erfahrung mit einem oder (besser noch) mehreren Paketen haben, wie sie in diesen Begriffen abschneiden.
quelle
Antworten:
Eine zu berücksichtigende Bibliothek ist BoxLib . Seine Hauptmerkmale (von der Website) sind:
Es gibt auch einen Python-Wrapper (von mir geschrieben), der in der Fortran-Version enthalten ist (obwohl er noch recht jung ist).
quelle
Sie sollten sich auch libMesh ansehen . Es zielt auf Finite-Elemente-Methoden ab, aber abgesehen davon, glaube ich, werden die meisten Ihrer Kontrollkästchen aktiviert. Im Gegensatz zu BoxLib handelt es sich um eine vollständig unstrukturierte Bibliothek mit gemischten Elementen, die Tets, Pyramiden, Prismen und Hexaeder im selben Netz unterstützt. Es hat auch eine der größten Mengen von Integrationsregeln für polynomiale Basisfunktionen höherer Ordnung. Sie können PETSc (und auch einige andere Bibliotheken) direkt aufrufen, sodass Sie dieselbe Solver-Skalierbarkeit wie PETSc haben.
Es gibt sicherlich eine libMesh-Methode, um Dinge zu erledigen, aber es gibt auch eine PETSc-Methode, um Dinge zu erledigen. Hoffentlich schreckt Sie das nicht ab.
quelle
Ich würde SAMRAI ausprobieren . Ich kenne mindestens einen Code, der es mit Erfolg verwendet - IBAMR , einen Code für die Methode der eingetauchten Grenze für die Fluid-Struktur-Wechselwirkung mit AMR.
quelle
Sie haben nicht strukturiert oder unstrukturiert angegeben.
Schauen Sie sich Paramesh, Pyramid, p4est, Dendro, Samrai und Chombo an.
Übrigens: Pyramide vergröbert nicht.
quelle