Translation update pending
The Italian translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
!SOLVER¶
Controllo del solver
Dati di controllo obbligatori.
Parametri¶
METHOD = Metodo di soluzione (CG, BiCGSTAB, GMRES, GPBiCG, CR,PipeCG,GroppCG,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 supportano il parallelismo a thread con OpenMP
PRECOND = Metodo di precondizionamento per solver iterativi (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : SSOR (a blocchi) (con ordinamento multicolore)
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
22 : AMG mediante il SA-AMG integrato in HEC-MW (AMG ad aggregazione smussata)
10, 11 e 12 sono disponibili solo per problemi a 3 gradi di libertà
22 è disponibile solo nelle build con LAPACK abilitato
Per il parallelismo a thread con OpenMP sono consigliati SSOR, Diagonal Scaling, ML, SA-AMG,
oppure Block ILU (10, 11, 12) per problemi con 3 gradi di libertà
ITERLOG = Specifica se emettere la cronologia di convergenza del solver iterativo (YES/NO)(Predefinito: NO)
TIMELOG = Specifica se emettere il tempo di calcolo del solver (YES/NO/VERBOSE)(Predefinito: NO)
LOGLEVEL = Livello di output delle informazioni diagnostiche del precondizionatore (intero)(Predefinito: nessun output)
Specificato indipendentemente da ITERLOG e TIMELOG
Con un valore pari o superiore a 1, emette la costruzione della gerarchia e altre informazioni sui precondizionatori AMG (PRECOND=5,22)
Con un valore pari o superiore a 2, emette informazioni più dettagliate (ad esempio l'uso della memoria)
USEJAD = Specifica se utilizzare l'ordinamento per processori vettoriali (YES/NO)(Predefinito: NO)
Valido solo quando si utilizza un metodo iterativo
SCALING = Specifica se scalare la matrice in modo che gli elementi diagonali siano pari a 1 (YES/NO)(Predefinito: 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 (Predefinito)
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)(Predefinito: NO)
MPCMETHOD = Metodo di gestione dei vincoli multipunto (1, 3)
1: Metodo della penalità (Predefinito quando si usa un metodo diretto)
3: Eliminazione esplicita dei gradi di libertà (Predefinito quando si usa un metodo iterativo)
Il metodo MPC-CG (2) è stato rimosso. Se si specifica 2, viene emesso un avviso e si utilizza il metodo predefinito.
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
RECOMPUTE_RESIDUAL = Frequenza di ricalcolo del vettore dei residui
Valido solo quando per METHOD è specificato CG, BiCGSTAB, GPBiCG o PipeCG
Il periodo di ricalcolo di GroppCG è fissato a 50 e questa impostazione non viene utilizzata
I metodi iterativi aggiornano il vettore dei residui mediante una relazione di ricorrenza, accumulando errori di arrotondamento
A ogni intervallo di iterazioni specificato, il vettore dei residui viene ricalcolato da {b}-[A]{x}
Quando viene specificato 0, si usa il valore predefinito di ciascun metodo (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Quando viene specificato un valore negativo, non viene eseguito alcun ricalcolo periodico
Il ricalcolo per confermare la convergenza quando il criterio di convergenza è soddisfatto viene sempre eseguito, indipendentemente da questo parametro
Un intervallo troppo breve non solo aumenta il numero di prodotti matrice-vettore,
ma può anche peggiorare la convergenza stessa o persino impedirne il raggiungimento
Se si modifica il valore predefinito, verificare la cronologia di convergenza e il residuo relativo finale
METHOD2 = Metodo di soluzione secondario (BiCGSTAB, GMRES, GPBiCG) (sperimentale)
Valido solo quando per METHOD è specificato CG, PipeCG o GroppCG
Se il metodo specificato da METHOD diverge, viene eseguito automaticamente il passaggio al secondo metodo e la risoluzione prosegue
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 (Predefinito)
1: Esegue sempre l'eliminazione dei gradi di libertà (anche quando si usa un metodo diretto)
** 2ª riga e successive **
| Variabile | Tipo | Descrizione |
|---|---|---|
| NITER | I | Numero di iterazioni (Predefinito: 100) |
| iterPREmax | I | Numero di iterazioni del precondizionamento Additive Schwarz (Predefinito: 1) (Valore raccomandato: 1; 2 può essere efficace in alcuni calcoli paralleli) |
| NREST | I | Dimensione del sottospazio di Krylov (Predefinito: 10) (Valido solo quando GMRES è selezionato come metodo di soluzione) |
| NCOLOR_IN | I | Numero obiettivo di colori per l'ordinamento multicolore (Predefinito: 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 (Predefinito: 3) (Valido solo nell'analisi non lineare) |
| Variabile | Tipo | Descrizione |
|---|---|---|
| RESID | R | Errore di troncamento (Predefinito: 1.0e-8) |
| SIGMA_DIAG | R | Fattore applicato agli elementi diagonali durante il calcolo della matrice di precondizionamento (predefinito: 1.0) (Se con il precondizionamento ILU si verifica una divisione per zero o una divergenza, un valore maggiore di 1.0 può consentire di risolvere il problema) (Valido solo per il precondizionamento ILU e per lo scaling diagonale. Il precondizionamento SSOR utilizza OMEGA.) |
| OMEGA | R | Parametro di rilassamento del precondizionamento SSOR (predefinito: 1.0) (Il valore 1.0 coincide con il precondizionamento SSOR convenzionale) (L’intervallo valido è maggiore di 0 e minore di 2. I valori fuori intervallo e quelli la cui distanza da 0 o 2 è inferiore all’epsilon macchina vengono considerati pari a 1.0.) |
Quando PRECOND=5 (opzionale)¶
Se per PRECOND viene specificato un valore che non sia né 5 né 22, la 4ª riga viene ignorata.
| Variabile | Tipo | Descrizione |
|---|---|---|
| ML_CoarseSolver | I | Solver su griglia grossolana per ML (1: usa lo smoother, 2: KLU (metodo diretto seriale), 3: MUMPS (metodo diretto parallelo)) (Predefinito: 1) (Raccomandato: 3 o 2 per problemi difficili, 1 per problemi ordinari) |
| ML_Smoother | I | Smoother ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Predefinito: 1) (Raccomandato: 1) |
| ML_MGCycle | I | Ciclo multigrid ML (1: ciclo V, 2: ciclo W, 3: ciclo Full-V) (Predefinito: 1) (Raccomandato: 2 per problemi difficili, 1 per problemi ordinari) |
| ML_MaxLevels | I | Numero massimo di livelli ML (Predefinito: 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) (Predefinito: 1) (Raccomandato: 1 o 5) |
| ML_NumSweep | I | Numero di sweep dello smoother ML (grado del polinomio per Chebyshev) (Predefinito: 2) (Raccomandato: 2 per Chebyshev, 1 per SymBlockGaussSeidel) |
Quando PRECOND=22 (opzionale)¶
Se per PRECOND viene specificato un valore diverso da 22, la 5ª riga viene ignorata. La 4ª e la 5ª riga possono essere omesse per intero; è inoltre possibile omettere gli elementi finali di entrambe le righe. Per ogni elemento specificato come 0 viene utilizzato il valore predefinito.
Gli elementi da 1 a 7 della 4ª riga sono disposti nello stesso ordine della riga delle opzioni per PRECOND=5 (ML), quindi la riga delle opzioni ML può essere riutilizzata senza modifiche. Gli elementi da 8 a 10 sono specifici di SA-AMG.
(4ª riga) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (non utilizzato), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (non utilizzato)
| Variabile | Tipo | Descrizione |
|---|---|---|
| SA_CoarseSolver | I | Solver sulla griglia grossolana (0: automatico, 1: usa lo smoother, 2: metodo diretto per matrici dense, 3: MUMPS (metodo diretto parallelo)) (Predefinito: 0) (In modalità automatica, nelle build con MUMPS abilitato viene utilizzato MUMPS; altrimenti viene utilizzato il metodo diretto per matrici dense) |
| SA_Smoother | I | Smoother (0 o 1: Chebyshev) (Predefinito: 0) (È supportato solo Chebyshev. Se viene specificato un altro valore, viene emesso un avviso e viene utilizzato Chebyshev) |
| SA_MGCycle | I | Ciclo multigrid (0: predefinito (ciclo W), 1: ciclo V, 2: ciclo W) (Predefinito: 0) (Il ciclo Full-V non è supportato) |
| SA_MaxLevels | I | Numero massimo di livelli (Predefinito: 20) |
| (non utilizzato) | I | Posizione corrispondente allo schema di coarsening ML. Poiché SA-AMG usa sempre un'aggregazione disaccoppiata, un valore diverso da 0 genera un avviso e viene ignorato |
| SA_ChebyDegree | I | Grado del polinomio dello smoother Chebyshev (Predefinito: 2) |
| SA_CoarseSize | I | Dimensione di soglia della griglia grossolana (Predefinito: 50000 quando MUMPS viene utilizzato come solver sulla griglia grossolana; altrimenti 100) |
| SA_MaxAggSize | I | Dimensione massima dell'aggregato (Predefinito: 96) |
| SA_GalerkinLowMem | I | Metodo di calcolo della matrice della griglia grossolana (0: normale (priorità alla velocità), valore positivo: risparmio di memoria) (Predefinito: 0) (Specificare un valore positivo se la memoria è insufficiente durante la configurazione) |
| (non utilizzato) | I | Riservato per estensioni future |
La 5ª riga è specifica di SA-AMG e non viene letta da ML.
(5ª riga) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Variabile | Tipo | Descrizione |
|---|---|---|
| SA_Theta | R | Soglia per determinare le connessioni forti (Predefinito: 0.0) (Con 0.0, la struttura non nulla della matrice viene utilizzata direttamente come grafo) |
| SA_ChebyAlpha | R | Rapporto che determina il limite inferiore dell'intervallo di autovalori considerato dallo smoother Chebyshev (Predefinito: 20.0) |
| SA_Safety | R | Fattore di sicurezza applicato all'autovalore massimo stimato (Predefinito: 1.1) |
| SA_TaperK | R | Coefficiente K di attenuazione del coarsening (Predefinito: 100) (Dal livello 2 in poi, il coarsening viene reso più graduale in modo che rimangano almeno circa K aggregati. Un valore negativo disabilita l'attenuazione) |
| SA_AggOrder | R | Ordine di attraversamento dell'aggregazione (0: predefinito (ordine BFS), 1: ordine BFS, 2: ordine hash dei numeri dei nodi (sperimentale), 3: ordine crescente del grado (sperimentale), 4: ordine decrescente del grado (sperimentale), valore negativo: ordine per numero di nodo) (Predefinito: 0) |
| SA_MinAggSize | R | Dimensione minima dell'aggregato (Predefinito: 3) |
| SA_Verify | R | Se eseguire un'autoverifica durante la configurazione (0: no, valore positivo: sì) (Predefinito: 0) (principalmente per il debug) |
| SA_DumpVTK | R | Se emettere l'aggregazione del livello più alto in formato VTK (0: nessun output, valore positivo: output) (Predefinito: 0) (principalmente per il debug) |
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 la dimensione del sottospazio 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)
Usare il SA-AMG integrato in HEC-MW come precondizionatore per CG
Usare SA-AMG come precondizionatore per CG e MUMPS come solver sulla griglia grossolana
Per l'analisi di contatto con attrito, usare BiCGSTAB con precondizionamento SA-AMG ed emettere la gerarchia del precondizionatore AMG