Решател и предобуславяне¶
Линейните решатели на FrontISTR се конфигурират чрез избор между директен и итеративен метод; итеративните методи се комбинират с предобуславящ оператор за решаване на линейните уравнения. Методът за обработка на MPC и елиминирането на контактните степени на свобода са спомагателни избори, които определят как се обработва линейна система, съдържаща многоточкови или контактни ограничения.
Функционален преглед¶
Настройките на решателя и предобуславянето се състоят от следните избори. Първо изберете итеративен или директен метод за линейния решател. Предобуславящ оператор се комбинира само с итеративен метод.
| Категория | Основни опции | Роля |
|---|---|---|
| Итеративни методи | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Решават големи разредени матрици с относително ефективно използване на паметта. |
| Предобуславящи оператори за итеративни методи | SSOR, диагонално мащабиране, BILU, AMG, SAINV, RIF | Подобряват сходимостта на итеративните методи. Не се използват с директни методи. |
| Директни методи | MUMPS, MKL | Решават линейни уравнения устойчиво чрез факторизация на матрицата. |
| Методи за обработка на MPC | Метод на наказателната функция, метод MPC-CG, явно елиминиране на DOF | Включват многоточковите ограничения в линейната система. |
| Елиминиране на контактни DOF | Автоматично, винаги включено | Управлява обработката на контактните степени на свобода, добавени от контакт SLAGRANGE. |
| Спомагателни функции | Оценка на обусловеността, запис на матрица, логване | Подпомагат отстраняването на грешки, оценката на сходимостта и производителността. |
При паралелно изпълнение MPI паралелизмът, основан на разделяне на области, може да се комбинира с нишков паралелизъм OpenMP. Итеративните методи са стандартният избор за мащабни паралелни анализи, докато директните методи се използват, когато необходимите библиотеки са свързани и е нужно по-устойчиво решение.
Избор на решател и предобуславящ оператор¶
Първо решете дали да използвате итеративен или директен метод. Ако е избран итеративен метод, след това изберете предобуславящ оператор.
| Фактор за избор | Препоръчителен подход |
|---|---|
| Размер на задачата | Директните методи са стабилни и лесни за използване при малки и средни задачи. Итеративните методи са по-ефективни по отношение на паметта при големи задачи. |
| Симетрия на матрицата | За симетрични положително определени задачи разгледайте CG. За несиметрични задачи разгледайте BiCGSTAB, GMRES, GPBiCG или подобни методи. |
| Паралелна среда | При MPI паралелизъм комбинирайте итеративен метод с разделяне на области. За предобуславяне при OpenMP паралелизъм разгледайте многоцветна реализация на SSOR. |
| Предобуславящ оператор (при итеративен метод) | Първо опитайте SSOR по подразбиране, след това разгледайте AMG. SSOR е изчислително лек, когато сходимостта е добра; AMG е подходящ за сложни мащабни задачи. |
| Контакт и MPC | При анализи с контакт или многоточкови ограничения изборът на метод за обработка на MPC и елиминирането на контактни DOF влияе върху сходимостта и устойчивостта. |
| Външни библиотеки | MUMPS, MKL и AMG са налични в сборки, свързани със съответните библиотеки. |
За стандартни анализи стойностите по подразбиране на допуска за сходимост, максималния брой итерации и коефициента за диагонална корекция на предобуславящия оператор обикновено са достатъчни. Едва когато сходимостта е бавна или решението се разходи, преразгледайте последователно итеративния метод, предобуславящия оператор, метода за обработка на MPC и елиминирането на контактни DOF. За стойностите и синтаксиса на параметрите вижте справочника за ключовата дума !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 | Наследен метод, който обработва произведения матрица–вектор, съдържащи ограничения, вътре в итеративния решател. | Непрепоръчителен. |
| Явно елиминиране на DOF | Елиминира ограничените степени на свобода и решава редуцираната линейна система. | По подразбиране за итеративни методи. |
Методът на наказателната функция е по подразбиране за директни методи, докато явното елиминиране на DOF е по подразбиране за итеративни методи. Методът MPC-CG е наследена опция за съвместимост и не се препоръчва за нови анализи; обикновено използвайте явно елиминиране на DOF или обработката по подразбиране за избрания директен метод.
Методът за обработка на MPC може да се зададе изрично чрез MPCMETHOD в !SOLVER. За значението и синтаксиса на всяка стойност вижте справочника за ключови думи.
Елиминиране на контактни DOF¶
Елиминирането на контактни DOF редуцира допълнителните контактни степени на свобода, въведени от контакт SLAGRANGE, преди системата да бъде подадена към линейния решател. Елиминирането на тези контактни степени на свобода може да подобри свойствата на линейната система, обработвана от итеративен метод.
В автоматичния режим по подразбиране елиминирането на контактни DOF е включено за итеративни методи и изключено за директни методи. За директните методи е осигурен път, който решава директно разширената система, съдържаща контактните степени на свобода.
Когато CONTACT_ELIM е зададен изрично, елиминиране на контактни DOF може да се извършва и при използване на директен метод. За избор на тип контакт, контактна двойка и контактен алгоритъм от страната на входа вижте страницата за контакт и вграждане.
Спомагателни функции¶
Оценката на обусловеността, записът на матрицата и логването могат да се използват за изследване на сходимостта и производителността на решателя. Тези функции не са необходими за нормални анализи и се активират основно за отстраняване на грешки или оценка на производителността.
| Функция | Предназначение | Бележки |
|---|---|---|
| Оценка на обусловеността | Извежда индикатор за числото на обусловеност при CG и GMRES. | Налично в сборки с активиран LAPACK. |
| Запис на матрицата | Запазва матрицата и дясната страна, подадени към решателя. | Поддържа формати Matrix Market, CSR и BSR. |
DUMPEXIT | Прекратява анализа след запис на матрицата. | Използва се, когато е необходима само матрицата за външна верификация. |
ITERLOG | Извежда историята на сходимостта на итеративен метод. | Използва се за преглед на тенденциите на остатъка. |
TIMELOG | Извежда времето за изчисление на решателя. | VERBOSE извежда по-подробна разбивка. |
STEPLOG | Извежда информация за стъпките. | Използва се за преглед на процедурата на анализа. |
Записът на матрицата позволява матрицата на коефициентите, сглобена от анализа, да бъде прегледана с външни инструменти. Когато DUMPEXIT е активиран, анализът приключва след запазването на матрицата и дясната страна. Оценката на обусловеността е експериментална функция, налична с CG и GMRES, и може да се използва за диагностика на поведението на сходимост.
Свързани теми¶
- Линеен решател (теория) — Математически принципи на итеративните методи и предобуславянето.
- Нелинейни итерации и интегриране по времето — Рамка за итерациите на Нютон, контактните итерации и интегрирането по времето, която извиква линейния решател.
- Разделяне на области — MPI паралелен анализ и настройки на дълбочината на припокриване.
- Контакт и вграждане — Избор на типове контакт и контактни алгоритми.
- !SOLVER — Стойности и синтаксис на параметрите на решателя и предобуславящия оператор.
- Необходими и незадължителни библиотеки-зависимости — Зависимости като
MUMPS,MKL(Intel PARDISO), Trilinos-ML и LAPACK.