!SOLVER¶
کنترل حلگر
دادهٔ کنترلی الزامی.
پارامترها¶
METHOD = روش حل (CG، BiCGSTAB، GMRES، GPBiCG، CR، DIRECT، DIRECTmkl، MUMPS)
DIRECT : روش مستقیم بهجز تحلیل تماس (فقط پردازش ترتیبی) (در حال حاضر قابل استفاده نیست)
DIRECTmkl : روش مستقیم با Intel MKL
MUMPS : روش مستقیم با MUMPS
هنگام انتخاب روش مستقیم، خطوط داده نادیده گرفته میشوند.
برای مسائل با 3 درجه آزادی، روشهای تکراری امکان اجرای موازی رشتهای با OpenMP را دارند
PRECOND = روش پیششرطگذاری برای حلگرهای تکراری (1، 2، 3، 5، 10، 11، 12، 22)
1, 2 : (Block) SSOR (فقط برای مسائل با 3 درجه آزادی همراه با مرتبسازی چندرنگ)
3 : مقیاسبندی قطری (بلوکی)
5 : AMG با استفاده از بستهٔ پیششرطگذاری چندشبکهای ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : AMG با استفاده از SA-AMG داخلی HEC-MW (Smoothed Aggregation AMG)
10، 11 و 12 فقط برای مسائل با 3 درجه آزادی قابل استفادهاند
22 فقط در ساختهایی که LAPACK در آنها فعال است قابل استفاده است
در اجرای موازی رشتهای با OpenMP، SSOR، مقیاسبندی قطری، ML یا SA-AMG توصیه میشود
ITERLOG = وجود یا عدم خروجی تاریخچهٔ همگرایی حلگر تکراری (YES/NO)(پیشفرض: NO)
TIMELOG = وجود یا عدم خروجی زمان محاسبهٔ حلگر (YES/NO/VERBOSE)(پیشفرض: NO)
LOGLEVEL = سطح خروجی اطلاعات تشخیصی پیششرطگذار (عدد صحیح)(پیشفرض: بدون خروجی)
مستقل از ITERLOG و TIMELOG مشخص میشود
در مقدار 1 یا بیشتر، ساختار سلسلهمراتبی و سایر اطلاعات پیششرطگذارهای AMG (PRECOND=5,22) را خروجی میدهد
در مقدار 2 یا بیشتر، اطلاعات دقیقتر (مانند مصرف حافظه) را خروجی میدهد
USEJAD = وجود یا عدم مرتبسازی برای پردازندههای برداری (YES/NO)(پیشفرض: NO)
فقط هنگام استفاده از روش تکراری برای مسئلهٔ 3 درجه آزادی معتبر است
SCALING = وجود یا عدم مقیاسبندی ماتریس بهگونهای که مؤلفههای قطری 1 شوند (YES/NO)(پیشفرض: NO)
فقط هنگام استفاده از روش تکراری برای مسئلهٔ 3 درجه آزادی معتبر است
DUMPTYPE = قالب تخلیهٔ ماتریس (NONE، MM، CSR، BSR) (عمدتاً برای اشکالزدایی)
NONE : تخلیه انجام نشود (پیشفرض)
MM : قالب Matrix Market
CSR : قالب Compressed Sparse Row (CSR)
BSR : قالب Blocked CSR
DUMPEXIT = پایان برنامه بلافاصله پس از تخلیهٔ ماتریس (YES/NO)(پیشفرض: NO)
MPCMETHOD = روش پردازش قیود چندنقطهای (1، 3)
1: روش جریمه (پیشفرض هنگام استفاده از روش مستقیم)
3: حذف صریح درجات آزادی (پیشفرض هنگام استفاده از روش تکراری)
روش MPC-CG با شمارهٔ 2 حذف شده است. اگر 2 مشخص شود، هشدار صادر میشود و روش پیشفرض به کار میرود.
ESTCOND = بسامد برآورد عدد شرط (آزمایشی)
عدد شرط را در هر فاصلهٔ تکرار تعیینشده و در پایان تکرارها برآورد میکند
اگر 0 مشخص شود، برآورد انجام نمیشود
RECOMPUTE_RESIDUAL = بسامد بازمحاسبهٔ بردار باقیمانده
فقط هنگامی معتبر است که برای METHOD یکی از CG، BiCGSTAB، GPBiCG یا PipeCG مشخص شده باشد
روشهای تکراری بردار باقیمانده را با رابطهٔ بازگشتی بهروزرسانی میکنند و در نتیجه خطاهای گردکردن انباشته میشود
در هر فاصلهٔ تکرار مشخصشده، بردار باقیمانده از {b}-[A]{x} دوباره محاسبه میشود
اگر 0 مشخص شود، مقدار پیشفرض هر روش استفاده میشود (CG: 50، BiCGSTAB: 100، GPBiCG: 20، PipeCG: 50)
اگر مقدار منفی مشخص شود، بازمحاسبهٔ دورهای انجام نمیشود
بازمحاسبه برای تأیید برآوردهشدن معیار همگرایی مستقل از این تنظیم همیشه انجام میشود
فاصلهٔ بیش از حد کوتاه نهتنها تعداد حاصلضربهای ماتریس-بردار را افزایش میدهد، بلکه ممکن است
خود همگرایی را نیز بدتر کند یا حتی مانع همگرایی شود
اگر مقدار پیشفرض تغییر داده شود، تاریخچهٔ همگرایی و باقیماندهٔ نسبی نهایی را بررسی کنید
METHOD2 = روش حل شمارهٔ 2 (BiCGSTAB، GMRES، GPBiCG) (آزمایشی)
فقط هنگامی معتبر است که برای METHOD مقدار CG مشخص شده باشد
اگر روش CG واگرا شود، بهطور خودکار به روش دوم تغییر داده و حل را ادامه میدهد
برای دیگر پارامترها و خطوط داده از همان مقادیر استفاده میشود
CONTACT_ELIM = مشخص میکند آیا در تحلیل تماس حذف درجات آزادی انجام شود یا نه (0,1)
0: فقط هنگام استفاده از روش تکراری حذف درجات آزادی انجام شود (پیشفرض)
1: همیشه حذف درجات آزادی انجام شود (از جمله هنگام استفاده از روش مستقیم)
** خط 2 و پس از آن **
| نام متغیر | ویژگی | محتوا |
|---|---|---|
| NITER | I | تعداد تکرارها (پیشفرض: 100) |
| iterPREmax | I | تعداد تکرارهای پیششرطگذاری Additive Schwarz (پیشفرض: 1) (مقدار توصیهشده 1 است؛ در برخی محاسبات موازی 2 نیز میتواند مؤثر باشد) |
| NREST | I | اندازهٔ زیرفضای کریلوف (پیشفرض: 10) (فقط وقتی GMRES بهعنوان روش حل انتخاب شده باشد معتبر است) |
| NCOLOR_IN | I | تعداد هدف رنگها در مرتبسازی چندرنگ (پیشفرض: 10) (فقط وقتی تعداد رشتههای OpenMP برابر 2 یا بیشتر باشد معتبر است) |
| RECYCLEPRE | I | تعداد دفعات بازاستفاده از اطلاعات آمادهسازی پیششرطگذار (پیشفرض: 3) (فقط در تحلیل غیرخطی معتبر است) |
| نام متغیر | ویژگی | محتوا |
|---|---|---|
| RESID | R | خطای قطع (پیشفرض: 1.0e-8) |
| SIGMA_DIAG | R | ضریب مقیاس اعمالشده به مؤلفههای قطری هنگام محاسبهٔ ماتریس پیششرطگذاری (پیشفرض: 1.0) (اگر در پیششرطگذاری ILU تقسیم بر صفر یا واگرایی رخ دهد، با تنظیم مقداری بزرگتر از 1.0 ممکن است مسئله حل شود) |
| SIGMA | R | استفاده نمیشود (پیشفرض: 0.0) |
وقتی PRECOND=5 است (قابل حذف)¶
اگر برای PRECOND مقداری غیر از 5 یا 22 مشخص شود، خط 4 نادیده گرفته میشود.
| نام متغیر | ویژگی | محتوا |
|---|---|---|
| ML_CoarseSolver | I | حلگر شبکهٔ درشت ML (1: استفاده از هموارساز، 2: KLU (روش مستقیم ترتیبی)، 3: MUMPS (روش مستقیم موازی)) (پیشفرض: 1) (توصیه: برای مسائل دشوار 3 یا 2، برای مسائل معمولی 1) |
| ML_Smoother | I | هموارساز ML (1: Chebyshev، 2: SymBlockGaussSeidel، 3: Jacobi) (پیشفرض: 1) (مقدار توصیهشده 1 است) |
| ML_MGCycle | I | چرخهٔ چندشبکهای ML (1: V-cycle، 2: W-cycle، 3: Full-V-cycle) (پیشفرض: 1) (توصیه: برای مسائل دشوار 2، برای مسائل معمولی 1) |
| ML_MaxLevels | I | حداکثر تعداد سطوح ML (پیشفرض: 10) (برای مسائل بهویژه دشوار، حلگر شبکهٔ درشت را روش مستقیم قرار دهید و از 2 سطح استفاده کنید (یا 3 اگر حافظه کافی نیست)؛ برای مسائل معمولی 10 توصیه میشود) |
| ML_CoarseningScheme | I | طرح درشتسازی ML (1: UncoupledMIS، 2: METIS، 4: Zoltan، 5: DD) (پیشفرض: 1) (مقدار توصیهشده 1 یا 5 است) |
| ML_NumSweep | I | تعداد جاروبهای هموارساز ML (برای Chebyshev درجهٔ چندجملهای) (پیشفرض: 2) (توصیه: برای Chebyshev مقدار 2، برای SymBlockGaussSeidel مقدار 1) |
وقتی PRECOND=22 است (قابل حذف)¶
اگر برای PRECOND مقداری غیر از 22 مشخص شود، خط 5 نادیده گرفته میشود. هر دو خط 4 و 5 را میتوان بهطور کامل حذف کرد و موارد انتهایی هر خط نیز قابل حذفاند. برای هر موردی که مقدار 0 داشته باشد، مقدار پیشفرض استفاده میشود.
موارد 1 تا 7 خط 4 با همان ترتیب خط گزینهٔ PRECOND=5 (ML) قرار دارند؛ بنابراین خط گزینهٔ ML را میتوان بدون تغییر بازاستفاده کرد. موارد 8 تا 10 ویژهٔ SA-AMG هستند.
(خط 4) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (استفادهنشده), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (استفادهنشده)
| نام متغیر | ویژگی | محتوا |
|---|---|---|
| SA_CoarseSolver | I | حلگر شبکهٔ درشت (0: خودکار، 1: استفاده از هموارساز، 2: روش مستقیم ماتریس چگال، 3: MUMPS (روش مستقیم موازی)) (پیشفرض: 0) (در حالت خودکار، در ساختهای دارای MUMPS از MUMPS و در غیر این صورت از روش مستقیم ماتریس چگال استفاده میشود) |
| SA_Smoother | I | هموارساز (0 یا 1: Chebyshev) (پیشفرض: 0) (فقط Chebyshev پشتیبانی میشود. اگر مقدار دیگری مشخص شود، هشدار صادر و Chebyshev استفاده میشود) |
| SA_MGCycle | I | چرخهٔ چندشبکهای (0: پیشفرض (W-cycle)، 1: V-cycle، 2: W-cycle) (پیشفرض: 0) (Full-V-cycle پشتیبانی نمیشود) |
| SA_MaxLevels | I | حداکثر تعداد سطوح (پیشفرض: 20) |
| (استفادهنشده) | I | جایگاه متناظر با طرح درشتسازی ML. چون SA-AMG همیشه از تجمیع غیرجفتشده استفاده میکند، مقدار غیر از 0 هشدار ایجاد میکند و نادیده گرفته میشود |
| SA_ChebyDegree | I | درجهٔ چندجملهای هموارساز Chebyshev (پیشفرض: 2) |
| SA_CoarseSize | I | اندازهٔ قطع شبکهٔ درشت (پیشفرض: وقتی MUMPS حلگر شبکهٔ درشت است 50000، در غیر این صورت 100) |
| SA_MaxAggSize | I | حداکثر اندازهٔ تجمع (پیشفرض: 96) |
| SA_GalerkinLowMem | I | روش محاسبهٔ ماتریس شبکهٔ درشت (0: معمولی (اولویت با سرعت)، مقدار مثبت: صرفهجویی در حافظه) (پیشفرض: 0) (اگر هنگام آمادهسازی حافظه کافی نیست، مقدار مثبت مشخص کنید) |
| (استفادهنشده) | I | برای توسعههای آینده رزرو شده است |
خط 5 ویژهٔ SA-AMG است و توسط ML خوانده نمیشود.
(خط 5) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| نام متغیر | ویژگی | محتوا |
|---|---|---|
| SA_Theta | R | آستانهٔ تشخیص اتصال قوی (پیشفرض: 0.0) (در 0.0، ساختار غیرصفر ماتریس مستقیماً بهعنوان گراف استفاده میشود) |
| SA_ChebyAlpha | R | نسبتی که کران پایین بازهٔ مقدارویژهٔ هدف هموارساز Chebyshev را تعیین میکند (پیشفرض: 20.0) |
| SA_Safety | R | ضریب ایمنی اعمالشده به برآورد بزرگترین مقدارویژه (پیشفرض: 1.1) |
| SA_TaperK | R | ضریب K برای باریکسازی درشتسازی (پیشفرض: 100) (از سطح 2 به بعد، درشتسازی ملایمتر میشود تا دستکم حدود K تجمع باقی بماند. مقدار منفی باریکسازی را غیرفعال میکند) |
| SA_AggOrder | R | ترتیب پیمایش تجمیع (0: پیشفرض (ترتیب BFS)، 1: ترتیب BFS، 2: ترتیب هش شمارهٔ گره (آزمایشی)، 3: ترتیب صعودی درجه (آزمایشی)، 4: ترتیب نزولی درجه (آزمایشی)، مقدار منفی: ترتیب شمارهٔ گره) (پیشفرض: 0) |
| SA_MinAggSize | R | حداقل اندازهٔ تجمع (پیشفرض: 3) |
| SA_Verify | R | اجرای خودآزمایی هنگام آمادهسازی (0: انجام نشود، مقدار مثبت: انجام شود) (پیشفرض: 0) (عمدتاً برای اشکالزدایی) |
| SA_DumpVTK | R | خروجی VTK تجمیع در بالاترین سطح (0: خروجی نشود، مقدار مثبت: خروجی شود) (پیشفرض: 0) (عمدتاً برای اشکالزدایی) |
مثال استفاده¶
از روش CG با پیششرطگذاری SSOR استفاده کنید و حداکثر تعداد تکرارها را 10000 و خطای قطع را 1.0e-8 تنظیم کنید
از روش GMRES با پیششرطگذاری SSOR استفاده کنید و اندازهٔ زیرفضای کریلوف را 40 و تعداد هدف رنگها در مرتبسازی چندرنگ را 100 تنظیم کنید
از روش CG با پیششرطگذاری ILU(0) استفاده کنید و ضریب اعمالشده به مؤلفههای قطری هنگام محاسبهٔ ماتریس پیششرطگذاری را 1.1 تنظیم کنید
پیششرطگذار روش CG را AMG مبتنی بر ML قرار دهید
پیششرطگذار روش CG را AMG مبتنی بر ML قرار دهید و MUMPS را بهعنوان حلگر شبکهٔ درشت استفاده کنید (برای مسائل دشوار)
پیششرطگذار روش CG را AMG مبتنی بر ML قرار دهید و چرخهٔ چندشبکهای را W-cycle انتخاب کنید (برای مسائل دشوار)
پیششرطگذار روش CG را AMG مبتنی بر ML قرار دهید، MUMPS را بهعنوان حلگر شبکهٔ درشت استفاده کنید و حداکثر تعداد سطوح را 2 تنظیم کنید (برای مسائل بسیار دشوار)
پیششرطگذار روش CG را SA-AMG داخلی HEC-MW قرار دهید
پیششرطگذار روش CG را SA-AMG و حلگر شبکهٔ درشت را MUMPS قرار دهید
برای تحلیل تماس اصطکاکی، روش BiCGSTAB را با پیششرطگذاری SA-AMG بهکار ببرید و ساختار سلسلهمراتبی پیششرطگذار AMG را خروجی دهید