!SOLVER¶
Control del solver
Datos de control obligatorios.
Parámetros¶
METHOD = Método de resolución (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Método directo excepto para análisis de contacto (solo procesamiento serie) (actualmente no disponible)
DIRECTmkl : Método directo mediante Intel MKL
MUMPS : Método directo mediante MUMPS
Cuando se selecciona un método directo, se ignoran las líneas de datos.
Los métodos iterativos para problemas de 3 GDL admiten ejecución paralela por hilos con OpenMP
PRECOND = Método de precondicionamiento para solvers iterativos (1, 2, 3, 5, 10, 11, 12)
1, 2 : SSOR (por bloques) (con ordenación multicolor solo para problemas de 3 GDL)
3 : Escalado diagonal (por bloques)
5 : AMG mediante el paquete de precondicionamiento multigrid ML
10 : ILU(0) por bloques
11 : ILU(1) por bloques
12 : ILU(2) por bloques
10, 11 y 12 solo están disponibles para problemas de 3 GDL
Para ejecución paralela por hilos con OpenMP se recomienda SSOR, escalado diagonal o ML
ITERLOG = Si se genera el historial de convergencia del solver iterativo (YES/NO)(Predeterminado: NO)
TIMELOG = Si se genera el tiempo de cálculo del solver (YES/NO/VERBOSE)(Predeterminado: NO)
USEJAD = Si se utiliza ordenación para procesadores vectoriales (YES/NO)(Predeterminado: NO)
Solo es válido cuando se utiliza un método iterativo para un problema de 3 GDL
SCALING = Si se escala la matriz para que las entradas diagonales sean 1 (YES/NO)(Predeterminado: NO)
Solo es válido cuando se utiliza un método iterativo para un problema de 3 GDL
DUMPTYPE = Formato de volcado de la matriz (NONE, MM, CSR, BSR) (principalmente para depuración)
NONE : No realizar volcado (Predeterminado)
MM : Formato Matrix Market
CSR : Formato Compressed Sparse Row (CSR)
BSR : Formato CSR por bloques
DUMPEXIT = Finalizar el programa inmediatamente después del volcado de la matriz (YES/NO)(Predeterminado: NO)
MPCMETHOD = Método para tratar restricciones multipunto (1, 2, 3)
1: Método de penalización (predeterminado cuando se utiliza un método directo)
2: Método MPC-CG (obsoleto)
3: Eliminación explícita de GDL (predeterminado cuando se utiliza un método iterativo)
ESTCOND = Frecuencia de estimación del número de condición (experimental)
Estima el número de condición en cada intervalo de iteraciones especificado y al final de las iteraciones
No se realiza ninguna estimación cuando se especifica 0
METHOD2 = Método de resolución secundario (BiCGSTAB, GMRES, GPBiCG) (experimental)
Solo es válido cuando se especifica CG para METHOD
Si CG diverge, se cambia automáticamente al método secundario y se continúa la resolución
Se utilizan los mismos valores para los demás parámetros y líneas de datos
CONTACT_ELIM = Especifica si se realiza eliminación de GDL en el análisis de contacto (0,1)
0: Realizar eliminación de GDL solo cuando se utiliza un método iterativo (Predeterminado)
1: Realizar siempre eliminación de GDL (también cuando se utiliza un método directo)
** 2.ª línea y siguientes **
| Variable | Atributo | Descripción |
|---|---|---|
| NITER | I | Número de iteraciones (Predeterminado: 100) |
| iterPREmax | I | Número de iteraciones de precondicionamiento Additive Schwarz (Predeterminado: 1) (Valor recomendado: 1; 2 puede resultar eficaz en algunos cálculos paralelos) |
| NREST | I | Número de subespacios de Krylov (Predeterminado: 10) (Solo es válido cuando se selecciona GMRES como método de resolución) |
| NCOLOR_IN | I | Número objetivo de colores para la ordenación multicolor (Predeterminado: 10) (Solo es válido cuando el número de hilos OpenMP es 2 o superior) |
| RECYCLEPRE | I | Número de veces que se reutiliza la información de configuración del precondicionador (Predeterminado: 3) (Solo es válido en análisis no lineales) |
| Variable | Atributo | Descripción |
|---|---|---|
| RESID | R | Error de truncamiento (Predeterminado: 1.0e-8) |
| SIGMA_DIAG | R | Factor de escala aplicado a las entradas diagonales al calcular la matriz de precondicionamiento (Predeterminado: 1.0) (Si se produce división por cero o divergencia con precondicionamiento ILU, el problema puede converger al especificar un valor mayor que 1.0) |
| SIGMA | R | No utilizado (Predeterminado: 0.0) |
Cuando PRECOND=5 (opcional)¶
Si se especifica cualquier otro valor para PRECOND, se ignora la 4.ª línea.
(4.ª línea) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Variable | Atributo | Descripción |
|---|---|---|
| ML_CoarseSolver | I | Solver de malla gruesa para ML (1: utilizar smoother, 2: KLU (método directo serie), 3: MUMPS (método directo paralelo)) (Predeterminado: 1) (Recomendado: 3 o 2 para problemas difíciles, 1 para problemas ordinarios) |
| ML_Smoother | I | Smoother de ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Predeterminado: 1) (Recomendado: 1) |
| ML_MGCycle | I | Ciclo multigrid de ML (1: ciclo V, 2: ciclo W, 3: ciclo Full-V) (Predeterminado: 1) (Recomendado: 2 para problemas difíciles, 1 para problemas ordinarios) |
| ML_MaxLevels | I | Número máximo de niveles de ML (Predeterminado: 10) (Para problemas especialmente difíciles, utilice un solver directo de malla gruesa y 2 niveles (o 3 si la memoria es insuficiente); para problemas ordinarios se recomienda 10) |
| ML_CoarseningScheme | I | Esquema de coarsening de ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Predeterminado: 1) (Recomendado: 1 o 5) |
| ML_NumSweep | I | Número de barridos del smoother de ML (grado polinómico para Chebyshev) (Predeterminado: 2) (Recomendado: 2 para Chebyshev, 1 para SymBlockGaussSeidel) |
Ejemplos¶
Utilizar CG con precondicionamiento SSOR y establecer el número máximo de iteraciones en 10000 y el error de truncamiento en 1.0e-8
Utilizar GMRES con precondicionamiento SSOR y establecer el número de subespacios de Krylov en 40 y el número objetivo de colores para la ordenación multicolor en 100
Utilizar CG con precondicionamiento ILU(0) y establecer en 1.1 el factor de escala aplicado a las entradas diagonales al calcular la matriz de precondicionamiento
Utilizar AMG mediante ML como precondicionador de CG
Utilizar AMG mediante ML como precondicionador de CG y MUMPS como solver de malla gruesa (para problemas difíciles)
Utilizar AMG mediante ML como precondicionador de CG y un ciclo W como ciclo multigrid (para problemas difíciles)
Utilizar AMG mediante ML como precondicionador de CG, MUMPS como solver de malla gruesa y establecer el número máximo de niveles en 2 (para problemas muy difíciles)