حلگر و پیششرطگذاری¶
حلگر خطی 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، اگر CG واگرا شود یا شکست بخورد، FrontISTR میتواند به روش تکراری جایگزین تغییر کند. این سازوکار جایگزین برای حالتی است که 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 | Sparse Approximate Inverse. | گزینه پیششرطگذاری ویژه برای مسائل تماس یا محیطهای حافظه توزیعشده. |
| RIF | Robust Incomplete Factorization. | گزینه دیگری از خانواده تجزیه ناقص. |
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 است و میتواند برای تشخیص رفتار همگرایی استفاده شود.
موارد مرتبط¶
- حلگر خطی (نظریه) — اصول ریاضی روشهای تکراری و پیششرطگذاری.
- تکرار غیرخطی و انتگرالگیری زمانی — چارچوب تکرارهای Newton، تکرارهای تماس و انتگرالگیری زمانی که حلگر خطی را فراخوانی میکند.
- تجزیه دامنه — تحلیل موازی MPI و تنظیم عمق همپوشانی.
- تماس و جاسازی — انتخاب نوع تماس و الگوریتم تماس.
- !SOLVER — مقادیر و قالب پارامترهای حلگر و پیششرطگذار.
- کتابخانههای وابسته ضروری و اختیاری — کتابخانههای وابسته مانند
MUMPS،MKL(Intel PARDISO)، Trilinos-ML و LAPACK.