!SOLVER¶
Control del solver
Dades de control obligatòries.
Paràmetres¶
METHOD = Mètode de solució (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Mètode directe excepte per a l'anàlisi de contacte (només processament en sèrie) (actualment no disponible)
DIRECTmkl : Mètode directe amb Intel MKL
MUMPS : Mètode directe amb MUMPS
Quan se selecciona un mètode directe, s'ignoren les línies de dades.
Els mètodes iteratius per a problemes de 3 graus de llibertat admeten paral·lelisme per fils amb OpenMP
PRECOND = Mètode de precondicionament per als solvers iteratius (1, 2, 3, 5, 10, 11, 12)
1, 2 : (Block) SSOR (amb ordenació multicolor només per a problemes de 3 graus de llibertat)
3 : (Block) Diagonal Scaling
5 : AMG mitjançant el paquet de precondicionament multigrid ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10, 11 i 12 només estan disponibles per a problemes de 3 graus de llibertat
Per a l'execució paral·lela per fils amb OpenMP, es recomana SSOR, Diagonal Scaling o ML
ITERLOG = Si s'ha de generar l'historial de convergència del solver iteratiu (YES/NO)(Per defecte: NO)
TIMELOG = Si s'ha de generar el temps de càlcul del solver (YES/NO/VERBOSE)(Per defecte: NO)
USEJAD = Si s'ha d'utilitzar ordenació per a processadors vectorials (YES/NO)(Per defecte: NO)
Només és vàlid quan s'utilitza un mètode iteratiu per a un problema de 3 graus de llibertat
SCALING = Si s'ha d'escalar la matriu perquè els elements diagonals siguin 1 (YES/NO)(Per defecte: NO)
Només és vàlid quan s'utilitza un mètode iteratiu per a un problema de 3 graus de llibertat
DUMPTYPE = Format de bolcat de la matriu (NONE, MM, CSR, BSR) (principalment per a depuració)
NONE : No fer cap bolcat (Per defecte)
MM : Format Matrix Market
CSR : Format Compressed Sparse Row (CSR)
BSR : Format Blocked CSR
DUMPEXIT = Finalitzar el programa immediatament després del bolcat de la matriu (YES/NO)(Per defecte: NO)
MPCMETHOD = Mètode per tractar les restriccions multipunt (1, 2, 3)
1: Mètode de penalització (per defecte quan s'utilitza un mètode directe)
2: Mètode MPC-CG (desaconsellat)
3: Eliminació explícita de graus de llibertat (per defecte quan s'utilitza un mètode iteratiu)
ESTCOND = Freqüència d'estimació del nombre de condició (experimental)
El nombre de condició s'estima a cada interval d'iteracions especificat i al final de les iteracions
Si s'especifica 0, no es fa cap estimació
METHOD2 = Segon mètode de solució (BiCGSTAB, GMRES, GPBiCG) (experimental)
Només és vàlid quan s'especifica CG per a METHOD
Si el mètode CG divergeix, es canvia automàticament al segon mètode i es continua la resolució
Per als altres paràmetres i línies de dades s'utilitzen els mateixos valors
CONTACT_ELIM = Especifica si es fa l'eliminació de graus de llibertat en l'anàlisi de contacte (0,1)
0: Fer l'eliminació de graus de llibertat només quan s'utilitza un mètode iteratiu (per defecte)
1: Fer sempre l'eliminació de graus de llibertat (també quan s'utilitza un mètode directe)
** 2a línia i següents **
| Variable | Atribut | Descripció |
|---|---|---|
| NITER | I | Nombre d'iteracions (per defecte: 100) |
| iterPREmax | I | Nombre d'iteracions del precondicionament Additive Schwarz (per defecte: 1) (Valor recomanat: 1; en alguns càlculs paral·lels, 2 pot ser eficaç) |
| NREST | I | Nombre de subespais de Krylov (per defecte: 10) (Només és vàlid quan se selecciona GMRES com a mètode de solució) |
| NCOLOR_IN | I | Nombre objectiu de colors en l'ordenació multicolor (per defecte: 10) (Només és vàlid quan el nombre de fils OpenMP és 2 o superior) |
| RECYCLEPRE | I | Nombre de vegades que es reutilitza la informació de configuració del precondicionador (per defecte: 3) (Només és vàlid en anàlisis no lineals) |
| Variable | Atribut | Descripció |
|---|---|---|
| RESID | R | Error de truncament (per defecte: 1.0e-8) |
| SIGMA_DIAG | R | Factor aplicat als elements diagonals en calcular la matriu de precondicionament (per defecte: 1.0) (Si amb el precondicionament ILU es produeix una divisió per zero o divergència, el problema pot convergir especificant un valor superior a 1.0) |
| SIGMA | R | No utilitzat (per defecte: 0.0) |
Quan PRECOND=5 (opcional)¶
Si s'especifica qualsevol altre valor per a PRECOND, s'ignora la 4a línia.
| Variable | Atribut | Descripció |
|---|---|---|
| ML_CoarseSolver | I | Solver de malla gruixuda per a ML (1: utilitzar l'allisador, 2: KLU (mètode directe en sèrie), 3: MUMPS (mètode directe paral·lel)) (per defecte: 1) (Recomanat: 3 o 2 per a problemes difícils, 1 per a problemes ordinaris) |
| ML_Smoother | I | Allisador de ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (per defecte: 1) (Recomanat: 1) |
| ML_MGCycle | I | Cicle multigrid de ML (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (per defecte: 1) (Recomanat: 2 per a problemes difícils, 1 per a problemes ordinaris) |
| ML_MaxLevels | I | Nombre màxim de nivells de ML (per defecte: 10) (Per a problemes especialment difícils, utilitzeu un solver directe a la malla gruixuda i 2 nivells (o 3 si no hi ha prou memòria); per a problemes ordinaris, es recomana 10) |
| ML_CoarseningScheme | I | Esquema de coarsening de ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (per defecte: 1) (Recomanat: 1 o 5) |
| ML_NumSweep | I | Nombre de passades de l'allisador de ML (grau del polinomi en el cas de Chebyshev) (per defecte: 2) (Recomanat: 2 per a Chebyshev, 1 per a SymBlockGaussSeidel) |
Exemples d'ús¶
Utilitzar el mètode CG amb precondicionament SSOR i establir el nombre màxim d'iteracions a 10000 i l'error de truncament a 1.0e-8
Utilitzar el mètode GMRES amb precondicionament SSOR i establir el nombre de subespais de Krylov a 40 i el nombre objectiu de colors de l'ordenació multicolor a 100
Utilitzar el mètode CG amb precondicionament ILU(0) i establir a 1.1 el factor aplicat als elements diagonals en calcular la matriu de precondicionament
Utilitzar AMG mitjançant ML com a precondicionador del mètode CG
Utilitzar AMG mitjançant ML com a precondicionador del mètode CG i MUMPS com a solver de malla gruixuda (per a problemes difícils)
Utilitzar AMG mitjançant ML com a precondicionador del mètode CG i W-cycle com a cicle multigrid (per a problemes difícils)
Utilitzar AMG mitjançant ML com a precondicionador del mètode CG, MUMPS com a solver de malla gruixuda i establir el nombre màxim de nivells a 2 (per a problemes molt difícils)