!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)
1, 2 : (Блоков) SSOR (с многоцветно подреждане само за задачи с 3 степени на свобода)
3 : (Блоково) диагонално мащабиране
5 : AMG с пакета за многостепенно предобуславяне ML
10 : Блоков ILU(0)
11 : Блоков ILU(1)
12 : Блоков ILU(2)
10, 11 и 12 са достъпни само за задачи с 3 степени на свобода
За нишково паралелно изпълнение с OpenMP се препоръчват SSOR, диагонално мащабиране или ML
ITERLOG = Дали да се извежда историята на сходимост на итеративния решаващ алгоритъм (YES/NO)(По подразбиране: NO)
TIMELOG = Дали да се извежда времето за изчисление на решаващия алгоритъм (YES/NO/VERBOSE)(По подразбиране: NO)
USEJAD = Дали да се използва подреждане за векторни процесори (YES/NO)(По подразбиране: NO)
Валидно само когато се използва итеративен метод за задача с 3 степени на свобода
SCALING = Дали матрицата да се мащабира така, че диагоналните елементи да са 1 (YES/NO)(По подразбиране: NO)
Валидно само когато се използва итеративен метод за задача с 3 степени на свобода
DUMPTYPE = Формат за dump на матрицата (NONE, MM, CSR, BSR) (главно за отстраняване на грешки)
NONE : Без dump (по подразбиране)
MM : Формат Matrix Market
CSR : Формат Compressed Sparse Row (CSR)
BSR : Блоков CSR формат
DUMPEXIT = Прекратява програмата веднага след dump на матрицата (YES/NO)(По подразбиране: NO)
MPCMETHOD = Метод за обработка на многоточкови ограничения (1, 2, 3)
1: Наказателен метод (по подразбиране при използване на директен метод)
2: MPC-CG метод (не се препоръчва)
3: Явно елиминиране на степени на свобода (по подразбиране при използване на итеративен метод)
ESTCOND = Честота на оценяване на числото на обусловеност (експериментално)
Оценява числото на обусловеност през всеки зададен интервал от итерации и в края на итерациите
Когато е зададено 0, не се извършва оценяване
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 | Брой подпространства на Крилов (по подразбиране: 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 е зададена друга стойност, 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-цикъл, 2: W-цикъл, 3: пълен 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) |
Примери¶
Използване на CG със SSOR предобуславяне, като максималният брой итерации е 10000, а грешката от отсичане е 1.0e-8
Използване на GMRES със SSOR предобуславяне, като броят на подпространствата на Крилов е 40, а целевият брой цветове за многоцветното подреждане е 100
Използване на CG с ILU(0) предобуславяне, като мащабният коефициент, прилаган към диагоналните елементи при изчисляване на матрицата за предобуславяне, е 1.1
Използване на AMG чрез ML като предобуславяне за CG
Използване на AMG чрез ML като предобуславяне за CG и MUMPS като решаващ алгоритъм за грубата мрежа (за трудни задачи)
Използване на AMG чрез ML като предобуславяне за CG и W-цикъл като многостепенен цикъл (за трудни задачи)
Използване на AMG чрез ML като предобуславяне за CG, MUMPS като решаващ алгоритъм за грубата мрежа и максимален брой нива 2 (за много трудни задачи)