Перейти до змісту

!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-й і наступні рядки **

(2-й рядок) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Змінна Атрибут Опис
NITER I Кількість ітерацій (типово: 100)
iterPREmax I Кількість ітерацій передобумовлення Additive Schwarz (типово: 1)
(Рекомендоване значення: 1; у деяких паралельних обчисленнях може бути ефективним 2)
NREST I Кількість підпросторів Krylov (типово: 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 та встановіть кількість підпросторів Krylov 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
AI-assisted translation May contain errors Official docs Status