Esiste una libreria per scopi generici per il perfezionamento della mesh adattativa a griglia strutturata?


18

Il raffinamento di maglie adattative (AMR) è una tecnica comune per affrontare il problema delle scale spaziali ampiamente variabili nella soluzione numerica dei PDE. Quali librerie di uso generale esistono per AMR su griglie strutturate? Idealmente, vorrei qualcosa nello spirito di PETSc, in cui la libreria gestisce solo le mesh adattive e fornisco la fisica e la discretizzazione (differenza / volume / elemento finiti).

La biblioteca ideale sarebbe

  • Modulare : non impone come scrivo il mio codice o troppe strutture di dati
  • Generale : non importa quale tipo di discretizzazione sto usando
  • Efficiente : non comporta costi eccessivi
  • Parallelo e altamente scalabile

Le biblioteche che soddisfano solo un sottoinsieme di questi criteri sarebbero comunque interessanti.

Addendum : sono a conoscenza dell'ampio elenco di pacchetti AMR di Donna Calhoun , ma non so quale di essi (se presente) soddisfa i criteri sopra. Quindi sono principalmente interessato a ricevere notizie da persone che hanno esperienza effettiva con uno o (meglio ancora) più pacchetti, su come misurarsi in quei termini.


2
+1, sono curioso di sapere quale software AMR sia disponibile e lo preferirei per soddisfare i criteri sopra menzionati.
Geoff Oxberry,

Ho pensato di menzionare che la versione più recente di Chombo è stata appena rilasciata e (si afferma) che dovrebbe essere più facile da integrare in un pacchetto più grande ( Note di rilascio ). Non è una revisione importante, quindi è probabile che alcune cose non soddisfino ancora tutti i tuoi criteri.
Jeremy Kozdon

Risposte:


14

Una libreria da considerare è BoxLib . Le sue caratteristiche principali (dal sito Web) sono:

  • Supporto per AMR strutturato a blocchi con riciclo facoltativo nel tempo
  • Supporto per dati centrati sulla cella, centrati sulla faccia e centrati sul nodo
  • Supporto per soluzioni iperboliche, paraboliche ed ellittiche sulla struttura della griglia gerarchica
  • Versioni C ++ e Fortran90
  • Supporta il modello di programmazione ibrida con MPI e OpenMP
  • Base di applicazioni mature in combustione, astrofisica, cosmologia e mezzi porosi
  • Dimostrato ridimensionamento a oltre 200.000 processori
  • Disponibile gratuitamente per l'utente interessato
  • C'è anche un wrapper Python (scritto da me) nella versione Fortran inclusa (anche se è abbastanza giovane).


    9

    Dovresti anche guardare libMesh . È mirato a metodi ad elementi finiti, ma a parte questo, penso che controlli la maggior parte delle tue scatole. A differenza di BoxLib, è una libreria di tipi di elementi misti completamente non strutturata, che deve rimanere che supporta tet, piramidi, prismi e hexahedra nella stessa mesh. Ha anche uno dei più grandi insiemi di regole di integrazione per le funzioni di base polinomiale di alto ordine in circolazione. È impostato per consentire di chiamare direttamente PETSc (e anche alcune altre librerie), in modo da avere la stessa scalabilità del solutore di PETSc.

    C'è sicuramente un modo libMesh di fare le cose, ma c'è anche un modo PETSc di fare le cose. Quindi speriamo che non ti spaventi.


    4

    Vorrei provare SAMRAI, conosco almeno un codice che lo utilizza con successo: IBAMR , un codice del metodo di confine immerso per l'interazione fluido-struttura con AMR.


    Grazie Johntra (e benvenuto su scicomp)! Conosci le differenze salienti tra SAMRAI e BoxLib? Inoltre, puoi utilizzare i collegamenti in linea inserendo il testo del collegamento in [] e la destinazione in ()
    Aron Ahmadia,

    Sfortunatamente non lo so - per la verità, ne ho appena sentito parlare (BoxLib) per la prima volta. Questo è esattamente il motivo per cui ho deciso di unirmi - per imparare qualcosa di nuovo discutendo informalmente con voi ragazzi - grazie.
    Johntra Volta,

    Secondo SAMRAI, è un framework molto utile per AMR. Mi piace molto anche il design ibrido C ++ / Fortran a favore dell'autore. I kernel computazionali possono essere scritti in Fortran, come dovrebbero essere, e le classi C ++ forniscono tutta l'astrazione necessaria per nascondere il MPI interno e la gestione della memoria.
    Talonmies

    @AronAhmadia: BoxLib non è in grado di gestire l'interpolazione lineare a tratti con la modifica dei confini di Dirichlet in Multigrid geometrico centrato sulla cella. Il pensiero lo aggiungerebbe come un punto interessante.
    Gaurav Saxena,

    2

    Non hai specificato strutturato o non strutturato.

    Dai un'occhiata a Paramesh, Pyramid, p4est, Dendro, Samrai e Chombo.

    Btw Pyramid non fa ingrossare.


    1
    Buona pesca; Ho modificato la domanda. Potresti commentare quanto queste librerie si adattano ai miei criteri?
    David Ketcheson,
    Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
    Licensed under cc by-sa 3.0 with attribution required.