!SOLVER¶
Risinātāja vadība
Obligāti vadības dati.
Parametri¶
METHOD = Risināšanas metode (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Tiešā metode, izņemot kontakta analīzi (tikai secīga apstrāde) (pašlaik nav pieejama)
DIRECTmkl : Tiešā metode, izmantojot Intel MKL
MUMPS : Tiešā metode, izmantojot MUMPS
Izvēloties tiešo metodi, datu rindas tiek ignorētas.
Iteratīvajām metodēm 3 brīvības pakāpju uzdevumos ir pieejama pavedienu paralelizācija ar OpenMP
PRECOND = Iteratīvās metodes priekšnosacīšanas metode (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Block) SSOR (ar daudzkrāsu kārtošanu tikai 3 brīvības pakāpju uzdevumiem)
3 : (Block) Diagonal Scaling
5 : AMG, izmantojot daudzrežģu priekšnosacīšanas pakotni ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : AMG ar HEC-MW iebūvēto SA-AMG (Smoothed Aggregation AMG)
10, 11, 12 ir pieejami tikai 3 brīvības pakāpju uzdevumiem
22 ir pieejams tikai būvējumos ar iespējotu LAPACK
OpenMP pavedienu paralēlajai izpildei ieteicams SSOR, diagonālā mērogošana, ML vai SA-AMG
ITERLOG = Vai izvadīt iteratīvā risinātāja konverģences vēsturi (YES/NO)(noklusējums: NO)
TIMELOG = Vai izvadīt risinātāja aprēķina laiku (YES/NO/VERBOSE)(noklusējums: NO)
LOGLEVEL = Priekšnosacīšanas diagnostikas informācijas izvades līmenis (vesels skaitlis)(noklusējums: bez izvades)
Norāda neatkarīgi no ITERLOG un TIMELOG
Ja vērtība ir 1 vai lielāka, tiek izvadīta, cita starpā, AMG priekšnosacīšanas hierarhijas uzbūve (PRECOND=5, 22)
Ja vērtība ir 2 vai lielāka, tiek izvadīta papildu detalizēta informācija (piemēram, atmiņas lietojums)
USEJAD = Vai izmantot kārtošanu vektoru datoriem (YES/NO)(noklusējums: NO)
Derīgs tikai tad, ja 3 brīvības pakāpju uzdevumā tiek izmantota iteratīvā metode
SCALING = Vai mērogot matricu tā, lai diagonāles elementi būtu 1 (YES/NO)(noklusējums: NO)
Derīgs tikai tad, ja 3 brīvības pakāpju uzdevumā tiek izmantota iteratīvā metode
DUMPTYPE = Matricas izmetes formāts (NONE, MM, CSR, BSR) (galvenokārt atkļūdošanai)
NONE : Neveikt izmeti (noklusējums)
MM : Matrix Market formāts
CSR : Compressed Sparse Row (CSR) formāts
BSR : Blocked CSR formāts
DUMPEXIT = Pabeigt programmu uzreiz pēc matricas izmetes (YES/NO)(noklusējums: NO)
MPCMETHOD = Daudzpunktu ierobežojumu apstrādes metode (1, 3)
1: Soda metode (noklusējums, izmantojot tiešo metodi)
3: Eksplicīta brīvības pakāpju eliminēšana (noklusējums, izmantojot iteratīvo metodi)
MPC-CG metode (2) ir noņemta. Ja norāda 2, tiek izvadīts brīdinājums un izmantota noklusējuma metode.
ESTCOND = Nosacījuma skaitļa novērtēšanas biežums (eksperimentāls)
Nosacījuma skaitlis tiek novērtēts ik pēc norādītā iterāciju skaita un iterāciju beigās
Ja norādīts 0, novērtēšana netiek veikta
RECOMPUTE_RESIDUAL = Atlikuma vektora pārrēķināšanas biežums
Derīgs tikai tad, ja METHOD ir norādīts CG, BiCGSTAB, GPBiCG vai PipeCG
Iteratīvās metodes atjaunina atlikuma vektoru ar rekurentu sakarību, tāpēc uzkrājas noapaļošanas kļūdas
Katrā norādītajā iterāciju intervālā atlikuma vektors tiek pārrēķināts no {b}-[A]{x}
Ja norādīts 0, tiek izmantota katras metodes noklusējuma vērtība (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Ja norādīta negatīva vērtība, periodiska pārrēķināšana netiek veikta
Pārrēķināšana konverģences kritērija izpildes apstiprināšanai vienmēr tiek veikta neatkarīgi no šī iestatījuma
Ja periods ir pārāk īss, palielinās ne tikai matricas-vektora reizinājumu skaits
bet var pasliktināties pati konverģence vai konverģence var tikt zaudēta
Ja maināt noklusējuma vērtību, pārbaudiet konverģences vēsturi un galīgo relatīvo atlikumu
METHOD2 = Otrā risināšanas metode (BiCGSTAB, GMRES, GPBiCG) (eksperimentāls)
Derīgs tikai tad, ja METHOD norādīts CG
Ja CG diverģē, automātiski pārslēdzas uz otro metodi un turpina risināšanu
Pārējiem parametriem un datu rindām izmanto tās pašas vērtības
CONTACT_ELIM = Norāda, vai kontakta analīzē veikt brīvības pakāpju eliminēšanu (0,1)
0: Veikt brīvības pakāpju eliminēšanu tikai ar iteratīvo metodi (noklusējums)
1: Vienmēr veikt brīvības pakāpju eliminēšanu (arī izmantojot tiešo metodi)
** Sākot ar 2. rindu **
| Mainīgā nosaukums | Atribūts | Apraksts |
|---|---|---|
| NITER | I | Iterāciju skaits (noklusējums: 100) |
| iterPREmax | I | aditīvās Švarca priekšnosacīšanas atkārtojumu skaits (noklusējums: 1) (ieteicamā vērtība ir 1; paralēlajos aprēķinos dažkārt efektīva ir 2) |
| NREST | I | Krilova apakštelpas izmērs (noklusējums: 10) (derīgs tikai tad, ja par risināšanas metodi izvēlēts GMRES) |
| NCOLOR_IN | I | Mērķa krāsu skaits daudzkrāsu kārtošanā (noklusējums: 10) (derīgs tikai tad, ja OpenMP pavedienu skaits ir vismaz 2) |
| RECYCLEPRE | I | Priekšnosacītāja iestatīšanas informācijas atkārtotas izmantošanas reižu skaits (noklusējums: 3) (derīgs tikai nelineārā analīzē) |
| Mainīgā nosaukums | Atribūts | Apraksts |
|---|---|---|
| RESID | R | Pārtraukšanas kļūda (noklusējuma vērtība: 1.0e-8) |
| SIGMA_DIAG | R | Reizinātājs, ko piemēro diagonāles elementiem, aprēķinot priekšnosacīšanas matricu (noklusējuma vērtība: 1.0) (ja ar ILU priekšnosacīšanu rodas dalīšana ar nulli vai diverģence, uzdevumu dažkārt var atrisināt, norādot vērtību, kas lielāka par 1.0) |
| SIGMA | R | Netiek izmantots (noklusējuma vērtība: 0.0) |
Ja PRECOND=5 (neobligāti)¶
Ja PRECOND ir iestatīta vērtība, kas nav 5 vai 22, 4. rinda tiek ignorēta.
| Mainīgā nosaukums | Atribūts | Apraksts |
|---|---|---|
| ML_CoarseSolver | I | ML rupjā režģa risinātājs (1: aizstāt ar izlīdzinātāju, 2: KLU (secīga tiešā metode), 3: MUMPS (paralēla tiešā metode)) (noklusējuma vērtība: 1) (ieteicams: 3 vai 2 grūti risināmiem uzdevumiem, 1 parastiem uzdevumiem) |
| ML_Smoother | I | ML izlīdzinātājs (1: Čebiševa, 2: SymBlockGaussSeidel, 3: Jakobi) (noklusējuma vērtība: 1) (ieteicamā vērtība ir 1) |
| ML_MGCycle | I | ML daudzrežģu cikls (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (noklusējuma vērtība: 1) (ieteicams: 2 grūti risināmiem uzdevumiem, 1 parastiem uzdevumiem) |
| ML_MaxLevels | I | ML maksimālais līmeņu skaits (noklusējuma vērtība: 10) (īpaši grūti risināmiem uzdevumiem ieteicams izmantot tiešo metodi kā rupjā režģa risinātāju un 2 (vai 3, ja nepietiek atmiņas); parastiem uzdevumiem 10) |
| ML_CoarseningScheme | I | ML rupjināšanas shēma (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (noklusējuma vērtība: 1) (ieteicamā vērtība ir 1 vai 5) |
| ML_NumSweep | I | ML izlīdzinātāja pārgājienu skaits (Čebiševa gadījumā polinoma pakāpe) (noklusējuma vērtība: 2) (ieteicams: 2 Čebiševa gadījumā, 1 SymBlockGaussSeidel gadījumā) |
Ja PRECOND=22 (neobligāti)¶
Ja PRECOND ir iestatīta vērtība, kas nav 22, 5. rinda tiek ignorēta. Gan 4., gan 5. rindu var pilnībā izlaist, un var izlaist arī katras rindas beigu elementus. Katram elementam, kas norādīts kā 0, tiek izmantota noklusējuma vērtība.
Ceturtās rindas elementi no 1 līdz 7 ir tādā pašā secībā kā PRECOND=5 (ML) opciju rindā, tādēļ ML opciju rindu var izmantot atkārtoti bez izmaiņām. Elementi no 8 līdz 10 ir raksturīgi SA-AMG.
(4. rinda) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (netiek izmantots), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (netiek izmantots)
| Mainīgā nosaukums | Atribūts | Apraksts |
|---|---|---|
| SA_CoarseSolver | I | Rupjā režģa risinātājs (0: automātiski, 1: izmantot izlīdzinātāju, 2: blīvas matricas tiešā metode, 3: MUMPS (paralēlā tiešā metode)) (noklusējuma vērtība: 0) (Automātiskajā režīmā MUMPS izmanto būvējumos ar iespējotu MUMPS; pretējā gadījumā izmanto blīvas matricas tiešo metodi) |
| SA_Smoother | I | Izlīdzinātājs (0 vai 1: Čebiševa) (noklusējuma vērtība: 0) (Tiek atbalstīts tikai Čebiševa. Ja norādīta cita vērtība, tiek izvadīts brīdinājums un izmantots Čebiševa) |
| SA_MGCycle | I | Daudzrežģu cikls (0: noklusējums (W-cikls), 1: V-cikls, 2: W-cikls) (noklusējuma vērtība: 0) (Pilns V-cikls netiek atbalstīts) |
| SA_MaxLevels | I | Maksimālais līmeņu skaits (noklusējuma vērtība: 20) |
| (netiek izmantots) | I | Pozīcija, kas atbilst ML rupjināšanas shēmai. Tā kā SA-AMG vienmēr izmanto nesaistītu agregāciju, vērtība, kas nav 0, izraisa brīdinājumu un tiek ignorēta |
| SA_ChebyDegree | I | Čebiševa izlīdzinātāja polinoma pakāpe (noklusējuma vērtība: 2) |
| SA_CoarseSize | I | Rupjā režģa nogriešanas izmērs (noklusējuma vērtība: 50000, ja MUMPS izmanto kā rupjā režģa risinātāju; pretējā gadījumā 100) |
| SA_MaxAggSize | I | Maksimālais agregāta izmērs (noklusējuma vērtība: 96) |
| SA_GalerkinLowMem | I | Rupjā režģa matricas aprēķina metode (0: parasta (priekšroka ātrumam), pozitīva vērtība: atmiņas taupīšana) (noklusējuma vērtība: 0) (Norādiet pozitīvu vērtību, ja iestatīšanas laikā nepietiek atmiņas) |
| (netiek izmantots) | I | Rezervēts turpmākiem paplašinājumiem |
Piektā rinda ir paredzēta tikai SA-AMG, un ML to nelasa.
(5. rinda) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Mainīgā nosaukums | Atribūts | Apraksts |
|---|---|---|
| SA_Theta | R | Slieksnis stipru savienojumu noteikšanai (noklusējuma vērtība: 0.0) (Ja vērtība ir 0.0, matricas nenulles struktūra tiek izmantota tieši kā grafs) |
| SA_ChebyAlpha | R | Attiecība, kas nosaka Čebiševa izlīdzinātāja mērķa īpašvērtību intervāla apakšējo robežu (noklusējuma vērtība: 20.0) |
| SA_Safety | R | Drošības koeficients, ko piemēro novērtētajai maksimālajai īpašvērtībai (noklusējuma vērtība: 1.1) |
| SA_TaperK | R | Rupjināšanas pakāpeniskuma koeficients K (noklusējuma vērtība: 100) (Sākot ar 2. līmeni, rupjināšana tiek veikta pakāpeniskāk, lai paliktu vismaz aptuveni K agregāti. Negatīva vērtība pakāpeniskumu atspējo) |
| SA_AggOrder | R | Agregācijas pārmeklēšanas secība (0: noklusējums (BFS secība), 1: BFS secība, 2: mezglu numuru jaucējsecība (eksperimentāli), 3: pakāpes augoša secība (eksperimentāli), 4: pakāpes dilstoša secība (eksperimentāli), negatīva vērtība: mezglu numuru secība) (noklusējuma vērtība: 0) |
| SA_MinAggSize | R | Minimālais agregāta izmērs (noklusējuma vērtība: 3) |
| SA_Verify | R | Vai iestatīšanas laikā veikt pašpārbaudi (0: nē, pozitīva vērtība: jā) (noklusējuma vērtība: 0) (galvenokārt atkļūdošanai) |
| SA_DumpVTK | R | Vai izvadīt augstākā līmeņa agregāciju VTK formātā (0: bez izvades, pozitīva vērtība: izvadīt) (noklusējuma vērtība: 0) (galvenokārt atkļūdošanai) |
Lietošanas piemērs¶
Izmantot CG metodi ar SSOR priekšnosacīšanu, iestatot maksimālo iterāciju skaitu 10000 un pārtraukšanas kļūdu 1.0e-8
Izmantot GMRES metodi ar SSOR priekšnosacīšanu, iestatot Krilova apakštelpas izmēru 40 un daudzkrāsu kārtošanas mērķa krāsu skaitu 100
Izmantot CG metodi ar ILU(0) priekšnosacīšanu un iestatīt reizinātāju, ko priekšnosacīšanas matricas aprēķinā piemēro diagonāles elementiem, uz 1.1
CG metodes priekšnosacīšanai izmantot AMG metodi ar ML
CG metodes priekšnosacīšanai izmantot AMG metodi ar ML un par rupjā režģa risinātāju izmantot MUMPS (grūti risināmiem uzdevumiem)
CG metodes priekšnosacīšanai izmantot AMG metodi ar ML un daudzrežģu ciklam izmantot W-cycle (grūti risināmiem uzdevumiem)
CG metodes priekšnosacīšanai izmantot AMG metodi ar ML, par rupjā režģa risinātāju izmantot MUMPS un maksimālo līmeņu skaitu iestatīt uz 2 (ļoti grūti risināmiem uzdevumiem)
Izmantojiet HEC-MW iebūvēto SA-AMG kā CG priekšnosacītāju
Izmantojiet SA-AMG kā CG priekšnosacītāju un MUMPS kā rupjā režģa risinātāju
Berzes kontakta analīzē izmantojiet BiCGSTAB ar SA-AMG priekšnosacīšanu un izvadiet AMG priekšnosacītāja hierarhijas uzbūvi