Saltar a contenido

!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 **

(2.ª línea) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(3.ª línea) RESID, SIGMA_DIAG, SIGMA
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

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

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

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

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

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

Utilizar AMG mediante ML como precondicionador de CG

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

Utilizar AMG mediante ML como precondicionador de CG y MUMPS como solver de malla gruesa (para problemas difíciles)

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

Utilizar AMG mediante ML como precondicionador de CG y un ciclo W como ciclo multigrid (para problemas difíciles)

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

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)

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