Solver va preconditioner¶
FrontISTR chiziqli solveri to‘g‘ridan-to‘g‘ri yoki iterativ usulni tanlaydi; iterativ usulda chiziqli tenglamalarni yechish uchun preconditioner bilan birga ishlaydi. MPC ishlov berish usuli va contact erkinlik darajalarini yo‘qotish ko‘p nuqtali cheklovlar yoki contact cheklovlarini o‘z ichiga olgan chiziqli sistemani qanday shaklda ko‘rishni belgilaydigan qo‘shimcha tanlovlardir.
Funksiyaning umumiy ko‘rinishi¶
Solver va preconditioner quyidagi variantlardan tashkil topadi. Avval chiziqli solver sifatida iterativ yoki to‘g‘ridan-to‘g‘ri usul tanlanadi; preconditioner 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 preconditioner | SSOR, diagonal scaling, 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 | Penalty usuli, MPC-CG usuli, explicit DOF elimination | Ko‘p nuqtali cheklovni chiziqli sistemaga aks ettiradi. |
| Contact DOF elimination | Avtomatik, doimo faol | SLAGRANGE contact qo‘shadigan contact DOF lariga ishlov berishni almashtiradi. |
| Yordamchi funksiyalar | Condition number baholash, matritsa dumpi, log chiqarish | Debug, yaqinlashuvni tekshirish va unumdorlikni baholashga yordam beradi. |
Parallel bajarishda domain decomposition asosidagi MPI parallelizmi va OpenMP thread parallelizmini birlashtirish mumkin. Iterativ usullar katta parallel tahlil uchun odatiy tanlovdir; to‘g‘ridan-to‘g‘ri usullar esa tegishli kutubxonalar link qilingan muhitda yanada robust yechim kerak bo‘lganda ishlatiladi.
Solver va preconditionerni tanlash¶
Avval iterativ yoki to‘g‘ridan-to‘g‘ri usuldan qaysi biri ishlatilishini tanlang; iterativ usul tanlansa, keyin preconditionerni 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 domain decomposition bilan birlashtiring. OpenMP paralleldagi preconditioner uchun multicolor SSOR ni ko‘rib chiqing. |
| Preconditioner (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 preconditioner mos keladi. |
| Contact va MPC | Contact tahlili yoki ko‘p nuqtali cheklovlarda MPC ishlov usuli va contact DOF elimination tanlovi yaqinlashuv va robustlikka ta’sir qiladi. |
| Tashqi kutubxonalar | MUMPS, MKL va AMG tegishli kutubxonalar link qilingan buildda ishlatiladi. |
Odatdagi tahlilda convergence tolerance, maksimal iteratsiyalar soni va preconditioner diagonal correction koeffitsiyenti kabi parametrlar standart qiymatlarda yetarli ishlaydi. Faqat yaqinlashuv sekin yoki divergence yuz bersa, iterativ usul, preconditioner, MPC ishlov usuli va contact DOF elimination ni navbat bilan qayta ko‘rib chiqing. Parametr qiymatlari va sintaksisi uchun keyword reference dagi !SOLVER ga qarang.
Iterativ usullar¶
Iterativ usul katta siyrak matritsalar uchun matritsa-vektor ko‘paytmasi va preconditioningni takrorlab yechimni yangilaydi. FrontISTR da quyidagi iterativ usullar tanlanadi.
| Iterativ usul | Qo‘llanish mezoni | Izoh |
|---|---|---|
CG | Simmetrik musbat aniq masala | Strukturaviy va issiqlik o‘tkazuvchanligi tahlilida odatiy tanlov. |
BiCGSTAB | Nosimmetrik masala | Contact yoki coupling sabab nosimmetriya kuchli bo‘lsa mos variant. |
GMRES | Nosimmetrik masala | Krylov subspace o‘lchami ko‘rsatilib ishlatiladi. |
GPBiCG | Nosimmetrik masala | BiCGSTAB oilasining takomillashtirilgan usuli sifatida ishlatiladi. |
GMRESR | Nosimmetrik masala, ilg‘or qo‘llanish | GMRES ni nested tarzda ishlatadigan variant. |
GMRESREN | Nosimmetrik masala, ilg‘or qo‘llanish | GMRESR oilasining rekursiv varianti. |
CG matritsaning simmetrik musbat aniq bo‘lishini talab qiladi. Ishqalanishli contact, nosimmetrik constraint ishlovi yoki coupling sabab nosimmetriya kuchli bo‘lsa BiCGSTAB, GMRES, GPBiCG kabi usullarni tanlang. GMRES da Krylov subspace o‘lchamini oshirish yaqinlashuvni yaxshilashi mumkin, ammo xotira sarfi ham ortadi.
METHOD2 ko‘rsatilsa, CG divergence qilganda yoki ishlamay qolganda alternativ iterativ usulga o‘tish mumkin. Bu CG asosiy solver bo‘lgan holat uchun fallback bo‘lib, boshqa sozlamalar va data qatorlari asosiy solver bilan bir xil ishlatiladi.
Preconditionerlar¶
Preconditioning iterativ usul yaqinlashuvini yaxshilash uchun koeffitsiyent matritsasini transformatsiya qiladi va faqat iterativ usulda qo‘llanadi. To‘g‘ridan-to‘g‘ri usulda preconditioner ishlatilmaydi. Bir xil iterativ usulning o‘zida ham preconditioner tanlovi iteratsiyalar soni va hisoblash vaqtini keskin o‘zgartirishi mumkin.
| Preconditioner | Xususiyati | Qo‘llanish mezoni |
|---|---|---|
| SSOR | Standart preconditioner; multicolor orderingni qo‘llaydi. | Birinchi sinab ko‘riladigan variant; strukturaviy tahlilda keng ishlatiladi. |
| Diagonal scaling | Diagonal komponentlardan foydalanadigan yengil preconditioner. | Hisoblash xarajatini kamaytirish kerak bo‘lganda. |
| BILU | Blok bo‘yicha incomplete LU faktorizatsiyasi. | SSOR bilan qiyin yaqinlashadigan masalalar uchun. |
| AMG | Trilinos-ML asosidagi algebraik multigrid. | Katta masalalar yoki ko‘p masshtabli xato komponentlari dominant bo‘lgan masalalar uchun. |
| SAINV | Sparse Approximate Inverse. | Contact masalalari yoki distributed muhitdagi maxsus preconditioning uchun. |
| RIF | Robust Incomplete Factorization. | Incomplete factorization oilasidagi alternativ. |
SSOR standart tanlov bo‘lib, OpenMP parallelda multicolor ordering varianti ishlatiladi. Diagonal scaling 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 divergence qilsa SIGMA_DIAG diagonal correction koeffitsiyentini avtomatik oshirib qayta urinish yo‘li mavjud; aniq qiymatlar keyword reference da berilgan.
AMG Trilinos-ML dan foydalanadi, shu sababli build vaqtida ML yoqilgan bo‘lishi kerak. Smoother, multigrid cycle va coarsening usuli kabi parametrlar berilishi mumkin; batafsil qiymatlar keyword reference da ko‘rsatilgan. Contact yoki MPC ni o‘z ichiga olgan parallel tahlilda SAINV ishlatilsa, domain decomposition dagi overlap depth 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 contact yoki constraintlarni 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 | Distributed-memory muhitda siyrak matritsani direct solver bilan yechadi. |
MKL | Intel MKL / OpenMP | Intel MKL direct solveri; ichkarida Intel PARDISO ishlaydi. Bir nechta MPI processda 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 build vaqtida tegishli kutubxona link qilingan bo‘lishi kerak. Kutubxonasiz muhitda ishlamaydi; zarur dependency va CMake opsiyalari uchun build qo‘llanmasiga qarang.
FrontISTR da tashqi kutubxonasiz built-in direct solver yo‘li ham mavjud, ammo odatiy tahlilda direct solver tanlansa MUMPS yoki MKL ni ko‘rib chiqing.
To‘g‘ridan-to‘g‘ri usulda preconditioner qo‘llanmaydi. !SOLVER da preconditioner ko‘rsatilgan bo‘lsa ham direct solver 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 constraint tenglamasi bir xil bo‘lsa ham, ishlov usuliga qarab koeffitsiyent matritsasining xossalari va yaqinlashuv o‘zgaradi.
| MPC ishlov usuli | Tavsifi | Standart qo‘llanishi |
|---|---|---|
| Penalty usuli | Constraint tenglamasiga katta qattiqlik qo‘shib uni taxminan bajaradi. | Direct solver uchun standart. |
| MPC-CG usuli | Constraintlarni o‘z ichiga olgan matritsa-vektor ko‘paytmasini iterativ usul ichida ishlaydigan eski usul. | Tavsiya etilmaydi. |
| Explicit DOF elimination | Cheklangan DOF larni yo‘qotib, qisqartirilgan chiziqli sistemani yechadi. | Iterativ usul uchun standart. |
Direct solverda penalty usuli, iterativ usulda explicit DOF elimination standart hisoblanadi. MPC-CG moslik uchun saqlangan eski variant; yangi tahlillarda explicit DOF elimination yoki direct solverning standart usulidan foydalaning.
MPC ishlov usulini !SOLVER ning MPCMETHOD parametri bilan aniq ko‘rsatish mumkin. Qiymatlar ma’nosi va sintaksisi uchun keyword reference ga qarang.
Contact erkinlik darajalarini yo‘qotish¶
Contact DOF elimination — SLAGRANGE contact qo‘shadigan contact erkinlik darajalarini chiziqli solverga uzatishdan oldin qisqartirib ishlov berish funksiyasi. Contact DOF larni yo‘qotish iterativ usuldagi chiziqli sistemaning xossalarini yaxshilashi mumkin.
Standart avtomatik rejimda iterativ usulda contact DOF elimination bajariladi, direct solverda esa bajarilmaydi. Direct solver uchun contact DOF larni o‘z ichiga olgan kengaytirilgan sistemani to‘g‘ridan-to‘g‘ri ishlash yo‘li mavjud.
CONTACT_ELIM aniq ko‘rsatilsa, direct solverda ham contact DOF elimination bajariladi. Contact turi, contact pair va contact algoritmi kirish sozlamalari uchun contact/embedding sahifasiga qarang.
Yordamchi funksiyalar¶
Solver yaqinlashuvi va unumdorligini tekshirish uchun condition number baholash, matritsa dumpi va log chiqarish funksiyalaridan foydalanish mumkin. Odatdagi tahlilda ular kerak emas; debug yoki unumdorlik bahosi uchun yoqiladi.
| Funksiya | Qo‘llanishi | Izoh |
|---|---|---|
| Condition number baholash | CG va GMRES uchun condition number indikatorini chiqaradi. | LAPACK yoqilgan buildda ishlaydi. |
| Matritsa dumpi | Solverga uzatiladigan matritsa va o‘ng tomonni faylga saqlaydi. | Matrix Market, CSR, BSR formatlarini qo‘llaydi. |
DUMPEXIT | Matritsa dumpidan so‘ng tahlilni tugatadi. | Faqat matritsani olib tashqi vositada tekshirish uchun. |
ITERLOG | Iterativ usul convergence tarixini chiqaradi. | Qoldiqning o‘zgarishini tekshiradi. |
TIMELOG | Solver hisoblash vaqtini chiqaradi. | VERBOSE batafsil breakdown chiqaradi. |
STEPLOG | Step ma’lumotlarini chiqaradi. | Tahlil tartibini tekshirish uchun. |
Matritsa dumpi tahlilda yig‘ilgan koeffitsiyent matritsasini tashqi vositada tekshirish uchun ishlatiladi. DUMPEXIT yoqilsa, matritsa va o‘ng tomon saqlangan zahoti tahlil tugaydi. Condition number baholash CG va GMRES uchun eksperimental funksiya bo‘lib, yaqinlashuv diagnostikasi uchun ishlatiladi.
Tegishli mavzular¶
- Chiziqli solver (nazariya) — Iterativ usullar va preconditioningning matematik prinsiplari.
- Nochiziqli iteratsiya va vaqt integrallashi — Chiziqli solverni chaqiradigan Newton iteratsiyasi, contact iteratsiyasi va vaqt integrallashi doirasi.
- Domain decomposition — MPI parallel tahlil va overlap depth sozlamasi.
- Contact va embedding — Contact turi va algoritmini tanlash.
- !SOLVER — Solver va preconditioner parametrlarining qiymatlari va sintaksisi.
- Majburiy va ixtiyoriy dependency kutubxonalari —
MUMPS,MKL(Intel PARDISO), Trilinos-ML, LAPACK va boshqa dependencylar.