!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, Diagonal Scaling або ML
ITERLOG = Чи виводити історію збіжності ітераційного розв'язувача (YES/NO)(Типово: NO)
TIMELOG = Чи виводити час обчислення розв'язувача (YES/NO/VERBOSE)(Типово: NO)
USEJAD = Чи використовувати упорядкування для векторних процесорів (YES/NO)(Типово: NO)
Дійсне лише при використанні ітераційного методу для задачі з 3 ступенями свободи
SCALING = Чи масштабувати матрицю так, щоб діагональні елементи дорівнювали 1 (YES/NO)(Типово: NO)
Дійсне лише при використанні ітераційного методу для задачі з 3 ступенями свободи
DUMPTYPE = Формат дампа матриці (NONE, MM, CSR, BSR) (переважно для налагодження)
NONE : Не створювати дамп (типово)
MM : Формат Matrix Market
CSR : Формат Compressed Sparse Row (CSR)
BSR : Блоковий формат CSR
DUMPEXIT = Негайно завершити програму після створення дампа матриці (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 | Кількість підпросторів 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 задано будь-яке інше значення, 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) (Рекомендовано: 2 для Chebyshev, 1 для SymBlockGaussSeidel) |
Приклади¶
Використовуйте 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-cycle як багатосітковий цикл (для складних задач)
Використовуйте AMG за допомогою ML як передобумовлювач для CG, MUMPS як розв'язувач грубої сітки та встановіть максимальну кількість рівнів 2 (для дуже складних задач)