Агуулгыг алгасах

!SOLVER

Шийдэгчийн удирдлага

Заавал шаардлагатай удирдлагын өгөгдөл.

Параметрүүд

METHOD =    Бодолтын арга (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Контактын шинжилгээнээс бусад тохиолдлын шууд арга (зөвхөн цуваа боловсруулалт) (одоогоор ашиглах боломжгүй)
            DIRECTmkl  : Intel MKL ашиглах шууд арга
            MUMPS      : MUMPS ашиглах шууд арга
            Шууд арга сонгосон үед өгөгдлийн мөрүүдийг үл тоомсорлоно.
            3-DOF бодлогын итерацийн аргууд OpenMP-ээр урсгал-параллель гүйцэтгэлийг дэмжинэ

PRECOND =   Итерацийн шийдэгчийн урьдчилан нөхцөлжүүлэх арга (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Блок) SSOR (зөвхөн 3-DOF бодлогод олон өнгийн эрэмбэлэлттэй)
            3          : (Блок) диагональ масштаблалт
            5          : Олон торын урьдчилан нөхцөлжүүлэх ML багцыг ашигласан AMG
            10         : Блок ILU(0)
            11         : Блок ILU(1)
            12         : Блок ILU(2)
            22         : HEC-MW-д суулгагдсан SA-AMG (Smoothed Aggregation AMG)-г ашигласан AMG
            10, 11, 12 нь зөвхөн 3-DOF бодлогод ашиглах боломжтой
            22 нь зөвхөн LAPACK идэвхжүүлсэн бүтээлтэд ашиглах боломжтой
            OpenMP урсгал-параллель гүйцэтгэлд SSOR, диагональ масштаблалт, 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-DOF бодлогод итерацийн арга ашиглах үед хүчинтэй

SCALING =   Диагональ элементүүд 1 болохоор матрицыг масштаблах эсэх       (YES/NO)(Анхдагч: NO)
            Зөвхөн 3-DOF бодлогод итерацийн арга ашиглах үед хүчинтэй

DUMPTYPE =  Матрицын дамп формат (NONE, MM, CSR, BSR) (голчлон дибаг хийхэд)
            NONE : Дамп хийхгүй (Анхдагч)
            MM   : Matrix Market формат
            CSR  : Compressed Sparse Row (CSR) формат
            BSR  : Блоклосон CSR формат

DUMPEXIT =  Матрицын дамп хийсний дараа программыг шууд дуусгах эсэх           (YES/NO)(Анхдагч: NO)

MPCMETHOD = Олон цэгийн хязгаарлалтыг боловсруулах арга (1, 3)
            1: Торгуулийн арга (шууд арга ашиглах үеийн анхдагч)
            3: DOF-ийг ил аргаар арилгах (итерацийн арга ашиглах үеийн анхдагч)
            Өмнө нь сонгох боломжтой байсан 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 =   2-р бодолтын арга (BiCGSTAB, GMRES, GPBiCG) (туршилтын)
            METHOD-д CG заасан үед л хүчинтэй
            Хэрэв CG сарнивал хоёрдогч аргад автоматаар шилжиж бодолтыг үргэлжлүүлнэ
            Бусад параметр ба өгөгдлийн мөрүүдэд ижил утгуудыг хэрэглэнэ

CONTACT_ELIM = Контактын шинжилгээнд DOF арилгалт хийх эсэхийг заана (0,1)
               0: Зөвхөн итерацийн арга ашиглах үед DOF арилгалт хийнэ (Анхдагч)
               1: DOF арилгалтыг үргэлж хийнэ (шууд арга ашиглах үед ч)

** 2-р мөр ба түүнээс хойш **

(2-р мөр) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Хувьсагчийн нэр Атрибут Тайлбар
NITER I Итерацийн тоо (Анхдагч: 100)
iterPREmax I Additive Schwarz урьдчилан нөхцөлжүүлэх итерацийн тоо (Анхдагч: 1)
(Зөвлөмж утга: 1; зарим параллель тооцоонд 2 үр дүнтэй байж болно)
NREST I Krylov дэд орон зайн тоо (Анхдагч: 10)
(Бодолтын аргаар GMRES сонгосон үед л хүчинтэй)
NCOLOR_IN I Олон өнгийн эрэмбэлэлтийн зорилтот өнгөний тоо (Анхдагч: 10)
(OpenMP урсгалын тоо 2 ба түүнээс их үед л хүчинтэй)
RECYCLEPRE I Урьдчилан нөхцөлжүүлэгчийн тохиргооны мэдээллийг дахин ашиглах тоо (Анхдагч: 3)
(Зөвхөн шугаман бус шинжилгээнд хүчинтэй)
(3-р мөр) RESID, SIGMA_DIAG, SIGMA
Хувьсагчийн нэр Атрибут Тайлбар
RESID R Таслалтын алдаа (Анхдагч: 1.0e-8)
SIGMA_DIAG R Урьдчилан нөхцөлжүүлэх матриц тооцоход диагональ элементүүдэд хэрэглэх масштабын коэффициент (Анхдагч: 1.0)
(ILU урьдчилан нөхцөлжүүлэлтэд тэгээр хуваах эсвэл сарних тохиолдолд 1.0-ээс их утга заавал бодлого нийлж болно)
SIGMA R Ашиглахгүй (Анхдагч: 0.0)

PRECOND=5 үед (сонголттой)

PRECOND-д 5 ба 22-оос өөр утга заасан бол 4-р мөрийг үл тоомсорлоно.

(4-р мөр) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Хувьсагчийн нэр Атрибут Тайлбар
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 Бүдүүн торны таслах хэмжээ (Анхдагч: бүдүүн торны шийдэгчээр MUMPS ашиглах үед 50000, бусад үед 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 болгоно

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

GMRES-ийг SSOR урьдчилан нөхцөлжүүлэлттэй ашиглаж, Krylov дэд орон зайн тоог 40, олон өнгийн эрэмбэлэлтийн зорилтот өнгөний тоог 100 болгоно

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

CG-г ILU(0) урьдчилан нөхцөлжүүлэлттэй ашиглаж, урьдчилан нөхцөлжүүлэх матриц тооцоход диагональ элементүүдэд хэрэглэх масштабын коэффициентийг 1.1 болгоно

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

CG-ийн урьдчилан нөхцөлжүүлэгчээр ML-ийн AMG-г ашиглана

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

CG-ийн урьдчилан нөхцөлжүүлэгчээр ML-ийн AMG-г ашиглаж, бүдүүн торны шийдэгчээр MUMPS ашиглана (хүнд бодлогод)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

CG-ийн урьдчилан нөхцөлжүүлэгчээр ML-ийн AMG-г ашиглаж, олон торын циклээр W-cycle ашиглана (хүнд бодлогод)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

CG-ийн урьдчилан нөхцөлжүүлэгчээр ML-ийн AMG-г ашиглаж, бүдүүн торны шийдэгчээр MUMPS хэрэглээд түвшний хамгийн их тоог 2 болгоно (маш хүнд бодлогод)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

CG-ийн урьдчилан нөхцөлжүүлэгчээр HEC-MW-д суулгагдсан SA-AMG-ийг ашиглана

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

CG-ийн урьдчилан нөхцөлжүүлэгчээр SA-AMG-ийг ашиглаж, бүдүүн торны шийдэгчээр MUMPS ашиглана

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Үрэлттэй контакт шинжилгээнд BiCGSTAB-ийг SA-AMG урьдчилан нөхцөлжүүлэлттэй ашиглаж, AMG урьдчилан нөхцөлжүүлэгчийн иерархийг гаргана

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0