Tarkibga o'tish

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. DIRECTmklMKL 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

AI-assisted translation May contain errors Official docs Status