Vai al contenuto

!SOLVER

Controllo del solver

Dati di controllo obbligatori.

Parametri

METHOD =    Metodo di soluzione (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Metodo diretto tranne che per l'analisi di contatto (solo elaborazione seriale) (attualmente non disponibile)
            DIRECTmkl  : Metodo diretto con Intel MKL
            MUMPS      : Metodo diretto con MUMPS
            Quando viene selezionato un metodo diretto, le righe dei dati vengono ignorate.
            I metodi iterativi per problemi a 3 gradi di libertà supportano l'esecuzione parallela a thread con OpenMP

PRECOND =   Metodo di precondizionamento per solver iterativi (1, 2, 3, 5, 10, 11, 12)
            1, 2       : SSOR (a blocchi) (con ordinamento multicolore solo per problemi a 3 gradi di libertà)
            3          : Scaling diagonale (a blocchi)
            5          : AMG mediante il pacchetto di precondizionamento multigrid ML
            10         : ILU(0) a blocchi
            11         : ILU(1) a blocchi
            12         : ILU(2) a blocchi
            10, 11 e 12 sono disponibili solo per problemi a 3 gradi di libertà
            Per l'esecuzione parallela a thread OpenMP sono raccomandati SSOR, scaling diagonale o ML

ITERLOG =   Specifica se emettere la cronologia di convergenza del solver iterativo          (YES/NO)(Default: NO)

TIMELOG =   Specifica se emettere il tempo di calcolo del solver                            (YES/NO/VERBOSE)(Default: NO)

USEJAD =    Specifica se utilizzare l'ordinamento per processori vettoriali                  (YES/NO)(Default: NO)
            Valido solo quando si utilizza un metodo iterativo per un problema a 3 gradi di libertà

SCALING =   Specifica se scalare la matrice in modo che gli elementi diagonali siano pari a 1 (YES/NO)(Default: NO)
            Valido solo quando si utilizza un metodo iterativo per un problema a 3 gradi di libertà

DUMPTYPE =  Formato di dump della matrice (NONE, MM, CSR, BSR) (principalmente per il debug)
            NONE : Non eseguire il dump (Default)
            MM   : Formato Matrix Market
            CSR  : Formato Compressed Sparse Row (CSR)
            BSR  : Formato CSR a blocchi

DUMPEXIT =  Termina immediatamente il programma dopo il dump della matrice                    (YES/NO)(Default: NO)

MPCMETHOD = Metodo di gestione dei vincoli multipunto (1, 2, 3)
            1: Metodo della penalità (Default quando si usa un metodo diretto)
            2: Metodo MPC-CG (Obsoleto)
            3: Eliminazione esplicita dei gradi di libertà (Default quando si usa un metodo iterativo)

ESTCOND =   Frequenza della stima del numero di condizionamento (sperimentale)
            Stima il numero di condizionamento a ciascun intervallo di iterazioni specificato e al termine delle iterazioni
            Se viene specificato 0, non viene eseguita alcuna stima

METHOD2 =   Metodo di soluzione secondario (BiCGSTAB, GMRES, GPBiCG) (sperimentale)
            Valido solo quando per METHOD è specificato CG
            Se CG diverge, passa automaticamente al metodo secondario e continua la soluzione
            Per gli altri parametri e le righe dei dati vengono utilizzati gli stessi valori

CONTACT_ELIM = Specifica se nell'analisi di contatto viene eseguita l'eliminazione dei gradi di libertà (0,1)
               0: Esegue l'eliminazione dei gradi di libertà solo quando si usa un metodo iterativo (Default)
               1: Esegue sempre l'eliminazione dei gradi di libertà (anche quando si usa un metodo diretto)

** 2ª riga e successive **

(2ª riga) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Variabile Attributo Descrizione
NITER I Numero di iterazioni (Default: 100)
iterPREmax I Numero di iterazioni del precondizionamento Additive Schwarz (Default: 1)
(Valore raccomandato: 1; 2 può essere efficace in alcuni calcoli paralleli)
NREST I Numero di sottospazi di Krylov (Default: 10)
(Valido solo quando GMRES è selezionato come metodo di soluzione)
NCOLOR_IN I Numero obiettivo di colori per l'ordinamento multicolore (Default: 10)
(Valido solo quando il numero di thread OpenMP è pari o superiore a 2)
RECYCLEPRE I Numero di volte in cui vengono riutilizzate le informazioni di configurazione del precondizionatore (Default: 3)
(Valido solo nell'analisi non lineare)
(3ª riga) RESID, SIGMA_DIAG, SIGMA
Variabile Attributo Descrizione
RESID R Errore di troncamento (Default: 1.0e-8)
SIGMA_DIAG R Fattore di scala applicato agli elementi diagonali durante il calcolo della matrice di precondizionamento (Default: 1.0)
(Se con il precondizionamento ILU si verifica una divisione per zero o una divergenza, il problema può convergere specificando un valore maggiore di 1.0)
SIGMA R Non utilizzato (Default: 0.0)

Quando PRECOND=5 (opzionale)

Se per PRECOND viene specificato qualsiasi altro valore, la 4ª riga viene ignorata.

(4ª riga) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Variabile Attributo Descrizione
ML_CoarseSolver I Solver su griglia grossolana per ML (1: usa lo smoother, 2: KLU (metodo diretto seriale), 3: MUMPS (metodo diretto parallelo)) (Default: 1)
(Raccomandato: 3 o 2 per problemi difficili, 1 per problemi ordinari)
ML_Smoother I Smoother ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Default: 1)
(Raccomandato: 1)
ML_MGCycle I Ciclo multigrid ML (1: ciclo V, 2: ciclo W, 3: ciclo Full-V) (Default: 1)
(Raccomandato: 2 per problemi difficili, 1 per problemi ordinari)
ML_MaxLevels I Numero massimo di livelli ML (Default: 10)
(Per problemi particolarmente difficili, usare un solver diretto sulla griglia grossolana e 2 livelli (o 3 se la memoria non è sufficiente); per problemi ordinari è raccomandato 10)
ML_CoarseningScheme I Schema di coarsening ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Default: 1)
(Raccomandato: 1 o 5)
ML_NumSweep I Numero di sweep dello smoother ML (grado del polinomio per Chebyshev) (Default: 2)
(Raccomandato: 2 per Chebyshev, 1 per SymBlockGaussSeidel)

Esempi

Usare CG con precondizionamento SSOR e impostare il numero massimo di iterazioni a 10000 e l'errore di troncamento a 1.0e-8

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

Usare GMRES con precondizionamento SSOR e impostare il numero di sottospazi di Krylov a 40 e il numero obiettivo di colori per l'ordinamento multicolore a 100

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

Usare CG con precondizionamento ILU(0) e impostare a 1.1 il fattore di scala applicato agli elementi diagonali durante il calcolo della matrice di precondizionamento

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

Usare AMG mediante ML come precondizionatore per CG

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

Usare AMG mediante ML come precondizionatore per CG e MUMPS come solver sulla griglia grossolana (per problemi difficili)

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

Usare AMG mediante ML come precondizionatore per CG e il ciclo W come ciclo multigrid (per problemi difficili)

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

Usare AMG mediante ML come precondizionatore per CG, MUMPS come solver sulla griglia grossolana e impostare il numero massimo di livelli a 2 (per problemi molto difficili)

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