ข้ามไปที่เนื้อหา

!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 เป็นต้นไป **

(บรรทัดที่ 2) 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 ตั้งแต่ 2 ขึ้นไป)
RECYCLEPRE I จำนวนครั้งที่ใช้ข้อมูลการตั้งค่าพรีคอนดิชันซ้ำ (ค่าเริ่มต้น: 3)
(ใช้ได้เฉพาะในการวิเคราะห์ไม่เชิงเส้น)
(บรรทัดที่ 3) RESID, SIGMA_DIAG, SIGMA
ชื่อตัวแปร คุณลักษณะ เนื้อหา
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

!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
AI-assisted translation May contain errors Official docs Status