सॉल्वर और प्रीकंडीशनिंग¶
FrontISTR का linear solver प्रत्यक्ष विधि या iterative method चुनता है, और iterative method में preconditioner को जोड़कर linear equations हल किए जाते हैं। MPC processing method और contact degree-of-freedom elimination सहायक विकल्प हैं जो यह निर्धारित करते हैं कि multi-point constraints और contact constraints वाले linear system को किस रूप में संभाला जाए।
सुविधाओं का समग्र अवलोकन¶
solver और preconditioning निम्न विकल्पों से बने हैं। पहले linear solver के रूप में iterative method या direct method में से एक चुनें; preconditioner केवल iterative method चुने जाने पर संयोजित किया जाता है।
| श्रेणी | मुख्य विकल्प | भूमिका |
|---|---|---|
| iterative methods | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
बड़े sparse matrices को memory-efficient तरीके से हल करते हैं। |
| iterative methods के preconditioners | SSOR, diagonal scaling, BILU, AMG, SAINV, RIF | iterative method की convergence सुधारते हैं। direct method में उपयोग नहीं होते। |
| direct methods | MUMPS, MKL |
factorization द्वारा linear equations को robust तरीके से हल करते हैं। |
| MPC processing methods | penalty method, MPC-CG method, explicit degree-of-freedom elimination | multi-point constraints को linear system में लागू करते हैं। |
| contact degree-of-freedom elimination | automatic, always enabled | SLAGRANGE contact द्वारा जोड़े गए contact degrees of freedom का प्रबंधन बदलता है। |
| सहायक सुविधाएँ | condition-number estimation, matrix dump, log output | debugging, convergence checking और performance evaluation में सहायता करती हैं। |
समानांतर execution में domain decomposition द्वारा MPI parallelism और OpenMP thread parallelism को जोड़ा जा सकता है। iterative methods बड़े parallel analyses के लिए मानक विकल्प हैं; direct methods उन environments में उपयोग होते हैं जहाँ संबंधित libraries linked हों और अधिक robust solution आवश्यक हो।
solver और preconditioner का चयन¶
पहले तय करें कि iterative method या direct method में से कौन-सा उपयोग करना है; iterative method चुनने पर अगला कदम preconditioner चुनना है।
| निर्णय का आधार | अनुशंसित दृष्टिकोण |
|---|---|
| समस्या का आकार | छोटे और मध्यम आकार की समस्याओं में direct method स्थिर और उपयोग में सरल है। बड़े पैमाने पर iterative method memory-efficient होता है। |
| matrix symmetry | symmetric positive-definite समस्या में CG को उम्मीदवार मानें। non-symmetric समस्या में BiCGSTAB, GMRES, GPBiCG आदि पर विचार करें। |
| parallel environment | MPI parallelism में iterative method को domain decomposition के साथ उपयोग करें। OpenMP parallelism के preconditioner के रूप में multicolor-supporting SSOR पर विचार करें। |
| preconditioner (iterative method चुनने पर) | पहले default SSOR आज़माएँ, फिर AMG पर विचार करें। convergence अच्छी हो तो हल्का SSOR उपयुक्त है; जटिल बड़े problems के लिए AMG preconditioner अच्छा विकल्प है। |
| contact / MPC | contact analysis या multi-point constraints वाले analysis में MPC processing method और contact degree-of-freedom elimination की पसंद convergence और robustness को प्रभावित करती है। |
| external libraries | MUMPS, MKL और AMG को संबंधित libraries linked किए गए build में उपयोग करें। |
मानक analysis में convergence criterion, maximum iterations और preconditioner diagonal-correction coefficient जैसे मान सामान्यतः default पर पर्याप्त होते हैं। केवल convergence धीमी होने या divergence होने पर iterative method, preconditioner, MPC processing method और contact degree-of-freedom elimination को क्रम से पुनःजाँचें। parameter values और format के लिए keyword reference में !SOLVER देखें।
पुनरावृत्त विधियाँ¶
iterative method बड़े sparse matrices के लिए matrix-vector multiplication और preconditioning को बार-बार लागू करके solution update करता है। FrontISTR में निम्न iterative methods चुने जा सकते हैं।
| iterative method | उपयोग का संकेत | टिप्पणी |
|---|---|---|
CG |
symmetric positive-definite problems | structural analysis और heat-conduction analysis का मानक उम्मीदवार। |
BiCGSTAB |
non-symmetric problems | contact या coupled problems में asymmetry अधिक होने पर उम्मीदवार। |
GMRES |
non-symmetric problems | Krylov subspace size निर्दिष्ट करके उपयोग किया जाता है। |
GPBiCG |
non-symmetric problems | BiCGSTAB family की improved method के रूप में उपयोग। |
GMRESR |
non-symmetric problems, advanced use | nested GMRES के विकल्प के रूप में। |
GMRESREN |
non-symmetric problems, advanced use | GMRESR family का recursive version। |
CG मानता है कि matrix symmetric positive definite है। frictional contact, non-symmetric constraint processing या coupling effects से asymmetry अधिक होने पर BiCGSTAB, GMRES, GPBiCG आदि पर विचार करें। GMRES में Krylov subspace size बढ़ाने से convergence बेहतर हो सकती है, लेकिन memory usage भी बढ़ती है।
METHOD2 निर्दिष्ट करने पर CG के diverge या breakdown होने पर वैकल्पिक iterative method पर switch किया जा सकता है। यह CG को primary solver मानने वाली fallback सुविधा है और अन्य settings तथा data lines primary solver के समान रहती हैं।
प्रीकंडीशनिंग¶
preconditioning coefficient matrix को रूपांतरित करके iterative method की convergence सुधारता है और केवल iterative method चुने जाने पर लागू होता है। direct method में preconditioning उपयोग नहीं होती। समान iterative method में भी preconditioner की पसंद से convergence तक iterations और computation time काफी बदल सकते हैं।
| preconditioner | विशेषताएँ | उपयोग का संकेत |
|---|---|---|
| SSOR | मानक preconditioner। multicolor ordering समर्थित है। | पहला उम्मीदवार। structural analysis में व्यापक उपयोग। |
| diagonal scaling | diagonal components का उपयोग करने वाला हल्का preconditioner। | computation cost कम रखना हो। |
| BILU | block-wise incomplete LU factorization। | SSOR से कठिन convergence वाली समस्याओं का उम्मीदवार। |
| AMG | Trilinos-ML द्वारा algebraic multigrid। | बड़े problems या hierarchical error components से प्रभावित problems का उम्मीदवार। |
| SAINV | Sparse Approximate Inverse। | contact problems या distributed environments में विशेष preconditioning का उम्मीदवार। |
| RIF | Robust Incomplete Factorization। | incomplete-factorization family का अन्य उम्मीदवार। |
SSOR मानक विकल्प है और OpenMP parallelism में multicolor-ordering version उपयोग किया जाता है। diagonal scaling हल्का है, लेकिन convergence improvement problem पर निर्भर करता है। BILU block-wise incomplete LU factorization के रूप में implemented है और general DOF matrices का समर्थन करता है। BILU family में iterative method diverge होने पर diagonal-correction coefficient SIGMA_DIAG स्वतः बढ़ाकर retry करने का path है; मान का specification keyword reference में दिया गया है।
AMG Trilinos-ML उपयोग करता है, इसलिए build में ML सक्षम होना आवश्यक है। smoother, multigrid cycle और coarsening scheme आदि निर्दिष्ट किए जा सकते हैं, लेकिन विस्तृत values keyword reference में देखें। contact problems या MPC वाले parallel analysis में SAINV उपयोग करने पर domain-decomposition overlap depth convergence को प्रभावित कर सकती है।
प्रत्यक्ष विधियाँ¶
direct method coefficient matrix को factorize करके linear equations हल करता है। iterations पर निर्भर न होने के कारण यह robust है और contact analysis या constraints वाले analysis में stable विकल्प हो सकता है। दूसरी ओर problem size बढ़ने पर memory usage बढ़ती है।
| direct method | parallel environment | उपयोग |
|---|---|---|
MUMPS |
MPI parallel | distributed-memory environment में sparse matrix को direct solution से हल करता है। |
MKL |
Intel MKL / OpenMP | Intel MKL की direct method। आंतरिक रूप से Intel PARDISO चलता है। कई MPI processes में Cluster MKL path उपयोग होता है। DIRECTmkl, MKL का alias है। |
direct methods symmetric और non-symmetric दोनों matrices के लिए उपयोग किए जा सकते हैं। MUMPS और MKL के लिए build के समय संबंधित library linked होना आवश्यक है। library उपलब्ध न हो तो इनका उपयोग नहीं किया जा सकता; आवश्यक dependencies और CMake options के लिए build guide देखें।
FrontISTR में external library के बिना एक built-in direct-method path भी है, लेकिन सामान्य analysis में direct method चुनते समय MUMPS या MKL को उम्मीदवार रखें।
direct method में preconditioning लागू नहीं होती। !SOLVER में preconditioner निर्दिष्ट हो तब भी direct-method path में उसका उपयोग नहीं किया जाता।
MPC प्रसंस्करण विधियाँ¶
MPC processing method multi-point constraints से जुड़े degrees of freedom को linear equations में लागू करने की विधि है। input constraint equation समान रहने पर भी processing method से coefficient matrix के गुण और convergence बदलते हैं।
| MPC processing method | स्थिति | default उपयोग |
|---|---|---|
| penalty method | constraint equation में बड़ी stiffness जोड़कर उसे approximate रूप से संतुष्ट करता है। | direct method में default। |
| MPC-CG method | constraints सहित matrix-vector product को iterative method के भीतर संभालने वाली legacy method। | अनुशंसित नहीं। |
| explicit degree-of-freedom elimination | constrained degrees of freedom हटाकर reduced linear system हल करता है। | iterative method में default। |
direct method में penalty method default है और iterative method में explicit degree-of-freedom elimination default है। MPC-CG method compatibility के लिए legacy विकल्प है; सामान्य नए analysis में explicit degree-of-freedom elimination या direct method का default उपयोग करें।
MPC processing method को !SOLVER के MPCMETHOD से स्पष्ट रूप से निर्दिष्ट किया जा सकता है। values का अर्थ और format keyword reference में देखें।
संपर्क स्वतंत्रता-डिग्री उन्मूलन¶
contact degree-of-freedom elimination SLAGRANGE contact द्वारा जोड़े गए contact degrees of freedom को linear solver को देने से पहले reduce करने की सुविधा है। contact degrees of freedom हटाने से iterative method द्वारा संभाले जाने वाले linear system के गुण बेहतर हो सकते हैं।
default automatic mode में iterative method उपयोग करते समय contact degrees of freedom हटाए जाते हैं, जबकि direct method में नहीं हटाए जाते। direct method में contact degrees of freedom वाले expanded system को सीधे संभालने का path उपलब्ध है।
CONTACT_ELIM स्पष्ट रूप से निर्दिष्ट करने पर direct method के साथ भी contact degree-of-freedom elimination किया जा सकता है। contact type, contact pair और contact algorithm के input-side selection के लिए contact/embedding page देखें।
सहायक सुविधाएँ¶
solver convergence और performance की जाँच के लिए condition-number estimation, matrix dump और log output उपयोग किए जा सकते हैं। सामान्य analysis में ये आवश्यक नहीं हैं; debugging या performance evaluation के लिए सक्षम करें।
| सुविधा | उपयोग | टिप्पणी |
|---|---|---|
| condition-number estimation | CG और GMRES में condition number का indicator output करता है। |
LAPACK-enabled build में उपलब्ध। |
| matrix dump | solver को दिए जाने वाले matrix और right-hand side को फ़ाइल में सहेजता है। | Matrix Market, CSR और BSR formats समर्थित। |
DUMPEXIT |
matrix dump के बाद analysis समाप्त करता है। | केवल matrix निकालकर external validation करना हो। |
ITERLOG |
iterative method का convergence history output करता है। | residual की प्रगति देखने के लिए। |
TIMELOG |
solver computation time output करता है। | VERBOSE में विस्तृत breakdown output होता है। |
STEPLOG |
step information output करता है। | analysis procedure की जाँच के लिए। |
matrix dump analysis में assembled coefficient matrix को external tools से जाँचने की सुविधा है। DUMPEXIT सक्षम करने पर matrix और right-hand side सहेजे जाते ही analysis समाप्त हो जाता है। condition-number estimation CG और GMRES में उपलब्ध experimental सुविधा है और convergence diagnosis के लिए उपयोग होती है।
संबंधित विषय¶
- linear solver (सिद्धांत) — iterative methods और preconditioning के गणितीय सिद्धांत।
- nonlinear iteration और time integration — linear solver को बुलाने वाले Newton iterations, contact iterations और time integration का ढाँचा।
- domain decomposition — MPI parallel analysis और overlap depth का specification।
- contact और embedding — contact type और contact algorithm का चयन।
- !SOLVER — solver और preconditioner parameters के values और format।
- अनिवार्य और वैकल्पिक dependency libraries —
MUMPS,MKL(Intel PARDISO), Trilinos-ML, LAPACK आदि dependencies।