!SOLVER¶
Լուծիչի կառավարում
Պարտադիր կառավարման տվյալներ։
Պարամետրեր¶
METHOD = Լուծման մեթոդ (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Ուղղակի մեթոդ՝ բացի կոնտակտային վերլուծությունից (միայն հաջորդական կատարում) (ներկայում անհասանելի)
DIRECTmkl : Ուղղակի մեթոդ Intel MKL-ով
MUMPS : Ուղղակի մեթոդ MUMPS-ով
Ուղղակի մեթոդ ընտրելիս տվյալների տողերը անտեսվում են։
3 ազատության աստիճանով խնդիրների իտերացիոն մեթոդների համար հասանելի է OpenMP թելային զուգահեռացում
PRECOND = Իտերացիոն մեթոդի նախապայմանավորման եղանակ (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : բլոկային SSOR (3 ազատության աստիճանով խնդիրների համար՝ բազմագույն դասավորմամբ)
3 : բլոկային անկյունագծային մասշտաբավորում
5 : AMG՝ ML բազմացանցային նախապայմանավորման փաթեթով
10 : բլոկային ILU(0)
11 : բլոկային ILU(1)
12 : բլոկային ILU(2)
22 : AMG՝ HEC-MW-ում ներկառուցված SA-AMG-ով (Smoothed Aggregation AMG)
10, 11 և 12 արժեքները հասանելի են միայն 3 ազատության աստիճանով խնդիրների համար
22-ը հասանելի է միայն LAPACK-ը միացված կառուցումներում
OpenMP թելային զուգահեռացման դեպքում խորհուրդ է տրվում SSOR, Diagonal Scaling, ML կամ SA-AMG
ITERLOG = Իտերացիոն լուծիչի զուգամիտության պատմության արտածում (YES/NO)(լռելյայն՝ NO)
TIMELOG = Լուծիչի հաշվարկման ժամանակի արտածում (YES/NO/VERBOSE)(լռելյայն՝ NO)
LOGLEVEL = Նախապայմանավորման ախտորոշիչ տեղեկությունների արտածման մակարդակ (ամբողջ թիվ)(լռելյայն՝ առանց արտածման)
Սահմանվում է ITERLOG-ից և TIMELOG-ից անկախ
1 կամ ավելի արժեքի դեպքում արտածվում են AMG նախապայմանավորիչների (PRECOND=5, 22) հիերարխիայի կառուցվածքը և այլ տեղեկություններ
2 կամ ավելի արժեքի դեպքում արտածվում են նաև ավելի մանրամասն տեղեկություններ (օրինակ՝ հիշողության օգտագործումը)
USEJAD = Վեկտորային մեքենաների համար դասավորման կիրառում (YES/NO)(լռելյայն՝ NO)
Գործում է միայն 3 ազատության աստիճանով խնդիրների իտերացիոն մեթոդների դեպքում
SCALING = Մատրիցի անկյունագծային տարրերը 1 դարձնող մասշտաբավորում (YES/NO)(լռելյայն՝ NO)
Գործում է միայն 3 ազատության աստիճանով խնդիրների իտերացիոն մեթոդների դեպքում
DUMPTYPE = Մատրիցի արտածման ձևաչափ (NONE, MM, CSR, BSR) (հիմնականում վրիպազերծման համար)
NONE : Չարտածել (լռելյայն)
MM : Matrix Market ձևաչափ
CSR : սեղմված նոսր տողային (CSR) ձևաչափ
BSR : բլոկային CSR ձևաչափ
DUMPEXIT = Ծրագրի ավարտը մատրիցի արտածումից անմիջապես հետո (YES/NO)(լռելյայն՝ NO)
MPCMETHOD = Բազմակետ կապանքի պայմանների մշակման եղանակ (1, 3)
1: Տուգանային մեթոդ (ուղղակի մեթոդի դեպքում լռելյայն)
3: Ազատության աստիճանների բացահայտ վերացում (իտերացիոն մեթոդի դեպքում լռելյայն)
Նախկինում հասանելի MPC-CG մեթոդը հեռացվել է. 2 նշելու դեպքում տրվում է նախազգուշացում և կիրառվում է համապատասխան լռելյայն մեթոդը։
ESTCOND = Պայմանավորվածության թվի գնահատման հաճախականություն (փորձարարական)
Գնահատումը կատարվում է նշված կրկնությունների ժամանակ և կրկնությունների ավարտին
0-ի դեպքում գնահատում չի կատարվում
RECOMPUTE_RESIDUAL = Մնացորդային վեկտորի վերահաշվարկման հաճախականությունը
Գործում է միայն այն դեպքում, երբ METHOD-ի համար նշված է CG, BiCGSTAB, GPBiCG կամ PipeCG
Իտերացիոն մեթոդները մնացորդային վեկտորը թարմացնում են ռեկուրենտ բանաձևով, ուստի կուտակվում են կլորացման սխալներ
Նշված յուրաքանչյուր իտերացիոն միջակայքից հետո մնացորդային վեկտորը վերահաշվարկվում է {b}-[A]{x}-ից
Եթե արժեքը 0 է, օգտագործվում է յուրաքանչյուր մեթոդի լռելյայն արժեքը (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Բացասական արժեք նշելու դեպքում պարբերական վերահաշվարկ չի կատարվում
Զուգամիտության չափանիշը բավարարվելիս ստուգման նպատակով վերահաշվարկը միշտ կատարվում է՝ անկախ այս կարգավորումից
Չափազանց կարճ պարբերությունը ոչ միայն մեծացնում է մատրից-վեկտոր արտադրյալների քանակը
այլ կարող է նաև վատացնել զուգամիտությունը կամ ընդհանրապես խոչընդոտել դրան
Լռելյայն արժեքը փոխելու դեպքում ստուգեք զուգամիտության պատմությունը և վերջնական հարաբերական մնացորդը
METHOD2 = Երկրորդ լուծման մեթոդ (BiCGSTAB, GMRES, GPBiCG) (փորձարարական)
Գործում է միայն երբ METHOD=CG
Եթե CG մեթոդը տարամիտում է, ավտոմատ անցում է կատարվում այս մեթոդին
Մնացած պարամետրերը և տվյալների տողերը նույնն են օգտագործվում
CONTACT_ELIM = Կոնտակտային վերլուծության ժամանակ ազատության աստիճանների վերացման կիրառումը (0,1)
0: Վերացում կատարել միայն իտերացիոն մեթոդի դեպքում (լռելյայն)
1: Միշտ կատարել վերացում (նաև ուղղակի մեթոդի դեպքում)
** 2-րդ և հաջորդ տողերը **
| Փոփոխականի անուն | Հատկանիշ | Նկարագրություն |
|---|---|---|
| NITER | I | Կրկնությունների առավելագույն քանակ (լռելյայն՝ 100) |
| iterPREmax | I | Additive Schwarz նախապայմանավորման կրկնությունների քանակը (լռելյայն՝ 1) (խորհուրդ է տրվում 1, զուգահեռ հաշվարկում երբեմն արդյունավետ է 2) |
| NREST | I | Krylov ենթատարածության չափը (լռելյայն՝ 10) (գործում է միայն GMRES լուծման մեթոդի դեպքում) |
| NCOLOR_IN | I | Բազմագույն դասավորման նպատակային գույների քանակը (լռելյայն՝ 10) (գործում է միայն OpenMP-ի 2 կամ ավելի թելի դեպքում) |
| RECYCLEPRE | I | Նախապայմանավորման կարգավորման տեղեկատվության վերօգտագործման քանակը (լռելյայն՝ 3) (գործում է միայն ոչ գծային վերլուծության դեպքում) |
| Փոփոխականի անուն | Հատկանիշ | Նկարագրություն |
|---|---|---|
| RESID | R | Դադարեցման սխալը (լռելյայն արժեք՝ 1.0e-8) |
| SIGMA_DIAG | R | Նախապայմանավորման մատրիցի հաշվարկի ժամանակ անկյունագծային տարրին կիրառվող գործակիցը (լռելյայն արժեք՝ 1.0) (եթե ILU նախապայմանավորման դեպքում առաջանում է բաժանում զրոյի կամ տարամիտում, 1.0-ից մեծ արժեքը երբեմն լուծում է խնդիրը) |
| SIGMA | R | Չի օգտագործվում (լռելյայն արժեք՝ 0.0) |
PRECOND=5 դեպքում (ընտրովի)¶
Եթե PRECOND-ի համար նշված է 5-ից և 22-ից տարբեր արժեք, 4-րդ տողը անտեսվում է։
| Փոփոխականի անուն | Հատկանիշ | Նկարագրություն |
|---|---|---|
| ML_CoarseSolver | I | ML-ի կոպիտ ցանցի լուծիչ (1՝ փոխարինել հարթեցիչով, 2՝ KLU (հաջորդական ուղղակի մեթոդ), 3՝ MUMPS (զուգահեռ ուղղակի մեթոդ)) (լռելյայն՝ 1) (դժվար լուծվող խնդիրների համար խորհուրդ է տրվում 3 կամ 2, սովորական խնդիրների համար՝ 1) |
| ML_Smoother | I | ML հարթեցիչ (1՝ Chebyshev, 2՝ SymBlockGaussSeidel, 3՝ Jacobi) (լռելյայն՝ 1) (խորհուրդ է տրվում 1) |
| ML_MGCycle | I | ML բազմացանցային ցիկլ (1՝ V-cycle, 2՝ W-cycle, 3՝ Full-V-cycle) (լռելյայն՝ 1) (դժվար լուծվող խնդիրների համար խորհուրդ է տրվում 2, սովորական խնդիրների համար՝ 1) |
| ML_MaxLevels | I | ML-ի մակարդակների առավելագույն քանակը (լռելյայն՝ 10) (հատկապես դժվար խնդիրների համար՝ կոպիտ ցանցի լուծիչը ուղղակի մեթոդ դարձնելով խորհուրդ է տրվում 2 (եթե հիշողությունը չի բավարարում՝ 3), սովորական խնդիրների համար՝ 10) |
| ML_CoarseningScheme | I | ML-ի խոշորացման սխեմա (1՝ UncoupledMIS, 2՝ METIS, 4՝ Zoltan, 5՝ DD) (լռելյայն՝ 1) (խորհուրդ է տրվում 1 կամ 5) |
| ML_NumSweep | I | ML հարթեցիչի անցումների քանակը (Chebyshev-ի դեպքում՝ բազմանդամի աստիճանը) (լռելյայն՝ 2) (Chebyshev-ի դեպքում խորհուրդ է տրվում 2, SymBlockGaussSeidel-ի դեպքում՝ 1) |
PRECOND=22 դեպքում (ընտրովի)¶
Եթե PRECOND-ի համար նշված է 22-ից տարբեր արժեք, 5-րդ տողը անտեսվում է։ 4-րդ և 5-րդ տողերից յուրաքանչյուրը կարող է ամբողջությամբ բաց թողնվել, ինչպես նաև կարելի է բաց թողնել տողի վերջի տարրերը։ 0 նշված տարրերի համար օգտագործվում է լռելյայն արժեքը։
4-րդ տողի 1-ից 7-րդ տարրերը դասավորված են նույն հերթականությամբ, ինչ PRECOND=5 (ML) տարբերակի տողում, ուստի ML-ի տարբերակի տողը կարելի է օգտագործել անփոփոխ։ 8-ից 10-րդ տարրերը հատուկ են SA-AMG-ին։
(4-րդ տող) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (չի օգտագործվում), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (չի օգտագործվում)
| Փոփոխականի անուն | Հատկանիշ | Նկարագրություն |
|---|---|---|
| SA_CoarseSolver | I | Կոպիտ ցանցի լուծիչ (0՝ ավտոմատ, 1՝ օգտագործել հարթեցիչը, 2՝ խիտ մատրիցի ուղղակի մեթոդ, 3՝ MUMPS (զուգահեռ ուղղակի մեթոդ)) (լռելյայն՝ 0) (Ավտոմատ ռեժիմում MUMPS-ը միացված կառուցումներում օգտագործվում է MUMPS, իսկ մնացած դեպքերում՝ խիտ մատրիցի ուղղակի մեթոդը) |
| SA_Smoother | I | Հարթեցիչ (0, 1՝ Chebyshev) (լռելյայն՝ 0) (Աջակցվում է միայն Chebyshev-ը։ Այլ արժեք նշելու դեպքում տրվում է նախազգուշացում և օգտագործվում է Chebyshev-ը) |
| SA_MGCycle | I | Բազմացանցային ցիկլ (0՝ լռելյայն (W-cycle), 1՝ V-cycle, 2՝ W-cycle) (լռելյայն՝ 0) (Full-V-cycle-ը չի աջակցվում) |
| SA_MaxLevels | I | Մակարդակների առավելագույն քանակը (լռելյայն՝ 20) |
| (չի օգտագործվում) | I | ML-ի կոպտացման սխեմային համապատասխանող դիրքը։ Քանի որ SA-AMG-ը միշտ օգտագործում է չկապակցված ագրեգացում, 0-ից տարբեր արժեքի դեպքում տրվում է նախազգուշացում, և արժեքը անտեսվում է |
| SA_ChebyDegree | I | Chebyshev հարթեցիչի բազմանդամի աստիճանը (լռելյայն՝ 2) |
| SA_CoarseSize | I | Կոպիտ ցանցի կտրման չափը (լռելյայն՝ 50000, երբ որպես կոպիտ ցանցի լուծիչ օգտագործվում է MUMPS, այլապես՝ 100) |
| SA_MaxAggSize | I | Ագրեգատի առավելագույն չափը (լռելյայն՝ 96) |
| SA_GalerkinLowMem | I | Կոպիտ ցանցի մատրիցի հաշվարկման եղանակ (0՝ սովորական (արագության առաջնահերթությամբ), դրական արժեք՝ հիշողություն խնայող) (լռելյայն՝ 0) (Կարգավորման ժամանակ հիշողությունը չբավարարելու դեպքում նշեք դրական արժեք) |
| (չի օգտագործվում) | I | Վերապահված է ապագա ընդլայնումների համար |
5-րդ տողը նախատեսված է միայն SA-AMG-ի համար և ML-ը չի կարդում այն։
(5-րդ տող) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Փոփոխականի անուն | Հատկանիշ | Նկարագրություն |
|---|---|---|
| SA_Theta | R | Ուժեղ կապերի որոշման շեմը (լռելյայն՝ 0.0) (0.0-ի դեպքում մատրիցի ոչ զրոյական կառուցվածքն անմիջապես օգտագործվում է որպես գրաֆ) |
| SA_ChebyAlpha | R | Chebyshev հարթեցիչի կողմից մշակվող սեփական արժեքների միջակայքի ստորին սահմանը որոշող հարաբերակցությունը (լռելյայն՝ 20.0) |
| SA_Safety | R | Առավելագույն սեփական արժեքի գնահատականին կիրառվող ապահովության գործակիցը (լռելյայն՝ 1.1) |
| SA_TaperK | R | Կոպտացման մեղմացման K գործակիցը (լռելյայն՝ 100) (2-րդ մակարդակից սկսած կոպտացումը մեղմացվում է, որպեսզի մնա առնվազն մոտ K ագրեգատ։ Բացասական արժեքը անջատում է մեղմացումը) |
| SA_AggOrder | R | Ագրեգացման անցման կարգը (0՝ լռելյայն (BFS կարգ), 1՝ BFS կարգ, 2՝ հանգույցների համարների հեշային կարգ (փորձարարական), 3՝ աստիճանի աճման կարգ (փորձարարական), 4՝ աստիճանի նվազման կարգ (փորձարարական), բացասական արժեք՝ հանգույցների համարների կարգ) (լռելյայն՝ 0) |
| SA_MinAggSize | R | Ագրեգատի նվազագույն չափը (լռելյայն՝ 3) |
| SA_Verify | R | Կարգավորման ժամանակ ինքնաստուգում կատարել, թե ոչ (0՝ չկատարել, դրական արժեք՝ կատարել) (լռելյայն՝ 0) (հիմնականում վրիպազերծման համար) |
| SA_DumpVTK | R | Ամենաբարձր մակարդակի ագրեգացումը VTK ձևաչափով արտածել, թե ոչ (0՝ չարտածել, դրական արժեք՝ արտածել) (լռելյայն՝ 0) (հիմնականում վրիպազերծման համար) |
Օգտագործման օրինակներ¶
Օգտագործել CG մեթոդը SSOR նախապայմանավորմամբ, առավելագույն կրկնությունների քանակը սահմանել 10000, իսկ դադարեցման սխալը՝ 1.0e-8։
Օգտագործել GMRES մեթոդը SSOR նախապայմանավորմամբ, Krylov ենթատարածության չափը սահմանել 40, իսկ բազմագույն դասավորման նպատակային գույների քանակը՝ 100։
Օգտագործել CG մեթոդը ILU(0) նախապայմանավորմամբ և նախապայմանավորման մատրիցի անկյունագծային տարրին կիրառվող գործակիցը սահմանել 1.1։
CG մեթոդի նախապայմանավորման համար օգտագործել ML-ի AMG մեթոդը։
CG մեթոդի նախապայմանավորման համար օգտագործել ML-ի AMG մեթոդը և կոպիտ ցանցի լուծիչը սահմանել MUMPS (դժվար լուծվող խնդիրների համար)։
CG մեթոդի նախապայմանավորման համար օգտագործել ML-ի AMG մեթոդը և բազմացանցային ցիկլը սահմանել W-cycle (դժվար լուծվող խնդիրների համար)։
CG մեթոդի նախապայմանավորման համար օգտագործել ML-ի AMG մեթոդը, կոպիտ ցանցի լուծիչը սահմանել MUMPS, իսկ առավելագույն մակարդակների քանակը՝ 2 (շատ դժվար լուծվող խնդիրների համար)։
CG-ի նախապայմանավորման համար օգտագործել HEC-MW-ում ներկառուցված SA-AMG-ը։
CG-ի նախապայմանավորման համար օգտագործել SA-AMG-ը, իսկ կոպիտ ցանցի լուծիչը սահմանել MUMPS։
Շփմամբ կոնտակտային վերլուծության դեպքում BiCGSTAB-ի նախապայմանավորման համար օգտագործել SA-AMG-ը և արտածել AMG նախապայմանավորիչի հիերարխիան։