Salta el contingut

!SOLVER

Control del solucionador

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 solucionadors iteratius (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Block) SSOR (amb ordenació multicolor només per a problemes de 3 graus de llibertat)
            3          : (per blocs) escalat diagonal
            5          : AMG mitjançant el paquet de precondicionament multigrid ML
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG amb el SA-AMG (Smoothed Aggregation AMG) integrat a HEC-MW
            10, 11 i 12 només estan disponibles per a problemes de 3 graus de llibertat
            El valor 22 només està disponible en compilacions amb LAPACK habilitat
            Per a l'execució paral·lela per fils amb OpenMP, es recomanen SSOR, escalat diagonal, ML o SA-AMG

ITERLOG =   Si s'ha de generar l'historial de convergència del solucionador iteratiu          (YES/NO)(Per defecte: NO)

TIMELOG =   Si s'ha de generar el temps de càlcul del solucionador                            (YES/NO/VERBOSE)(Per defecte: NO)

LOGLEVEL =  Nivell de sortida de la informació de diagnòstic del precondicionament                (enter)(per defecte: sense sortida)
            S'especifica independentment d'ITERLOG i TIMELOG
            Amb un valor igual o superior a 1, s'emet, entre altres dades, l'estructura jeràrquica dels precondicionadors AMG (PRECOND=5, 22)
            Amb un valor igual o superior a 2, s'emet informació encara més detallada (com ara l'ús de memòria)

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, 3)
            1: Mètode de penalització (per defecte quan s'utilitza un mètode directe)
            3: Eliminació explícita de graus de llibertat (per defecte quan s'utilitza un mètode iteratiu)
            El mètode MPC-CG (2) s'ha eliminat. Si s'especifica 2, s'emet un avís i s'utilitza el mètode per defecte.

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ó

RECOMPUTE_RESIDUAL = Freqüència de recàlcul del vector residual
            Només és vàlid quan s'especifica CG, BiCGSTAB, GPBiCG o PipeCG per a METHOD
            Els mètodes iteratius actualitzen el vector residual mitjançant una fórmula de recurrència, de manera que s'acumulen errors d'arrodoniment
            A cada interval d'iteracions especificat, el vector residual es recalcula a partir de {b}-[A]{x}
            Si s'especifica 0, s'utilitza el valor per defecte de cada mètode (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Si s'especifica un valor negatiu, no es fa cap recàlcul periòdic
            El recàlcul per confirmar la convergència es fa sempre independentment d'aquesta configuració
            Un interval massa curt no només augmenta el nombre de productes matriu-vector, sinó que també pot
            empitjorar la convergència mateixa o fins i tot impedir que la solució convergeixi
            Si es modifica el valor per defecte, comproveu l'historial de convergència i el residu relatiu final

METHOD2 =   Mètode de solució 2 (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 **

(2a línia) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Nom de la 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 Mida del subespai 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)
(3a línia) RESID, SIGMA_DIAG, SIGMA
Nom de la variable Atribut Descripció
RESID R Tolerància de convergència (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 PRECOND s'estableix en un valor diferent de 5 o 22, s'ignora la 4a línia.

(4a línia) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Nom de la variable Atribut Descripció
ML_CoarseSolver I Solucionador 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 solucionador 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 d'engruiximent 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)

Quan PRECOND=22 (opcional)

Si PRECOND s'estableix en un valor diferent de 22, s'ignora la 5a línia. Tant la 4a com la 5a línia es poden ometre completament, i també es poden ometre els elements finals de cada línia. Per a qualsevol element especificat com a 0 s'utilitza el valor per defecte.

Els elements de l'1 al 7 de la 4a línia segueixen el mateix ordre que la línia d'opcions de PRECOND=5 (ML), de manera que la línia d'opcions de ML es pot reutilitzar sense canvis. Els elements del 8 al 10 són específics de SA-AMG.

(4a línia) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (no s'utilitza), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (no s'utilitza)
Nom de la variable Atribut Descripció
SA_CoarseSolver I Solucionador de malla gruixuda (0: automàtic, 1: utilitza l'allisador, 2: mètode directe de matriu densa, 3: MUMPS (mètode directe paral·lel)) (per defecte: 0)
(En mode automàtic, s'utilitza MUMPS en compilacions amb MUMPS habilitat; altrament s'utilitza el mètode directe de matriu densa)
SA_Smoother I Allisador (0 o 1: Chebyshev) (per defecte: 0)
(Només s'admet Chebyshev. Si s'especifica un altre valor, s'emet un avís i s'utilitza Chebyshev)
SA_MGCycle I Cicle multigrid (0: per defecte (cicle W), 1: cicle V, 2: cicle W) (per defecte: 0)
(No s'admet el cicle V complet)
SA_MaxLevels I Nombre màxim de nivells (per defecte: 20)
(no s'utilitza) I Posició corresponent a l'esquema d'engruiximent de ML. Com que SA-AMG sempre utilitza agregació no acoblada, un valor diferent de 0 genera un avís i s'ignora
SA_ChebyDegree I Grau del polinomi de l'allisador de Chebyshev (per defecte: 2)
SA_CoarseSize I Mida de tall de la malla gruixuda (per defecte: 50000 quan s'utilitza MUMPS com a solucionador de malla gruixuda; altrament 100)
SA_MaxAggSize I Mida màxima de l'agregat (per defecte: 96)
SA_GalerkinLowMem I Mètode de càlcul de la matriu de malla gruixuda (0: normal (prioritza la velocitat), valor positiu: estalvi de memòria) (per defecte: 0)
(Especifiqueu un valor positiu si la memòria és insuficient durant la configuració)
(no s'utilitza) I Reservat per a ampliacions futures

La 5a línia és específica de SA-AMG i ML no la llegeix.

(5a línia) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Nom de la variable Atribut Descripció
SA_Theta R Llindar per determinar connexions fortes (per defecte: 0.0)
(Amb 0.0, l'estructura no nul·la de la matriu s'utilitza directament com a graf)
SA_ChebyAlpha R Relació que determina el límit inferior de l'interval de valors propis al qual s'aplica l'allisador de Chebyshev (per defecte: 20.0)
SA_Safety R Factor de seguretat aplicat al valor propi màxim estimat (per defecte: 1.1)
SA_TaperK R Coeficient K de reducció gradual de l'engruiximent (per defecte: 100)
(A partir del nivell 2, l'engruiximent es fa més gradual perquè quedin almenys aproximadament K agregats. Un valor negatiu desactiva aquesta reducció gradual)
SA_AggOrder R Ordre de recorregut de l'agregació (0: per defecte (ordre BFS), 1: ordre BFS, 2: ordre hash dels números de node (experimental), 3: ordre ascendent del grau (experimental), 4: ordre descendent del grau (experimental), valor negatiu: ordre dels números de node) (per defecte: 0)
SA_MinAggSize R Mida mínima de l'agregat (per defecte: 3)
SA_Verify R Si s'ha d'executar una autocomprovació durant la configuració (0: no, valor positiu: sí) (per defecte: 0) (principalment per a depuració)
SA_DumpVTK R Si s'ha d'emetre en format VTK l'agregació del nivell superior (0: sense sortida, valor positiu: sortida) (per defecte: 0) (principalment per a depuració)

Exemple

Utilitzar el mètode CG amb precondicionament SSOR i establir el nombre màxim d'iteracions a 10000 i la tolerància de convergència a 1.0e-8

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Utilitzar el mètode GMRES amb precondicionament SSOR i establir la mida del subespai de Krylov a 40 i el nombre objectiu de colors de l'ordenació multicolor a 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

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

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Utilitzar AMG mitjançant ML com a precondicionador del mètode CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Utilitzar AMG mitjançant ML com a precondicionador del mètode CG i MUMPS com a solucionador de malla gruixuda (per a problemes difícils)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Utilitzar AMG mitjançant ML com a precondicionador del mètode CG i W-cycle com a cicle multigrid (per a problemes difícils)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

Utilitzar AMG mitjançant ML com a precondicionador del mètode CG, MUMPS com a solucionador de malla gruixuda i establir el nombre màxim de nivells a 2 (per a problemes molt difícils)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

Utilitzeu el SA-AMG integrat a HEC-MW com a precondicionador per a CG

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Utilitzeu SA-AMG com a precondicionador per a CG i MUMPS com a solucionador de malla gruixuda

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

En una anàlisi de contacte amb fricció, utilitzeu BiCGSTAB amb precondicionament SA-AMG i emeteu l'estructura jeràrquica del precondicionador AMG

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0