Quali librerie hanno un buon supporto di alto livello per multigrid?


17

Sto pianificando di utilizzare multigrid per calcolare alcuni autovalori e vettori e ho notato che PETSc ha un supporto di alto livello per multigrid. La documentazione PETSc afferma che questa parte di PETSc non deve essere utilizzata, poiché verrà presto sostituita.

Quali altre librerie hanno un supporto di alto livello per multigrid e all'incirca quando PETSc rilascerà il nuovo supporto multigrid?


2
La nuova MG è disponibile in petsc-dev e funziona, così come il nuovo solutore GAMG. Stiamo aspettando di rilasciare fino a quando non possiamo cambiare ogni esempio (e ce ne sono centinaia). Vorrei solo iniziare a usare petsc-dev ora.
Matt Knepley,

Risposte:


7

Sia PETSc che Trilinos hanno buoni metodi multigrid algebrici.

deal.II implementa metodi multigrid geometrici per discretizzazioni di elementi finiti, vedere ad esempio il programma tutorial 16-step .


2
PETSc fa MG geometrico se si utilizza una griglia DMDA (cartesiana) da allora sappiamo come costruire interpolatori e problemi grossolani.
Matt Knepley,

11

Il multigrid di PETSc (come precondizionatore) è abbastanza maturo e può essere usato con qualsiasi solutore KSP (metodo iterativo di Krylov) in PETSc digitando:

-pc_type mg

Tuttavia, ciò richiede che tu abbia un modo per generare i tuoi livelli grossolani, come ad esempio avere griglie strutturate definite da oggetti DA PETSc, che verranno automaticamente ingrandite.

Oppure, se si desidera utilizzare il multigrid algebrico dal pacchetto HYPRE, è possibile utilizzare

-pc_type hypre

O dal pacchetto ML con

-pc_type ml

Questi vengono scaricati durante il processo di configurazione aggiungendo

--download-hypre=1 --download-ml=1

alla tua riga di comando ./configure.

La parte che è ammortizzata (per ora) è il framework DMMG, che viene sostituito dal risolutore FAS SNES (non lineare) e un migliore supporto per la gestione delle discretizzazioni multilivello mentre si utilizza MG o FAS mentre parliamo. L'altra sostituzione (per problemi lineari) è

-pc_type gamg -pc_gamg_type sa

Questo è un codice più recente, nativo in PETSc, multigrid algebrico ad aggregazione levigata altamente scalabile.

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.