!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 **
| 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) |
| 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.
| 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
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
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
Usare AMG mediante ML come precondizionatore per CG
Usare AMG mediante ML come precondizionatore per CG e MUMPS come solver sulla griglia grossolana (per problemi difficili)
Usare AMG mediante ML come precondizionatore per CG e il ciclo W come ciclo multigrid (per problemi difficili)
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)