!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 : AMG со пакетот ML за мултимрежно предусловување
10 : Блоковски ILU(0)
11 : Блоковски ILU(1)
12 : Блоковски ILU(2)
22 : AMG со SA-AMG (Smoothed Aggregation AMG) вграден во HEC-MW
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 : Формат Blocked 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 = Секундарен метод на решавање (BiCGSTAB, GMRES, GPBiCG) (експериментално)
Важи само кога за METHOD е зададен CG
Ако CG дивергира, автоматски префрли се на секундарниот метод и продолжи со решавањето
За другите параметри и редови со податоци се користат истите вредности
CONTACT_ELIM = Задава дали се врши елиминација на DOF при контактна анализа (0,1)
0: Елиминирај DOF само кога се користи итеративен метод (стандардно)
1: Секогаш елиминирај DOF (вклучително и кога се користи директен метод)
** Втор ред и понатаму **
| Променлива | Атрибут | Опис |
|---|---|---|
| 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, четвртиот ред се игнорира.
| Променлива | Атрибут | Опис |
|---|---|---|
| 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-циклус, 2: W-циклус, 3: Full-V-циклус) (стандардно: 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) (Препорачано: 2 за Chebyshev, 1 за SymBlockGaussSeidel) |
Кога PRECOND=22 (опционално)¶
Ако за PRECOND е зададена вредност различна од 22, петтиот ред се игнорира. И четвртиот и петтиот ред може целосно да се изостават, а може да се изостават и завршните ставки во секој ред. За ставка зададена со 0 се користи стандардната вредност.
Ставките од 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-циклус), 1: V-циклус, 2: W-циклус) (стандардно: 0) (Full-V-циклус не е поддржан) |
| 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 | Резервирано за идни проширувања |
Петтиот ред е наменет само за 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
Користете AMG преку ML како предусловувач за CG
Користете AMG преку ML како предусловувач за CG и MUMPS како решавач на грубата мрежа (за тешки проблеми)
Користете AMG преку ML како предусловувач за CG и W-циклус како мултимрежен циклус (за тешки проблеми)
Користете AMG преку ML како предусловувач за CG, MUMPS како решавач на грубата мрежа и поставете го максималниот број нивоа на 2 (за многу тешки проблеми)
Користете го SA-AMG вграден во HEC-MW како предусловувач за CG
Користете SA-AMG како предусловувач за CG и MUMPS како решавач за грубата мрежа
За анализа на контакт со триење, користете BiCGSTAB со SA-AMG предусловување и прикажете ја хиерархијата на AMG предусловувачот