Решавач и предусловљавање¶
Линеарни решавачи у FrontISTR-у подешавају се избором директне или итеративне методе; итеративне методе комбинују се са предусловљивачем ради решавања линеарних једначина. Метода обраде MPC-а и елиминација контактних степени слободе су помоћни избори који одређују начин обраде линеарног система који садржи вишетачкаста или контактна ограничења.
Преглед функција¶
Подешавања решавача и предусловљавања састоје се од следећих избора. Најпре као линеарни решавач изаберите итеративну или директну методу. Предусловљивач се комбинује само са итеративном методом.
| Категорија | Главне опције | Улога |
|---|---|---|
| Итеративне методе | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Решавају велике ретке матрице уз релативно ефикасно коришћење меморије. |
| Предусловљивачи за итеративне методе | SSOR, дијагонално скалирање, BILU, AMG, SAINV, RIF | Побољшавају конвергенцију итеративних метода. Не користе се са директним методама. |
| Директне методе | MUMPS, MKL | Робусно решавају линеарне једначине факторизацијом матрице. |
| Методе обраде MPC-а | Казнена метода, експлицитна елиминација степени слободе | Укључују вишетачкаста ограничења у линеарни систем. |
| Елиминација контактних степени слободе | Аутоматска, увек омогућена | Управља обрадом контактних степени слободе које додаје контакт SLAGRANGE. |
| Помоћне функције | Процена кондиционог броја, испис матрице, евидентирање | Подржавају отклањање грешака, процену конвергенције и оцену перформанси. |
За паралелно извршавање, MPI паралелизам заснован на декомпозицији домена може се комбиновати са OpenMP паралелизмом нити. Итеративне методе су стандардни избор за паралелне анализе великих размера, док се директне методе користе када су потребне библиотеке повезане и када је потребно робусније решење.
Избор решавача и предусловљивача¶
Најпре одлучите да ли ћете користити итеративну или директну методу. Ако је изабрана итеративна метода, затим изаберите предусловљивач.
| Фактор одлуке | Препоручени приступ |
|---|---|
| Величина проблема | Директне методе су стабилне и лаке за употребу код малих и средњих проблема. Итеративне методе ефикасније користе меморију код великих проблема. |
| Симетрија матрице | За симетричне позитивно дефинитне проблеме размотрите CG. За несиметричне проблеме размотрите BiCGSTAB, GMRES, GPBiCG или сличне методе. |
| Паралелно окружење | Код MPI паралелизма комбинујте итеративну методу са декомпозицијом домена. За предусловљавање код OpenMP паралелизма размотрите вишебојну имплементацију SSOR-а. |
| Предусловљивач (када се користи итеративна метода) | Најпре испробајте подразумевани SSOR, а затим размотрите AMG. SSOR је рачунски лаган када је конвергенција добра; AMG је погодан за сложене проблеме великих размера. AMG је доступан као имплементација Trilinos-ML и као SA-AMG уграђен у HEC-MW; изаберите према конфигурацији издања. |
| Контакт и MPC | У анализама које садрже контакт или вишетачкаста ограничења, избор методе обраде MPC-а и елиминације контактних степени слободе утиче на конвергенцију и робусност. |
| Спољашње библиотеке | MUMPS, MKL и AMG (Trilinos-ML) доступни су у издањима повезаним са одговарајућим библиотекама. AMG (SA-AMG) доступан је у издањима са омогућеним LAPACK-ом. |
За стандардне анализе, подразумевана толеранција конвергенције, максималан број итерација и дијагонални корекциони коефицијент предусловљивача углавном су довољни. Само када је конвергенција спора или решење дивергира, преиспитајте редом итеративну методу, предусловљивач, методу обраде MPC-а и елиминацију контактних степени слободе. За вредности параметара и синтаксу погледајте референцу кључне речи !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 и SA-AMG уграђен у HEC-MW. То су независне имплементације са различитим захтевима за конфигурацију издања и различитим доступним подешавањима.
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-а | Улога | Подразумевана употреба |
|---|---|---|
| Казнена метода | Приближно задовољава ограничења додавањем великих чланова крутости једначинама ограничења. | Подразумевано за директне методе. |
| Експлицитна елиминација степени слободе | Елиминише ограничене степене слободе и решава редуковани линеарни систем. | Подразумевано за итеративне методе. |
Казнена метода је подразумевана за директне методе, док је експлицитна елиминација степени слободе подразумевана за итеративне методе. Раније доступна метода MPC-CG је уклоњена; ако се зада MPCMETHOD=2, исписује се упозорење и користи се одговарајућа подразумевана метода.
При експлицитној елиминацији степени слободе, концентрисане масе које се користе у модалној анализи и експлицитној динамичкој анализи такође се редукују истом трансформацијом као матрица крутости. Пошто редукована матрица масе у општем случају није дијагонална, збирови њених врста користе се као концентрисане масе. За ограничења повезивања или интерполације код којих је збир коефицијената једначине ограничења 1, маса зависних степени слободе расподељује се на главне степене слободе сразмерно коефицијентима.
Метода обраде MPC-а може се изричито задати са MPCMETHOD у !SOLVER. За значење и синтаксу сваке вредности погледајте референцу кључне речи.
Елиминација контактних степени слободе¶
Елиминација контактних степени слободе редукује додатне контактне степене слободе уведене контактом SLAGRANGE пре прослеђивања система линеарном решавачу. Елиминација ових контактних степени слободе може побољшати својства линеарног система који обрађује итеративна метода.
У подразумеваном аутоматском режиму, елиминација контактних степени слободе омогућена је за итеративне методе, а онемогућена за директне методе. За директне методе обезбеђен је пут који непосредно решава проширени систем са контактним степенима слободе.
Када је CONTACT_ELIM изричито задат, елиминација контактних степени слободе може се извршити и када се користи директна метода. За избор типа контакта, контактног пара и контактног алгоритма на улазној страни погледајте страницу Контакт и уграђивање.
Помоћне функције¶
Процена кондиционог броја, исписи матрице и евидентирање могу се користити за испитивање конвергенције и перформанси решавача. Ове функције нису потребне за уобичајене анализе и омогућавају се првенствено ради отклањања грешака или оцене перформанси.
| Функција | Сврха | Напомене |
|---|---|---|
| Процена кондиционог броја | Исписује показатељ кондиционог броја за 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.