Прескокнете до содржината

Решавач и предусловување

Линеарните решавачи на 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 Несиметрични проблеми Се користи со зададена големина на Krylov потпросторот.
GPBiCG Несиметрични проблеми Се користи како подобрен метод од фамилијата BiCGSTAB.
GMRESR Несиметрични проблеми, напредни примени Опција што го користи GMRES во вгнездена форма.
GMRESREN Несиметрични проблеми, напредни примени Рекурзивна варијанта од фамилијата GMRESR.

CG претпоставува дека матрицата е симетрична позитивно дефинитна. Ако триењето во контактот, несиметричната обработка на ограничувањата, спрегнатите ефекти или други фактори внесат изразена несиметрија, разгледајте BiCGSTAB, GMRES, GPBiCG или друг несиметричен решавач. Кај GMRES, зголемувањето на големината на Krylov потпросторот понекогаш ја подобрува конвергенцијата, но ја зголемува и употребата на меморија.

Кога е зададен 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 може експлицитно да се зададе во !SOLVER со MPCMETHOD. За значењето и форматот на вредностите видете го референтниот опис на клучниот збор.

Елиминација на контактни степени на слобода

Елиминацијата на контактните степени на слобода ги редуцира дополнителните контактни степени на слобода воведени со SLAGRANGE контакт пред системот да се предаде на линеарниот решавач. Нивното елиминирање може да ги подобри својствата на линеарниот систем што го обработува итеративниот метод.

Во стандардниот автоматски режим, елиминацијата на контактните степени на слобода се извршува при итеративни методи, а не се извршува при директни методи. За директните методи постои патека што директно го решава проширениот систем што ги содржи контактните степени на слобода.

Со експлицитно задавање на CONTACT_ELIM, елиминацијата на контактните степени на слобода може да се изврши и при директен метод. За изборот на тип на контакт, контактен пар и контактен алгоритам на страната на влезот, видете ја страницата за контакт и вградување.

Помошни функции

За испитување на конвергенцијата и перформансите на решавачот може да се користат проценка на условен број, дамп на матрица и логирање. Овие функции не се потребни за нормални анализи и се овозможуваат првенствено за дебагирање или оценка на перформансите.

Функција Намена Забелешки
Проценка на условен број Изведува показател на условниот број за CG и GMRES. Достапно во изведби со овозможен LAPACK.
Дамп на матрица Ги зачувува матрицата и десната страна што се предаваат на решавачот. Поддржува формати Matrix Market, CSR и BSR.
DUMPEXIT Ја прекинува анализата по дампот на матрицата. Се користи кога е потребна само матрицата за надворешна проверка.
ITERLOG Ја изведува историјата на конвергенција на итеративниот метод. Се користи за проверка на промената на резидуалот.
TIMELOG Го изведува времето на пресметка на решавачот. VERBOSE дава подетален преглед.
STEPLOG Изведува информации за чекорите. Се користи за проверка на постапката на анализа.
LOGLEVEL Изведува дијагностички информации, како што е хиерархиската структура на AMG-предусловувачот. Се задава независно од ITERLOG и TIMELOG. Поголема вредност дава повеќе излез.

Дампот на матрица овозможува матрицата на коефициенти составена во анализата да се провери со надворешни алатки. Кога DUMPEXIT е овозможен, анализата завршува откако ќе се зачуваат матрицата и десната страна. Проценката на условниот број е експериментална функција достапна со CG и GMRES и може да се користи за дијагностика на конвергенцијата.

Поврзани теми