!SOLVER¶
Kontrolli i zgjidhësit
Të dhëna kontrolli të detyrueshme.
Parametrat¶
METHOD = Metoda e zgjidhjes (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Metodë direkte përveç analizës së kontaktit (vetëm përpunim serial) (aktualisht e padisponueshme)
DIRECTmkl : Metodë direkte duke përdorur Intel MKL
MUMPS : Metodë direkte duke përdorur MUMPS
Kur zgjidhet një metodë direkte, rreshtat e të dhënave shpërfillen.
Metodat iterative për probleme me 3 DOF mbështesin ekzekutim paralel me fije përmes OpenMP
PRECOND = Metoda e parakushtëzimit për zgjidhësit iterativë (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : SSOR (bllok) (me renditje shumëngjyrëshe vetëm për probleme me 3 DOF)
3 : Shkallëzim diagonal (bllok)
5 : AMG duke përdorur paketën e parakushtëzimit multigrid ML
10 : ILU(0) në bllok
11 : ILU(1) në bllok
12 : ILU(2) në bllok
22 : AMG duke përdorur SA-AMG të integruar në HEC-MW (AMG me agregim të zbutur)
10, 11 dhe 12 janë të disponueshme vetëm për probleme me 3 DOF
22 është i disponueshëm vetëm në kompilime me LAPACK të aktivizuar
Për ekzekutim paralel me fije OpenMP rekomandohet SSOR, shkallëzim diagonal, ML ose SA-AMG
ITERLOG = Nëse do të nxirret historia e konvergjencës së zgjidhësit iterativ (YES/NO)(Vlera e parazgjedhur: NO)
TIMELOG = Nëse do të nxirret koha e llogaritjes së zgjidhësit (YES/NO/VERBOSE)(Vlera e parazgjedhur: NO)
LOGLEVEL = Niveli i daljes së informacionit diagnostik të parakushtëzuesit (numër i plotë)(Vlera e parazgjedhur: pa dalje)
Përcaktohet në mënyrë të pavarur nga ITERLOG dhe TIMELOG
Me 1 ose më shumë, nxirren ndërtimi i hierarkisë dhe informacione të tjera për parakushtëzuesit AMG (PRECOND=5,22)
Me 2 ose më shumë, nxirren informacione më të hollësishme (si përdorimi i memories)
USEJAD = Nëse do të përdoret renditja për procesorë vektorialë (YES/NO)(Vlera e parazgjedhur: NO)
E vlefshme vetëm kur përdoret një metodë iterative për një problem me 3 DOF
SCALING = Nëse matrica do të shkallëzohet në mënyrë që elementet diagonale të jenë 1 (YES/NO)(Vlera e parazgjedhur: NO)
E vlefshme vetëm kur përdoret një metodë iterative për një problem me 3 DOF
DUMPTYPE = Formati i dump-it të matricës (NONE, MM, CSR, BSR) (kryesisht për debug)
NONE : Mos bëj dump (Vlera e parazgjedhur)
MM : Formati Matrix Market
CSR : Formati Compressed Sparse Row (CSR)
BSR : Formati CSR me blloqe
DUMPEXIT = Përfundo programin menjëherë pas dump-it të matricës (YES/NO)(Vlera e parazgjedhur: NO)
MPCMETHOD = Metoda për trajtimin e kufizimeve me shumë pika (1, 3)
1: Metoda e penalitetit (vlera e parazgjedhur kur përdoret një metodë direkte)
3: Eliminim eksplicit i DOF (vlera e parazgjedhur kur përdoret një metodë iterative)
Metoda MPC-CG, që mund të zgjidhej më parë, është hequr; nëse specifikohet 2, shfaqet një paralajmërim dhe përdoret metoda përkatëse e parazgjedhur.
ESTCOND = Frekuenca e vlerësimit të numrit të kushtëzimit (eksperimentale)
Vlerëso numrin e kushtëzimit në çdo interval të përcaktuar iteracionesh dhe në fund të iteracioneve
Nuk bëhet vlerësim kur përcaktohet 0
RECOMPUTE_RESIDUAL = Frekuenca e rillogaritjes së vektorit të mbetjes
Vlen vetëm kur në METHOD është specifikuar CG, BiCGSTAB, GPBiCG ose PipeCG
Metodat iterative e përditësojnë vektorin e mbetjes me një relacion rekurent, prandaj grumbullohen gabimet e rrumbullakimit
Në çdo interval të specifikuar iteracionesh, vektori i mbetjes rillogaritet nga {b}-[A]{x}
Kur vlera është 0, përdoret vlera e parazgjedhur për secilën metodë (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Kur specifikohet një vlerë negative, nuk kryhet rillogaritje periodike
Rillogaritja për verifikim kur plotësohet kriteri i konvergjencës kryhet gjithmonë, pavarësisht këtij përcaktimi
Një periudhë tepër e shkurtër jo vetëm që rrit numrin e produkteve matricë-vektor
por mund të përkeqësojë vetë konvergjencën ose ta pengojë atë
Nëse ndryshohet vlera e parazgjedhur, kontrolloni historikun e konvergjencës dhe mbetjen relative përfundimtare
METHOD2 = Metoda e 2-të e zgjidhjes (BiCGSTAB, GMRES, GPBiCG) (eksperimentale)
E vlefshme vetëm kur për METHOD përcaktohet CG
Nëse CG divergon, kalon automatikisht te metoda dytësore dhe vazhdon zgjidhjen
Për parametrat dhe rreshtat e tjerë të të dhënave përdoren të njëjtat vlera
CONTACT_ELIM = Përcakton nëse kryhet eliminim i DOF në analizën e kontaktit (0,1)
0: Kryej eliminim të DOF vetëm kur përdoret një metodë iterative (vlera e parazgjedhur)
1: Kryej gjithmonë eliminim të DOF (edhe kur përdoret një metodë direkte)
** Rreshti i 2-të e në vazhdim **
| Ndryshorja | Atributi | Përshkrimi |
|---|---|---|
| NITER | I | Numri i iteracioneve (vlera e parazgjedhur: 100) |
| iterPREmax | I | Numri i iteracioneve të parakushtëzimit Additive Schwarz (vlera e parazgjedhur: 1) (Vlera e rekomanduar: 1; 2 mund të jetë efektive në disa llogaritje paralele) |
| NREST | I | Numri i nën-hapësirave Krylov (vlera e parazgjedhur: 10) (E vlefshme vetëm kur GMRES zgjidhet si metodë zgjidhjeje) |
| NCOLOR_IN | I | Numri objektiv i ngjyrave për renditjen shumëngjyrëshe (vlera e parazgjedhur: 10) (E vlefshme vetëm kur numri i fijeve OpenMP është 2 ose më shumë) |
| RECYCLEPRE | I | Numri i herëve që ripërdoret informacioni i konfigurimit të parakushtëzuesit (vlera e parazgjedhur: 3) (E vlefshme vetëm në analizën jolineare) |
| Ndryshorja | Atributi | Përshkrimi |
|---|---|---|
| RESID | R | Pragu i konvergjencës (vlera e parazgjedhur: 1.0e-8) |
| SIGMA_DIAG | R | Faktori i shkallëzimit që zbatohet në elementet diagonale gjatë llogaritjes së matricës së parakushtëzimit (vlera e parazgjedhur: 1.0) (Nëse me parakushtëzimin ILU ndodh pjesëtim me zero ose divergjencë, problemi mund të konvergojë kur përcaktohet një vlerë më e madhe se 1.0) |
| SIGMA | R | I papërdorur (vlera e parazgjedhur: 0.0) |
Kur PRECOND=5 (opsionale)¶
Nëse PRECOND vendoset në një vlerë tjetër nga 5 ose 22, rreshti i katërt shpërfillet.
(rreshti i 4-t) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Ndryshorja | Atributi | Përshkrimi |
|---|---|---|
| ML_CoarseSolver | I | Zgjidhësi i rrjetës së trashë për ML (1: përdor lëmuesin, 2: KLU (metodë direkte seriale), 3: MUMPS (metodë direkte paralele)) (vlera e parazgjedhur: 1) (Rekomandohet: 3 ose 2 për probleme të vështira, 1 për probleme të zakonshme) |
| ML_Smoother | I | Lëmuesi i ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (vlera e parazgjedhur: 1) (Rekomandohet: 1) |
| ML_MGCycle | I | Cikli multigrid i ML (1: cikël V, 2: cikël W, 3: cikël Full-V) (vlera e parazgjedhur: 1) (Rekomandohet: 2 për probleme të vështira, 1 për probleme të zakonshme) |
| ML_MaxLevels | I | Numri maksimal i niveleve ML (vlera e parazgjedhur: 10) (Për probleme veçanërisht të vështira, përdorni një zgjidhës direkt për nivelin e trashë dhe 2 nivele (ose 3 nëse memoria nuk mjafton); për probleme të zakonshme rekomandohet 10) |
| ML_CoarseningScheme | I | Skema e trashjes së ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (vlera e parazgjedhur: 1) (Rekomandohet: 1 ose 5) |
| ML_NumSweep | I | Numri i kalimeve të lëmuesit ML (shkalla e polinomit për Chebyshev) (vlera e parazgjedhur: 2) (Rekomandohet: 2 për Chebyshev, 1 për SymBlockGaussSeidel) |
Kur PRECOND=22 (opsionale)¶
Nëse PRECOND vendoset në një vlerë tjetër nga 22, rreshti i pestë shpërfillet. Rreshti i katërt dhe i pestë mund të hiqen secili plotësisht, dhe mund të hiqen edhe elementet fundore të secilit rresht. Për çdo element të vendosur në 0 përdoret vlera e parazgjedhur.
Elementet 1 deri në 7 të rreshtit të katërt janë renditur në të njëjtën mënyrë si rreshti i opsioneve për PRECOND=5 (ML), prandaj rreshti i opsioneve të ML mund të ripërdoret pa ndryshim. Elementet 8 deri në 10 janë specifike për SA-AMG.
(rreshti i 4-t) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (e papërdorur), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (e papërdorur)
| Ndryshorja | Atributi | Përshkrimi |
|---|---|---|
| SA_CoarseSolver | I | Zgjidhësi i rrjetës së trashë (0: automatik, 1: përdor lëmuesin, 2: metodë direkte me matricë të dendur, 3: MUMPS (metodë direkte paralele)) (Vlera e parazgjedhur: 0) (Në modalitetin automatik, MUMPS përdoret në kompilimet ku MUMPS është aktivizuar; përndryshe përdoret metoda direkte me matricë të dendur) |
| SA_Smoother | I | Lëmuesi (0, 1: Chebyshev) (Vlera e parazgjedhur: 0) (Mbështetet vetëm Chebyshev. Nëse përcaktohet një vlerë tjetër, jepet një paralajmërim dhe përdoret Chebyshev) |
| SA_MGCycle | I | Cikli multigrid (0: parazgjedhja (W-cycle), 1: V-cycle, 2: W-cycle) (Vlera e parazgjedhur: 0) (Full-V-cycle nuk mbështetet) |
| SA_MaxLevels | I | Numri maksimal i niveleve (Vlera e parazgjedhur: 20) |
| (e papërdorur) | I | Pozicioni që i korrespondon skemës së trashimit të ML. Meqë SA-AMG përdor gjithmonë agregim të palidhur, një vlerë tjetër nga 0 jep paralajmërim dhe shpërfillet |
| SA_ChebyDegree | I | Shkalla e polinomit të lëmuesit Chebyshev (Vlera e parazgjedhur: 2) |
| SA_CoarseSize | I | Madhësia kufi e rrjetës së trashë (Vlera e parazgjedhur: 50000 kur MUMPS përdoret si zgjidhës i rrjetës së trashë; përndryshe 100) |
| SA_MaxAggSize | I | Madhësia maksimale e agregatit (Vlera e parazgjedhur: 96) |
| SA_GalerkinLowMem | I | Metoda e llogaritjes së matricës së rrjetës së trashë (0: normale (i jep përparësi shpejtësisë), vlerë pozitive: kursim memorieje) (Vlera e parazgjedhur: 0) (Përcaktoni një vlerë pozitive nëse memoria është e pamjaftueshme gjatë konfigurimit) |
| (e papërdorur) | I | Rezervuar për zgjerime të ardhshme |
Rreshti i pestë është specifik për SA-AMG dhe nuk lexohet nga ML.
(rreshti i 5-të) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Ndryshorja | Atributi | Përshkrimi |
|---|---|---|
| SA_Theta | R | Pragu për përcaktimin e lidhjeve të forta (Vlera e parazgjedhur: 0.0) (Me 0.0, struktura jo zero e matricës përdoret drejtpërdrejt si graf) |
| SA_ChebyAlpha | R | Raporti që përcakton kufirin e poshtëm të intervalit të vlerave vetjake që synon lëmuesi Chebyshev (Vlera e parazgjedhur: 20.0) |
| SA_Safety | R | Faktori i sigurisë i zbatuar mbi vlerësimin e vlerës vetjake maksimale (Vlera e parazgjedhur: 1.1) |
| SA_TaperK | R | Koeficienti K i zbutjes së trashimit (Vlera e parazgjedhur: 100) (Nga niveli 2 e tutje, trashimi bëhet më gradual që të mbeten të paktën afërsisht K agregate. Një vlerë negative çaktivizon zbutjen e trashimit) |
| SA_AggOrder | R | Rendi i përshkimit të agregimit (0: parazgjedhja (rendi BFS), 1: rendi BFS, 2: rendi hash i numrave të nyjeve (eksperimental), 3: rendi rritës i gradës (eksperimental), 4: rendi zbritës i gradës (eksperimental), vlerë negative: rendi i numrave të nyjeve) (Vlera e parazgjedhur: 0) |
| SA_MinAggSize | R | Madhësia minimale e agregatit (Vlera e parazgjedhur: 3) |
| SA_Verify | R | Nëse do të kryhet vetëkontroll gjatë konfigurimit (0: jo, vlerë pozitive: po) (Vlera e parazgjedhur: 0) (kryesisht për diagnostikim) |
| SA_DumpVTK | R | Nëse agregimi i nivelit më të lartë do të nxirret në formatin VTK (0: pa dalje, vlerë pozitive: dalje) (Vlera e parazgjedhur: 0) (kryesisht për diagnostikim) |
Shembuj¶
Përdorni CG me parakushtëzim SSOR dhe vendosni numrin maksimal të iteracioneve në 10000 dhe pragun e konvergjencës në 1.0e-8
Përdorni GMRES me parakushtëzim SSOR dhe vendosni numrin e nën-hapësirave Krylov në 40 dhe numrin objektiv të ngjyrave për renditjen shumëngjyrëshe në 100
Përdorni CG me parakushtëzim ILU(0) dhe vendosni faktorin e shkallëzimit që zbatohet në elementet diagonale gjatë llogaritjes së matricës së parakushtëzimit në 1.1
Përdorni AMG nga ML si parakushtëzues për CG
Përdorni AMG nga ML si parakushtëzues për CG dhe MUMPS si zgjidhës të rrjetës së trashë (për probleme të vështira)
Përdorni AMG nga ML si parakushtëzues për CG dhe ciklin W si cikël multigrid (për probleme të vështira)
Përdorni AMG nga ML si parakushtëzues për CG, MUMPS si zgjidhës të rrjetës së trashë dhe vendosni numrin maksimal të niveleve në 2 (për probleme shumë të vështira)
Përdorni SA-AMG të integruar në HEC-MW si parakushtëzues për CG
Përdorni SA-AMG si parakushtëzues për CG dhe MUMPS si zgjidhës të rrjetës së trashë
Në analizën e kontaktit me fërkim, përdorni BiCGSTAB me parakushtëzim SA-AMG dhe nxirrni hierarkinë e parakushtëzuesit AMG