!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 : (Block) SSOR (многоцветное упорядочивание только для задач с 3 степенями свободы)
3 : (Block) Diagonal Scaling
5 : AMG с использованием пакета многосеточного предобуславливания ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block 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 : Формат Blocked 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 | Размер подпространства Крылова (по умолчанию: 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, задать размер подпространства Крылова 40 и целевое число цветов многоцветного упорядочивания 100
Использовать CG с предобуславливанием ILU(0) и задать коэффициент для диагональных элементов при вычислении матрицы предобуславливателя равным 1.1
Использовать AMG на основе ML в качестве предобуславливателя для CG
Использовать AMG на основе ML как предобуславливатель для CG, а MUMPS — как решатель грубой сетки (для трудных задач)
Использовать AMG на основе ML как предобуславливатель для CG и W-cycle как многосеточный цикл (для трудных задач)
Использовать AMG на основе ML как предобуславливатель для CG, MUMPS как решатель грубой сетки и задать максимальное число уровней 2 (для очень трудных задач)