Розв’язувач і передобумовлення¶
Лінійні розв’язувачі FrontISTR налаштовуються вибором прямого або ітераційного методу; ітераційні методи поєднуються з передобумовлювачем для розв’язання лінійних рівнянь. Метод опрацювання MPC та виключення контактних ступенів свободи є допоміжними налаштуваннями, що визначають спосіб опрацювання лінійної системи з багатоточковими або контактними обмеженнями.
Огляд функцій¶
Налаштування розв’язувача та передобумовлення складаються з наведених нижче варіантів. Спочатку виберіть ітераційний або прямий метод як лінійний розв’язувач. Передобумовлювач поєднується лише з ітераційним методом.
| Категорія | Основні варіанти | Роль |
|---|---|---|
| Ітераційні методи | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
Розв’язують великі розріджені матриці з відносно ефективним використанням пам’яті. |
| Передобумовлювачі для ітераційних методів | SSOR, діагональне масштабування, BILU, AMG, SAINV, RIF | Покращують збіжність ітераційних методів. Не використовуються з прямими методами. |
| Прямі методи | MUMPS, MKL |
Надійно розв’язують лінійні рівняння шляхом факторизації матриці. |
| Методи опрацювання MPC | Штрафний метод, метод MPC-CG, явне виключення ступенів свободи | Включають багатоточкові обмеження до лінійної системи. |
| Виключення контактних ступенів свободи | Автоматично, завжди увімкнено | Керує опрацюванням контактних ступенів свободи, доданих контактом SLAGRANGE. |
| Допоміжні функції | Оцінювання числа обумовленості, дамп матриці, журналювання | Підтримують налагодження, оцінювання збіжності та продуктивності. |
Для паралельного виконання паралелізм MPI на основі декомпозиції області можна поєднувати з потоковим паралелізмом OpenMP. Ітераційні методи є стандартним вибором для великомасштабного паралельного аналізу, тоді як прямі методи використовуються, коли потрібні бібліотеки підключено й необхідне надійніше розв’язання.
Вибір розв’язувача та передобумовлювача¶
Спочатку вирішіть, використовувати ітераційний чи прямий метод. Якщо вибрано ітераційний метод, потім виберіть передобумовлювач.
| Критерій вибору | Рекомендований підхід |
|---|---|
| Розмір задачі | Прямі методи стабільні й прості у використанні для малих і середніх задач. Ітераційні методи ефективніше використовують пам’ять у великих задачах. |
| Симетрія матриці | Для симетричних додатно визначених задач розгляньте CG. Для несиметричних задач розгляньте BiCGSTAB, GMRES, GPBiCG або подібні методи. |
| Паралельне середовище | За паралелізму MPI поєднуйте ітераційний метод із декомпозицією області. Для передобумовлення за паралелізму OpenMP розгляньте багатокольорову реалізацію SSOR. |
| Передобумовлювач (для ітераційного методу) | Спочатку спробуйте типовий SSOR, потім розгляньте AMG. SSOR має невеликі обчислювальні витрати за доброї збіжності; AMG підходить для складних великомасштабних задач. |
| Контакт і MPC | В аналізах із контактом або багатоточковими обмеженнями вибір методу опрацювання MPC та виключення контактних ступенів свободи впливає на збіжність і надійність. |
| Зовнішні бібліотеки | MUMPS, MKL і AMG доступні у збірках, зв’язаних із відповідними бібліотеками. |
Для стандартного аналізу типових допуску збіжності, максимальної кількості ітерацій і коефіцієнта діагональної корекції передобумовлювача зазвичай достатньо. Лише коли збіжність повільна або розв’язок розбігається, слід послідовно переглянути ітераційний метод, передобумовлювач, метод опрацювання MPC та виключення контактних ступенів свободи. Значення параметрів і синтаксис див. у довіднику ключового слова !SOLVER.
Ітераційні методи¶
Ітераційні методи розв’язують великі розріджені системи, багаторазово оновлюючи розв’язок за допомогою добутків матриці на вектор і передобумовлення. FrontISTR надає такі ітераційні методи.
| Ітераційний метод | Типове застосування | Примітки |
|---|---|---|
CG |
Симетричні додатно визначені задачі | Стандартний кандидат для структурного аналізу та аналізу теплопровідності. |
BiCGSTAB |
Несиметричні задачі | Кандидат, коли контакт або зв’язані ефекти створюють сильну несиметрію. |
GMRES |
Несиметричні задачі | Використовується із заданим розміром підпростору Крилова. |
GPBiCG |
Несиметричні задачі | Використовується як удосконалений метод сімейства BiCGSTAB. |
GMRESR |
Несиметричні задачі, розширені застосування | Варіант, що використовує GMRES у вкладеній формі. |
GMRESREN |
Несиметричні задачі, розширені застосування | Рекурсивний варіант сімейства GMRESR. |
CG передбачає, що матриця є симетричною додатно визначеною. Якщо контакт із тертям, несиметричне опрацювання обмежень, ефекти зв’язування або подібні чинники спричиняють сильну несиметрію, розгляньте BiCGSTAB, GMRES, GPBiCG або інший несиметричний розв’язувач. Для GMRES збільшення розміру підпростору Крилова може покращити збіжність, але також збільшує використання пам’яті.
Коли задано METHOD2, FrontISTR може перемкнутися на альтернативний ітераційний метод, якщо CG розбігається або зазнає збою. Ця функція є резервним варіантом для випадків, коли CG — основний розв’язувач; альтернативний метод використовує ті самі інші налаштування та рядки даних, що й основний розв’язувач.
Передобумовлення¶
Передобумовлення перетворює матрицю коефіцієнтів для покращення збіжності ітераційного методу й застосовується лише тоді, коли вибрано ітераційний метод. Прямі методи не використовують передобумовлення. Навіть для того самого ітераційного методу вибір передобумовлювача може суттєво змінити кількість ітерацій і час обчислення, потрібні для збіжності.
| Передобумовлювач | Характеристики | Типове застосування |
|---|---|---|
| SSOR | Стандартний передобумовлювач; підтримує багатокольорове впорядкування. | Перший кандидат для перевірки; широко використовується в структурному аналізі. |
| Діагональне масштабування | Легкий передобумовлювач, що використовує діагональні елементи. | Коли пріоритетом є низькі обчислювальні витрати. |
| BILU | Блокова неповна LU-факторизація. | Кандидат для задач, у яких важко досягти збіжності з SSOR. |
| AMG | Алгебраїчний багатосітковий метод із Trilinos-ML. | Кандидат для великомасштабних задач або задач, у яких домінують ієрархічні компоненти похибки. |
| SAINV | Розріджена наближена обернена матриця. | Спеціалізований варіант передобумовлення для контактних задач або середовищ із розподіленою пам’яттю. |
| RIF | Надійна неповна факторизація. | Інший варіант неповної факторизації. |
SSOR є стандартним вибором, а за паралелізму OpenMP використовується версія з багатокольоровим впорядкуванням. Діагональне масштабування має невеликі витрати, хоча покращення збіжності залежить від задачі. BILU реалізовано як блокову неповну LU-факторизацію, і він також підтримує матриці із загальною кількістю ступенів свободи. Для сімейства BILU передбачено шлях, який автоматично збільшує коефіцієнт діагональної корекції SIGMA_DIAG і повторює спробу, коли ітераційний метод розбігається; спосіб задання значення див. у довіднику ключових слів.
AMG використовує Trilinos-ML, тому ML має бути ввімкнено під час збирання. Можна задавати згладжувачі, багатосіткові цикли, методи укрупнення та інші налаштування; докладні значення див. у довіднику ключових слів. Коли SAINV використовується в паралельному аналізі з контактними або MPC-обмеженнями, глибина перекриття, що використовується для декомпозиції області, може впливати на збіжність.
Прямі методи¶
Прямі методи розв’язують лінійні рівняння шляхом факторизації матриці коефіцієнтів. Оскільки вони не залежать від кількості ітерацій, вони надійні та можуть бути стабільним вибором для аналізів із контактними умовами або обмеженнями. Однак їхнє споживання пам’яті зростає зі збільшенням розміру задачі.
| Прямий метод | Паралельне середовище | Застосування |
|---|---|---|
MUMPS |
Паралельне MPI | Розв’язує розріджені матриці прямим методом у середовищах із розподіленою пам’яттю. |
MKL |
Intel MKL / OpenMP | Прямий розв’язувач на основі Intel MKL. Внутрішньо використовується Intel PARDISO. За кількох процесів MPI використовується шлях Cluster MKL. DIRECTmkl є псевдонімом MKL. |
Прямі методи можна використовувати як для симетричних, так і для несиметричних матриць. MUMPS і MKL потребують підключення відповідних бібліотек під час збирання. Їх не можна використовувати в середовищах без цих бібліотек, тому потрібні залежності та параметри CMake див. у посібнику зі збирання.
FrontISTR також містить вбудований шлях прямого розв’язувача, який не використовує зовнішню бібліотеку, але для звичайних аналізів, що потребують прямого методу, зазвичай слід спочатку розглядати MUMPS або MKL.
Передобумовлення не застосовується до прямих методів. Навіть якщо передобумовлювач задано в !SOLVER, він не використовується на шляху прямого розв’язувача.
Методи опрацювання MPC¶
Метод опрацювання MPC визначає, як ступені свободи, пов’язані багатоточковими обмеженнями, включаються до лінійних рівнянь. Навіть за однакових рівнянь обмежень у вхідних даних метод опрацювання змінює властивості матриці коефіцієнтів і поведінку збіжності.
| Метод опрацювання MPC | Призначення | Типове використання |
|---|---|---|
| Штрафний метод | Приблизно виконує обмеження шляхом додавання великих членів жорсткості до рівнянь обмежень. | Типовий для прямих методів. |
| Метод MPC-CG | Застарілий метод, що опрацьовує добутки матриці на вектор з обмеженнями всередині ітераційного розв’язувача. | Не рекомендований до використання. |
| Явне виключення ступенів свободи | Виключає обмежені ступені свободи та розв’язує зменшену лінійну систему. | Типове для ітераційних методів. |
Штрафний метод є типовим для прямих методів, а явне виключення ступенів свободи — типовим для ітераційних. Метод MPC-CG є застарілим варіантом сумісності й не рекомендується для нових аналізів; зазвичай використовуйте явне виключення ступенів свободи або типове опрацювання для вибраного прямого методу.
Метод опрацювання MPC можна явно задати в !SOLVER параметром MPCMETHOD. Значення й синтаксис кожного варіанта див. у довіднику ключових слів.
Виключення контактних ступенів свободи¶
Виключення контактних ступенів свободи зменшує додаткові контактні ступені свободи, введені контактом SLAGRANGE, до передавання системи лінійному розв’язувачу. Виключення цих контактних ступенів свободи може покращити властивості лінійної системи, яку опрацьовує ітераційний метод.
У типовому автоматичному режимі виключення контактних ступенів свободи ввімкнене для ітераційних методів і вимкнене для прямих. Для прямих методів передбачено шлях, який безпосередньо розв’язує розширену систему, що містить контактні ступені свободи.
Коли CONTACT_ELIM задано явно, виключення контактних ступенів свободи можна виконувати також при використанні прямого методу. Вибір типу контакту, контактної пари та контактного алгоритму у вхідних даних див. на сторінці «Контакт і вбудовування».
Допоміжні функції¶
Оцінювання числа обумовленості, дампи матриці та журналювання можна використовувати для дослідження збіжності й продуктивності розв’язувача. Для звичайного аналізу ці функції не потрібні й вмикаються переважно для налагодження або оцінювання продуктивності.
| Функція | Призначення | Примітки |
|---|---|---|
| Оцінювання числа обумовленості | Виводить показник числа обумовленості для CG і GMRES. |
Доступне у збірках із увімкненим LAPACK. |
| Дамп матриці | Зберігає матрицю та праву частину, передані розв’язувачу. | Підтримує формати Matrix Market, CSR і BSR. |
DUMPEXIT |
Завершує аналіз після дампу матриці. | Використовується, коли для зовнішньої перевірки потрібна лише матриця. |
ITERLOG |
Виводить історію збіжності ітераційного методу. | Використовується для перегляду тенденцій нев’язки. |
TIMELOG |
Виводить час обчислень розв’язувача. | VERBOSE виводить детальнішу розбивку. |
STEPLOG |
Виводить інформацію про кроки. | Використовується для перевірки процедури аналізу. |
Дамп матриці дає змогу перевіряти матрицю коефіцієнтів, зібрану аналізом, зовнішніми інструментами. Коли DUMPEXIT увімкнено, аналіз завершується після збереження матриці та правої частини. Оцінювання числа обумовленості є експериментальною функцією, доступною для CG і GMRES, і може використовуватися для діагностики поведінки збіжності.
Пов’язані теми¶
- Лінійний розв’язувач (теорія) — Математичні принципи ітераційних методів і передобумовлення.
- Нелінійні ітерації та інтегрування за часом — Схема ітерацій Ньютона, контактних ітерацій та інтегрування за часом, що викликає лінійний розв’язувач.
- Декомпозиція області — Паралельний аналіз MPI та налаштування глибини перекриття.
- Контакт і вбудовування — Вибір типів контакту та контактних алгоритмів.
- !SOLVER — Значення й синтаксис параметрів розв’язувача та передобумовлювача.
- Обов’язкові та необов’язкові залежні бібліотеки — Залежності, зокрема
MUMPS,MKL(Intel PARDISO), Trilinos-ML і LAPACK.