Yechuvchi va oldindan shartlagich¶
FrontISTR chiziqli yechuvchisi to‘g‘ridan-to‘g‘ri yoki iterativ usulni tanlaydi; iterativ usulda chiziqli tenglamalarni yechish uchun oldindan shartlagich bilan birga ishlaydi. MPC ishlov berish usuli va kontakt erkinlik darajalarini yo‘qotish ko‘p nuqtali cheklovlar yoki kontakt cheklovlarini o‘z ichiga olgan chiziqli sistemani qanday shaklda ko‘rishni belgilaydigan qo‘shimcha tanlovlardir.
Funksiyaning umumiy ko‘rinishi¶
Yechuvchi va oldindan shartlagich quyidagi variantlardan tashkil topadi. Avval chiziqli yechuvchi sifatida iterativ yoki to‘g‘ridan-to‘g‘ri usul tanlanadi; oldindan shartlagich faqat iterativ usul tanlanganda qo‘llanadi.
| Kategoriya | Asosiy variantlar | Vazifasi |
|---|---|---|
| Iterativ usul | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Katta siyrak matritsalarni xotiradan samarali foydalanib yechadi. |
| Iterativ usul uchun oldindan shartlagich | SSOR, diagonal masshtablash, BILU, AMG, SAINV, RIF | Iterativ usulning yaqinlashuvini yaxshilaydi; to‘g‘ridan-to‘g‘ri usulda ishlatilmaydi. |
| To‘g‘ridan-to‘g‘ri usul | MUMPS, MKL | Faktorizatsiya orqali chiziqli tenglamalarni robust tarzda yechadi. |
| MPC ishlov berish usuli | Jarima usuli, oshkora erkinlik darajalarini yo‘qotish | Ko‘p nuqtali cheklovni chiziqli sistemaga aks ettiradi. |
| Kontakt erkinlik darajalarini yo‘qotish | Avtomatik, doimo faol | SLAGRANGE kontakt qo‘shadigan kontakt DOF lariga ishlov berishni almashtiradi. |
| Yordamchi funksiyalar | Shartlanganlik sonini baholash, matritsa nusxasini saqlash, log chiqarish | Nosozliklarni aniqlash, yaqinlashuvni tekshirish va unumdorlikni baholashga yordam beradi. |
Parallel bajarishda soha dekompozitsiyasiga asoslangan MPI parallelizmi va OpenMP oqim parallelizmini birlashtirish mumkin. Iterativ usullar katta parallel tahlil uchun odatiy tanlovdir; to‘g‘ridan-to‘g‘ri usullar esa tegishli kutubxonalar bog‘langan muhitda yanada robust yechim kerak bo‘lganda ishlatiladi.
Yechuvchi va oldindan shartlagichni tanlash¶
Avval iterativ yoki to‘g‘ridan-to‘g‘ri usuldan qaysi biri ishlatilishini tanlang; iterativ usul tanlansa, keyin oldindan shartlagichni tanlang.
| Mezon | Tavsiya etiladigan yondashuv |
|---|---|
| Masala hajmi | Kichik va o‘rta masalalarda to‘g‘ridan-to‘g‘ri usul barqaror va oson. Katta masalalarda iterativ usul xotira samaradorligi bo‘yicha afzal. |
| Matritsa simmetriyasi | Simmetrik musbat aniq masalalarda CG ni ko‘rib chiqing. Nosimmetrik masalalarda BiCGSTAB, GMRES, GPBiCG kabi usullarni ko‘rib chiqing. |
| Parallel muhit | MPI parallelda iterativ usulni soha dekompozitsiyasi bilan birlashtiring. OpenMP paralleldagi oldindan shartlagich uchun multicolor SSOR ni ko‘rib chiqing. |
| Oldindan shartlagich (iterativ usulda) | Avval standart SSOR-ni sinang, keyin AMG-ni ko‘rib chiqing. Yaqinlashuv yaxshi bo‘lsa SSOR hisoblash jihatidan yengil; murakkab katta masalalarda AMG oldindan shartlash mos keladi. AMG Trilinos-ML asosidagi amalga oshirish yoki HEC-MW ichki SA-AMG ko‘rinishida mavjud; yig‘ish konfiguratsiyasiga qarab tanlang. |
| Kontakt va MPC | Kontakt tahlili yoki ko‘p nuqtali cheklovlarda MPC ishlov usuli va kontakt erkinlik darajalarini yo‘qotish tanlovi yaqinlashuv va robustlikka ta’sir qiladi. |
| Tashqi kutubxonalar | MUMPS, MKL va AMG (Trilinos-ML) tegishli kutubxonalar bog‘langan yig‘malarda ishlaydi. AMG (SA-AMG) LAPACK yoqilgan yig‘malarda ishlaydi. |
Odatdagi tahlilda yaqinlashish chegarasi, maksimal iteratsiyalar soni va oldindan shartlagich diagonal tuzatish koeffitsiyenti kabi parametrlar standart qiymatlarda yetarli ishlaydi. Faqat yaqinlashuv sekin yoki uzoqlashish yuz bersa, iterativ usul, oldindan shartlagich, MPC ishlov usuli va kontakt erkinlik darajalarini yo‘qotishni navbat bilan qayta ko‘rib chiqing. Parametr qiymatlari va sintaksisi uchun kalit so‘z ma’lumotnomasidagi !SOLVER ga qarang.
Iterativ usullar¶
Iterativ usul katta siyrak matritsalar uchun matritsa-vektor ko‘paytmasi va oldindan shartlashni takrorlab yechimni yangilaydi. FrontISTR da quyidagi iterativ usullar tanlanadi.
| Iterativ usul | Qo‘llanish mezoni | Izoh |
|---|---|---|
CG | Simmetrik musbat aniq masala | Strukturaviy va issiqlik o‘tkazuvchanlik tahlilida odatiy tanlov. |
BiCGSTAB | Nosimmetrik masala | Kontakt yoki bog‘lanish sabab nosimmetriya kuchli bo‘lsa mos variant. |
GMRES | Nosimmetrik masala | Krylov ostfazosi o‘lchami ko‘rsatilib ishlatiladi. |
GPBiCG | Nosimmetrik masala | BiCGSTAB oilasining takomillashtirilgan usuli sifatida ishlatiladi. |
GMRESR | Nosimmetrik masala, ilg‘or qo‘llanish | GMRES ni ichma-ich tarzda ishlatadigan variant. |
GMRESREN | Nosimmetrik masala, ilg‘or qo‘llanish | GMRESR oilasining rekursiv varianti. |
CG matritsaning simmetrik musbat aniq bo‘lishini talab qiladi. Ishqalanishli kontakt, nosimmetrik cheklov ishlovi yoki bog‘lanish sabab nosimmetriya kuchli bo‘lsa BiCGSTAB, GMRES, GPBiCG kabi usullarni tanlang. GMRES da Krylov ostfazosi o‘lchamini oshirish yaqinlashuvni yaxshilashi mumkin, ammo xotira sarfi ham ortadi.
METHOD2 ko‘rsatilsa, CG uzoqlashish qilganda yoki ishlamay qolganda alternativ iterativ usulga o‘tish mumkin. Bu CG asosiy yechuvchi bo‘lgan holat uchun zaxira usul bo‘lib, boshqa sozlamalar va ma’lumot qatorlari asosiy yechuvchi bilan bir xil ishlatiladi.
CG, BiCGSTAB, GPBiCG va PipeCG qoldiq vektorini rekurrent munosabat bo‘yicha yangilaydi; shu sabab iteratsiyalar davom etgani sari yaxlitlash xatolari to‘planib, haqiqiy qoldiqdan og‘ish yuzaga keladi. Buning oldini olish uchun ma’lum iteratsiya oralig‘ida qoldiq vektori o‘ng tomon va matritsa-vektor ko‘paytmasidan qayta hisoblanadi. Bu davrni RECOMPUTE_RESIDUAL bilan belgilash mumkin. Davrni uzaytirish matritsa-vektor ko‘paytmalarini kamaytiradi, ammo rekurrent munosabat orqali olinadigan qoldiq haqiqiy qoldiqdan uzoqlashib, hali yaqinlashmagan yechimni yaqinlashgan deb baholash xavfini oshiradi. Aksincha, davrni haddan tashqari qisqartirish matritsa-vektor ko‘paytmalarini ko‘paytirish bilan birga, rekurrent munosabat saqlab turadigan qoldiq va yordamchi vektorlar o‘rtasidagi bog‘lanishni buzishi va yaqinlashuvning o‘zini yomonlashtirishi mumkin. Har bir yechish usulining standart qiymati shu muvozanatni hisobga oladi; uni o‘zgartirganda yaqinlashuv tarixini va yakuniy nisbiy qoldiqni tekshiring.
Oldindan shartlagichlar¶
Oldindan shartlash iterativ usul yaqinlashuvini yaxshilash uchun koeffitsiyent matritsasini transformatsiya qiladi va faqat iterativ usulda qo‘llanadi. To‘g‘ridan-to‘g‘ri usulda oldindan shartlagich ishlatilmaydi. Bir xil iterativ usulning o‘zida ham oldindan shartlagich tanlovi iteratsiyalar soni va hisoblash vaqtini keskin o‘zgartirishi mumkin.
| Oldindan shartlagich | Xususiyati | Qo‘llanish mezoni |
|---|---|---|
| SSOR | Standart oldindan shartlagich; ko‘p rangli tartiblashni qo‘llaydi. | Birinchi sinab ko‘riladigan variant; strukturaviy tahlilda keng ishlatiladi. |
| Diagonal masshtablash | Diagonal komponentlardan foydalanadigan yengil oldindan shartlagich. | Hisoblash xarajatini kamaytirish kerak bo‘lganda. |
| BILU | Blok bo‘yicha incomplete LU faktorizatsiyasi. | SSOR bilan qiyin yaqinlashadigan masalalar uchun. |
| AMG (Trilinos-ML) | Tashqi Trilinos-ML kutubxonasidan foydalanadigan algebraik ko‘p panjarali usul. | Katta masalalar yoki iyerarxik xato komponentlari ustun bo‘lgan masalalar uchun. |
| AMG (SA-AMG) | HEC-MW ichiga o‘rnatilgan Smoothed Aggregation turidagi algebraik ko‘p panjarali usul. | Yuqoridagiga o‘xshash holatlar uchun; tashqi kutubxona qo‘shmasdan AMG ishlatish uchun. |
| SAINV | siyrak taxminiy teskari matritsa. | Kontakt masalalari yoki taqsimlangan muhitdagi maxsus oldindan shartlash uchun. |
| RIF | Robust Incomplete Factorization. | Incomplete factorization oilasidagi alternativ. |
SSOR standart tanlov bo‘lib, OpenMP parallelda ko‘p rangli tartiblash varianti ishlatiladi. Diagonal masshtablash yengil, ammo yaqinlashuvga ta’siri masalaga bog‘liq. BILU blokli incomplete LU faktorizatsiyasi sifatida amalga oshirilgan va umumiy DOF matritsalarini ham qo‘llaydi. BILU oilasida iterativ usul uzoqlashish qilsa SIGMA_DIAG diagonal tuzatish koeffitsiyentini avtomatik oshirib qayta urinish yo‘li mavjud; aniq qiymatlar kalit so‘z ma’lumotnomasida berilgan.
AMGning (algebraik ko‘p panjarali usulning) ikki amalga oshirilishi mavjud: tashqi Trilinos-ML kutubxonasidan foydalanadigan variant va HEC-MW ichki SA-AMG. Ular talab qilinadigan yig‘ish konfiguratsiyasi va mavjud opsiyalari turlicha bo‘lgan mustaqil amalga oshirishlardir.
Trilinos-ML asosidagi AMG uchun yig‘ish vaqtida ML yoqilgan bo‘lishi kerak. Silliqlagich, ko‘p panjarali sikl, qo‘pollashtirish sxemasi va boshqa sozlamalar berilishi mumkin; batafsil qiymatlar uchun kalit so‘z ma’lumotnomasiga qarang.
SA-AMG Smoothed Aggregation turidagi algebraik ko‘p panjarali oldindan shartlagich bo‘lib, Trilinos-ML talab qilmaydi. Biroq u ichkarida LAPACKdan foydalanadi, shu sababli LAPACK yoqilgan yig‘ma kerak; LAPACKsiz yig‘mada tanlansa, dastur tahlilni boshlamasdan tugaydi. Qo‘pol to‘rni yechishda MUMPS yoqilgan yig‘malarda MUMPSdan foydalanish mumkin; aks holda ichki zich matritsali to‘g‘ridan-to‘g‘ri usul ishlatiladi.
SA-AMG asosan simmetrik musbat aniqlangan tizimlarga (CG) mo‘ljallangan, ammo ishqalanishli kontakt natijasida hosil bo‘ladigan nosimmetrik qisqartirilgan tizimlarni ham qo‘llaydi (BiCGSTAB, GMRES va boshqalar). Har bir tugun uchun 1 (issiqlik o‘tkazuvchanlik), 2 (tekislik), 3 (hajmiy) va 6 (qobiq) erkinlik darajasini qo‘llaydi, ammo erkinlik darajalari soni tugunlar bo‘yicha turlicha bo‘lgan matritsalarni qo‘llamaydi. Qo‘pol to‘r yechuvchisi, ko‘p panjarali sikl, silliqlagich darajasi va boshqa opsiyalar berilishi mumkin, biroq standart tahlilda standart qiymatlardan foydalanish mumkin. Qiymatlar va sintaksis uchun kalit so‘z ma’lumotnomasiga qarang. GPU (OpenACC) yoqilgan yig‘malarda oldindan shartlagichni qo‘llash bosqichi GPUda bajariladi.
Kontakt yoki MPC cheklovlari mavjud parallel tahlilda SAINV ishlatilsa, soha dekompozitsiyasidagi ustma-ust tushish chuqurligi yaqinlashuvga ta’sir qilishi mumkin.
To‘g‘ridan-to‘g‘ri usullar¶
To‘g‘ridan-to‘g‘ri usul koeffitsiyent matritsasini faktorizatsiya qilib chiziqli tenglamani yechadi. Iteratsiya soniga bog‘liq bo‘lmagani uchun robust va kontakt yoki cheklovlarni o‘z ichiga olgan tahlilda barqaror tanlovdir. Biroq masala hajmi oshgan sari xotira sarfi ortadi.
| To‘g‘ridan-to‘g‘ri usul | Parallel muhit | Qo‘llanishi |
|---|---|---|
MUMPS | MPI parallel | Taqsimlangan xotira muhitda siyrak matritsani to‘g‘ridan-to‘g‘ri yechuvchi bilan yechadi. |
MKL | Intel MKL / OpenMP | Intel MKL to‘g‘ridan-to‘g‘ri yechuvchisi; ichkarida Intel PARDISO ishlaydi. Bir nechta MPI jarayonida Cluster MKL yo‘li ishlatiladi. DIRECTmkl — MKL aliasi. |
To‘g‘ridan-to‘g‘ri usullar simmetrik va nosimmetrik matritsalarning ikkalasida ishlaydi. MUMPS va MKL uchun yig‘ish vaqtida tegishli kutubxona bog‘langan bo‘lishi kerak. Kutubxonasiz muhitda ishlamaydi; zarur bog‘liqlik va CMake opsiyalari uchun yig‘ish qo‘llanmasiga qarang.
FrontISTR da tashqi kutubxonasiz ichki to‘g‘ridan-to‘g‘ri yechuvchi yo‘li ham mavjud, ammo odatiy tahlilda to‘g‘ridan-to‘g‘ri yechuvchi tanlansa MUMPS yoki MKL ni ko‘rib chiqing.
To‘g‘ridan-to‘g‘ri usulda oldindan shartlagich qo‘llanmaydi. !SOLVER da oldindan shartlagich ko‘rsatilgan bo‘lsa ham to‘g‘ridan-to‘g‘ri yechuvchi yo‘lida u hisobga olinmaydi.
MPC ishlov berish usullari¶
MPC ishlov usuli ko‘p nuqtali cheklov bilan bog‘langan DOF larni chiziqli tenglamaga aks ettirish usulidir. Kirishdagi cheklov tenglamasi bir xil bo‘lsa ham, ishlov usuliga qarab koeffitsiyent matritsasining xossalari va yaqinlashuv o‘zgaradi.
| MPC ishlov usuli | Tavsifi | Standart qo‘llanishi |
|---|---|---|
| Jarima usuli | Cheklov tenglamasiga katta qattiqlik qo‘shib uni taxminan bajaradi. | To‘g‘ridan-to‘g‘ri yechuvchi uchun standart. |
| Oshkora erkinlik darajalarini yo‘qotish | Cheklangan DOF larni yo‘qotib, qisqartirilgan chiziqli sistemani yechadi. | Iterativ usul uchun standart. |
To‘g‘ridan-to‘g‘ri yechuvchida jarima usuli, iterativ usulda oshkora erkinlik darajalarini yo‘qotish standart hisoblanadi. Ilgari tanlash mumkin bo‘lgan MPC-CG usuli olib tashlangan; MPCMETHOD=2 ko‘rsatilsa, ogohlantirish chiqariladi va tegishli standart usul qo‘llanadi.
Oshkora erkinlik darajalarini yo‘qotishda modal tahlil va oshkor usuldagi dinamik tahlilda ishlatiladigan jamlangan massalar ham qattiqlik matritsasi bilan bir xil almashtirish orqali qisqartiriladi. Qisqartirilgan massa matritsasi odatda diagonal bo‘lmagani uchun uning har bir satri yig‘indisi jamlangan massa sifatida ishlatiladi. Cheklov tenglamasi koeffitsiyentlari yig‘indisi 1 bo‘lgan bog‘lash yoki interpolatsiya cheklovlarida qaram erkinlik darajalarining massasi asosiy erkinlik darajalariga koeffitsiyentlarga mutanosib ravishda taqsimlanadi.
MPC ishlov usulini !SOLVER ning MPCMETHOD parametri bilan aniq ko‘rsatish mumkin. Qiymatlar ma’nosi va sintaksisi uchun kalit so‘z ma’lumotnomasiga qarang.
Kontakt erkinlik darajalarini yo‘qotish¶
Kontakt erkinlik darajalarini yo‘qotish — SLAGRANGE kontakt qo‘shadigan kontakt erkinlik darajalarini chiziqli yechuvchiga uzatishdan oldin qisqartirib ishlov berish funksiyasi. Kontakt DOF larni yo‘qotish iterativ usuldagi chiziqli sistemaning xossalarini yaxshilashi mumkin.
Standart avtomatik rejimda iterativ usulda kontakt erkinlik darajalarini yo‘qotish bajariladi, to‘g‘ridan-to‘g‘ri yechuvchida esa bajarilmaydi. To‘g‘ridan-to‘g‘ri yechuvchi uchun kontakt DOF larni o‘z ichiga olgan kengaytirilgan sistemani to‘g‘ridan-to‘g‘ri ishlash yo‘li mavjud.
CONTACT_ELIM aniq ko‘rsatilsa, to‘g‘ridan-to‘g‘ri yechuvchida ham kontakt erkinlik darajalarini yo‘qotish bajariladi. Kontakt turi, kontakt juftligi va kontakt algoritmi kirish sozlamalari uchun kontakt/joylashtirish sahifasiga qarang.
Yordamchi funksiyalar¶
Yechuvchi yaqinlashuvi va unumdorligini tekshirish uchun shartlanganlik sonini baholash, matritsa nusxasini saqlash va log chiqarish funksiyalaridan foydalanish mumkin. Odatdagi tahlilda ular kerak emas; nosozliklarni aniqlash yoki unumdorlik bahosi uchun yoqiladi.
| Funksiya | Qo‘llanishi | Izoh |
|---|---|---|
| Shartlanganlik sonini baholash | CG va GMRES uchun shartlanganlik soni indikatorini chiqaradi. | LAPACK yoqilgan holda yig‘ilgan versiyada ishlaydi. |
| Matritsa nusxasini saqlash | Yechuvchiga uzatiladigan matritsa va o‘ng tomonni faylga saqlaydi. | Matrix Market, CSR, BSR formatlarini qo‘llaydi. |
DUMPEXIT | Matritsa nusxasini saqlashdan so‘ng tahlilni tugatadi. | Faqat matritsani olib tashqi vositada tekshirish uchun. |
ITERLOG | Iterativ usul yaqinlashuv tarixini chiqaradi. | Qoldiqning o‘zgarishini tekshiradi. |
TIMELOG | Yechuvchi hisoblash vaqtini chiqaradi. | VERBOSE batafsil tafsilot chiqaradi. |
STEPLOG | Qadam ma’lumotlarini chiqaradi. | Tahlil tartibini tekshirish uchun. |
LOGLEVEL | AMG oldindan shartlagichlarining iyerarxiya tuzilishi kabi diagnostik ma’lumotlarni chiqaradi. | ITERLOG va TIMELOGdan mustaqil beriladi. Kattaroq qiymat ko‘proq chiqish hosil qiladi. |
Matritsa nusxasini saqlash tahlilda yig‘ilgan koeffitsiyent matritsasini tashqi vositada tekshirish uchun ishlatiladi. DUMPEXIT yoqilsa, matritsa va o‘ng tomon saqlangan zahoti tahlil tugaydi. Shartlanganlik sonini baholash CG va GMRES uchun eksperimental funksiya bo‘lib, yaqinlashuv diagnostikasi uchun ishlatiladi.
Tegishli mavzular¶
- Chiziqli yechuvchi (nazariya) — Iterativ usullar va oldindan shartlashning matematik prinsiplari.
- Nochiziqli iteratsiya va vaqt integratsiyasi — Chiziqli yechuvchini chaqiradigan Newton iteratsiyasi, kontakt iteratsiyasi va vaqt integrallashi doirasi.
- To‘rni bo‘lish — MPI parallel tahlili va ustma-ust tushish chuqurligi sozlamalari.
- Kontakt va ichiga joylashtirish — Kontakt turi va algoritmini tanlash.
- !SOLVER — Yechuvchi va oldindan shartlagich parametrlarining qiymatlari va sintaksisi.
- Majburiy va ixtiyoriy bog‘liqliklar —
MUMPS,MKL(Intel PARDISO), Trilinos-ML, LAPACK va boshqa dependencylar.