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