Перейти к содержанию

!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-я строка и последующие **

(2-я строка) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Имя переменной Атрибут Содержание
NITER I Число итераций (по умолчанию: 100)
iterPREmax I Число итераций предобуславливания Additive Schwarz (по умолчанию: 1)
(Рекомендуется 1; при параллельных вычислениях иногда эффективно 2)
NREST I Размер подпространства Крылова (по умолчанию: 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 задано другое значение, 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

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

Использовать GMRES с предобуславливанием SSOR, задать размер подпространства Крылова 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

Использовать AMG на основе ML в качестве предобуславливателя для CG

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

Использовать AMG на основе ML как предобуславливатель для CG, а MUMPS — как решатель грубой сетки (для трудных задач)

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

Использовать AMG на основе ML как предобуславливатель для CG и W-cycle как многосеточный цикл (для трудных задач)

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

Использовать AMG на основе ML как предобуславливатель для CG, MUMPS как решатель грубой сетки и задать максимальное число уровней 2 (для очень трудных задач)

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