انتقل إلى المحتوى

!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          : (Block) Diagonal Scaling
            5          : AMG باستخدام حزمة التهيئة المسبقة متعددة الشبكات ML
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG باستخدام SA-AMG المضمّن في HEC-MW (AMG بالتجميع المُنعَّم)
            القيم 10 و11 و12 متاحة فقط لمسائل 3 درجات حرية
            22 متاح فقط في البِنى التي فُعِّل فيها LAPACK
            للتنفيذ المتوازي بخيوط OpenMP، يوصى بـ SSOR أو Diagonal Scaling أو 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 = تردد إعادة حساب متجه المتبقي
            صالح فقط عند تحديد CG أو BiCGSTAB أو GPBiCG أو PipeCG في METHOD
            تحدّث الطرق التكرارية متجه المتبقي بعلاقة تكرارية، ولذلك تتراكم أخطاء التدوير
            بعد كل عدد محدد من التكرارات، يُعاد حساب متجه المتبقي من {b}-[A]{x}
            عند تحديد 0، تُستخدم القيمة الافتراضية لكل طريقة (CG: 50، BiCGSTAB: 100، GPBiCG: 20، PipeCG: 50)
            عند تحديد قيمة سالبة، لا تُجرى إعادة حساب دورية
            تُجرى دائمًا إعادة الحساب للتحقق عند استيفاء معيار التقارب، بغض النظر عن هذا الإعداد
            قد تؤدي دورة قصيرة جدًا ليس فقط إلى زيادة عمليات ضرب المصفوفة في المتجه، بل أيضًا إلى
            تدهور التقارب نفسه أو حتى عدم تقارب الحل
            بعد تغيير هذا الإعداد عن قيمته الافتراضية، تحقّق من سجل التقارب والمتبقي النسبي النهائي

METHOD2 =   طريقة حل ثانوية (BiCGSTAB, GMRES, GPBiCG) (تجريبية)
            صالحة فقط عند تحديد CG لـ METHOD
            إذا تباعد CG، فانتقل تلقائيًا إلى الطريقة الثانوية وتابع الحل
            تُستخدم القيم نفسها للمعلمات الأخرى وأسطر البيانات

CONTACT_ELIM = يحدد ما إذا كان حذف درجات الحرية يُجرى في تحليل التلامس (0,1)
               0: يُجرى حذف درجات الحرية فقط عند استخدام طريقة تكرارية (الافتراضي)
               1: يُجرى حذف درجات الحرية دائمًا (بما في ذلك عند استخدام طريقة مباشرة)

** السطر الثاني وما بعده **

(السطر الثاني) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
اسم المتغير السمة الوصف
NITER I عدد التكرارات (الافتراضي: 100)
iterPREmax I عدد تكرارات التهيئة المسبقة Additive Schwarz (الافتراضي: 1)
(القيمة الموصى بها: 1؛ وقد تكون 2 فعالة في بعض الحسابات المتوازية)
NREST I حجم فضاء Krylov الجزئي (الافتراضي: 10)
(صالح فقط عند اختيار GMRES كطريقة الحل)
NCOLOR_IN I العدد المستهدف من الألوان للترتيب متعدد الألوان (الافتراضي: 10)
(صالح فقط عندما يكون عدد خيوط OpenMP اثنين أو أكثر)
RECYCLEPRE I عدد مرات إعادة استخدام معلومات إعداد المهيئ المسبق (الافتراضي: 3)
(صالح فقط في التحليل اللاخطي)
(السطر الثالث) RESID, SIGMA_DIAG, SIGMA
اسم المتغير السمة الوصف
RESID R حد التقارب (الافتراضي: 1.0e-8)
SIGMA_DIAG R معامل القياس المطبق على عناصر القطر عند حساب مصفوفة التهيئة المسبقة (الافتراضي: 1.0)
(إذا حدثت قسمة على صفر أو تباعد مع تهيئة ILU المسبقة، فقد تتقارب المسألة عند تحديد قيمة أكبر من 1.0)
SIGMA R غير مستخدم (الافتراضي: 0.0)

عند PRECOND=5 (اختياري)

إذا حُددت قيمة غير 5 أو 22 لـ PRECOND، يُتجاهل السطر الرابع.

(السطر الرابع) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
اسم المتغير السمة الوصف
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)
(للمسائل شديدة الصعوبة، استخدم حالًّا مباشرًا للشبكة الخشنة ومستويين (أو 3 إذا كانت الذاكرة غير كافية)؛ وللمسائل العادية يوصى بـ10)
ML_CoarseningScheme I مخطط التخشين في ML (1: UncoupledMIS، 2: METIS، 4: Zoltan، 5: DD) (الافتراضي: 1)
(الموصى به: 1 أو 5)
ML_NumSweep I عدد تمريرات المُملِّس في ML (درجة كثير الحدود لـ Chebyshev) (الافتراضي: 2)
(الموصى به: 2 لـ Chebyshev و1 لـ SymBlockGaussSeidel)

عند PRECOND=22 (اختياري)

إذا حُددت قيمة غير 22 لـ PRECOND، يُتجاهل السطر الخامس. يمكن حذف السطرين الرابع والخامس بالكامل، كما يمكن حذف العناصر الواقعة في نهاية أي منهما. تُستخدم القيمة الافتراضية لأي عنصر تُحدد له القيمة 0.

العناصر من 1 إلى 7 في السطر الرابع مرتبة بالترتيب نفسه لسطر خيارات PRECOND=5 (ML)، ولذلك يمكن إعادة استخدام سطر خيارات ML كما هو. العناصر من 8 إلى 10 خاصة بـ SA-AMG.

(السطر الرابع) 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 يستخدم دائمًا التجميع غير المقترن، فإن تحديد قيمة غير صفرية يصدر تحذيرًا وتُتجاهل القيمة
SA_ChebyDegree I درجة كثير الحدود لمُملِّس Chebyshev (الافتراضي: 2)
SA_CoarseSize I حجم القطع للشبكة الخشنة (الافتراضي: 50000 عند استخدام MUMPS حالًّا للشبكة الخشنة، وإلا 100)
SA_MaxAggSize I الحجم الأقصى للمُجمَّع (الافتراضي: 96)
SA_GalerkinLowMem I طريقة حساب مصفوفة الشبكة الخشنة (0: عادية (أولوية السرعة)، قيمة موجبة: موفِّرة للذاكرة) (الافتراضي: 0)
(حدد قيمة موجبة إذا لم تكفِ الذاكرة أثناء الإعداد)
(غير مستخدم) I محجوز للتوسعات المستقبلية

السطر الخامس خاص بـ SA-AMG ولا يقرأه ML.

(السطر الخامس) 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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

استخدام GMRES مع تهيئة SSOR المسبقة، وضبط حجم فضاء Krylov الجزئي على 40 والعدد المستهدف للألوان في الترتيب متعدد الألوان على 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

استخدام CG مع تهيئة ILU(0) المسبقة، وضبط معامل القياس المطبق على عناصر القطر عند حساب مصفوفة التهيئة المسبقة على 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

استخدام AMG بواسطة ML كمهيئ مسبق لـ CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

استخدام AMG بواسطة ML كمهيئ مسبق لـ CG واستخدام MUMPS كحالّ للشبكة الخشنة (للمسائل الصعبة)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

استخدام AMG بواسطة ML كمهيئ مسبق لـ CG واستخدام W-cycle كدورة للشبكات المتعددة (للمسائل الصعبة)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

استخدام AMG بواسطة ML كمهيئ مسبق لـ CG، واستخدام MUMPS كحالّ للشبكة الخشنة، وضبط الحد الأقصى لعدد المستويات على 2 (للمسائل شديدة الصعوبة)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

استخدام SA-AMG المضمّن في HEC-MW كمهيئ مسبق لـ CG

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

استخدام SA-AMG كمهيئ مسبق لـ CG واستخدام MUMPS كحالّ للشبكة الخشنة

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

في تحليل التلامس الاحتكاكي، استخدام BiCGSTAB مع تهيئة SA-AMG المسبقة وإخراج بنية مستويات مهيئ AMG المسبق

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0