!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)
1, 2 : (Block) SSOR (มีการจัดลำดับหลายสีเฉพาะสำหรับปัญหา 3 องศาอิสระ)
3 : (Block) Diagonal Scaling
5 : AMG โดยใช้แพ็กเกจพรีคอนดิชันมัลติกริด ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10, 11, 12 ใช้ได้เฉพาะกับปัญหา 3 องศาอิสระ
สำหรับการประมวลผลแบบขนานด้วยเธรด OpenMP แนะนำ SSOR, Diagonal Scaling หรือ ML
ITERLOG = ระบุว่าจะส่งออกประวัติการลู่เข้าของตัวแก้แบบวนซ้ำหรือไม่ (YES/NO)(ค่าเริ่มต้น: NO)
TIMELOG = ระบุว่าจะส่งออกเวลาคำนวณของตัวแก้สมการหรือไม่ (YES/NO/VERBOSE)(ค่าเริ่มต้น: NO)
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, 2, 3)
1: วิธีเพนัลตี (ค่าเริ่มต้นเมื่อใช้วิธีโดยตรง)
2: วิธี MPC-CG (ไม่แนะนำ)
3: การกำจัดองศาอิสระแบบชัดแจ้ง (ค่าเริ่มต้นเมื่อใช้วิธีวนซ้ำ)
ESTCOND = ความถี่ของการประมาณเลขเงื่อนไข (ทดลอง)
ประมาณเลขเงื่อนไขทุกช่วงการวนซ้ำที่ระบุ และเมื่อสิ้นสุดการวนซ้ำ
หากระบุ 0 จะไม่ทำการประมาณ
METHOD2 = วิธีแก้รอง (BiCGSTAB, GMRES, GPBiCG) (ทดลอง)
ใช้ได้เฉพาะเมื่อระบุ CG ให้ METHOD
หากวิธี CG ลู่ออก จะสลับไปยังวิธีรองโดยอัตโนมัติและแก้ปัญหาต่อ
พารามิเตอร์อื่นและข้อมูลในบรรทัดข้อมูลใช้ค่าเดียวกัน
CONTACT_ELIM = ระบุว่าจะทำการกำจัดองศาอิสระในการวิเคราะห์การสัมผัสหรือไม่ (0,1)
0: ทำการกำจัดองศาอิสระเฉพาะเมื่อใช้วิธีวนซ้ำ (ค่าเริ่มต้น)
1: ทำการกำจัดองศาอิสระเสมอ (รวมถึงเมื่อใช้วิธีโดยตรง)
** ตั้งแต่บรรทัดที่ 2 เป็นต้นไป **
| ชื่อตัวแปร | คุณลักษณะ | เนื้อหา |
|---|---|---|
| NITER | I | จำนวนการวนซ้ำ (ค่าเริ่มต้น: 100) |
| iterPREmax | I | จำนวนรอบของพรีคอนดิชันแบบ Additive Schwarz (ค่าเริ่มต้น: 1) (ค่าที่แนะนำคือ 1; ในการคำนวณแบบขนานบางกรณี 2 อาจมีประสิทธิผล) |
| NREST | I | จำนวนซับสเปซ Krylov (ค่าเริ่มต้น: 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 บรรทัดที่ 4 จะถูกละเว้น
(บรรทัดที่ 4) 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) (สำหรับปัญหาที่แก้ยากเป็นพิเศษ ให้ใช้ตัวแก้กริดหยาบแบบวิธีโดยตรงและ 2 ระดับ (หรือ 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) |
ตัวอย่างการใช้งาน¶
ใช้วิธี CG พร้อมพรีคอนดิชัน SSOR และตั้งจำนวนการวนซ้ำสูงสุดเป็น 10000 ค่าคลาดเคลื่อนตัดทอนเป็น 1.0e-8
ใช้วิธี GMRES พร้อมพรีคอนดิชัน SSOR และตั้งจำนวนซับสเปซ Krylov เป็น 40 จำนวนสีเป้าหมายสำหรับการจัดลำดับหลายสีเป็น 100
ใช้วิธี CG พร้อมพรีคอนดิชัน ILU(0) และตั้งตัวคูณที่ใช้กับสมาชิกแนวทแยงเมื่อคำนวณเมทริกซ์พรีคอนดิชันเป็น 1.1
ใช้ AMG โดย ML เป็นพรีคอนดิชันสำหรับ CG
ใช้ AMG โดย ML เป็นพรีคอนดิชันสำหรับ CG และใช้ MUMPS เป็นตัวแก้กริดหยาบ (สำหรับปัญหาที่แก้ยาก)
ใช้ AMG โดย ML เป็นพรีคอนดิชันสำหรับ CG และใช้ W-cycle เป็นรอบมัลติกริด (สำหรับปัญหาที่แก้ยาก)
ใช้ AMG โดย ML เป็นพรีคอนดิชันสำหรับ CG ใช้ MUMPS เป็นตัวแก้กริดหยาบ และตั้งจำนวนระดับสูงสุดเป็น 2 (สำหรับปัญหาที่แก้ยากมาก)