ตัวแก้สมการและการปรับสภาพล่วงหน้า¶
ตัวแก้สมการเชิงเส้นของ FrontISTR สามารถเลือกวิธีตรงหรือวิธีทำซ้ำ และเมื่อใช้วิธีทำซ้ำจะใช้ตัวปรับสภาพล่วงหน้าร่วมกันเพื่อแก้ระบบสมการเชิงเส้น วิธีประมวลผล MPC และการกำจัดองศาอิสระของการสัมผัสเป็นตัวเลือกเสริมที่กำหนดว่าจะจัดการระบบเชิงเส้นที่มีข้อจำกัดหลายจุดหรือข้อจำกัดการสัมผัสในรูปแบบใด
ภาพรวมของฟังก์ชัน¶
ตัวแก้สมการและการปรับสภาพล่วงหน้าประกอบด้วยตัวเลือกต่อไปนี้ ขั้นแรกเลือกวิธีทำซ้ำหรือวิธีตรงเป็นตัวแก้สมการเชิงเส้น และจะเลือกตัวปรับสภาพล่วงหน้าเพิ่มเติมเฉพาะเมื่อใช้วิธีทำซ้ำเท่านั้น
| หมวดหมู่ | ตัวเลือกหลัก | บทบาท |
|---|---|---|
| วิธีทำซ้ำ | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | แก้เมทริกซ์เบาบางขนาดใหญ่โดยใช้หน่วยความจำอย่างมีประสิทธิภาพ |
| การปรับสภาพล่วงหน้าสำหรับวิธีทำซ้ำ | SSOR, การสเกลแนวทแยง, BILU, AMG, SAINV, RIF | ปรับปรุงการลู่เข้าของวิธีทำซ้ำ ไม่ใช้กับวิธีตรง |
| วิธีตรง | MUMPS, MKL | แก้สมการเชิงเส้นอย่างทนทานด้วยการแยกตัวประกอบ |
| วิธีประมวลผล MPC | วิธีเพนัลตี, วิธี MPC-CG, วิธีกำจัดองศาอิสระแบบชัดแจ้ง | สะท้อนข้อจำกัดหลายจุดเข้าสู่ระบบเชิงเส้น |
| การกำจัดองศาอิสระของการสัมผัส | อัตโนมัติ, เปิดใช้งานเสมอ | สลับวิธีจัดการองศาอิสระของการสัมผัสที่เพิ่มโดยการสัมผัส SLAGRANGE |
| ฟังก์ชันเสริม | การประมาณเลขเงื่อนไข, การดัมพ์เมทริกซ์, การส่งออกล็อก | ช่วยในการดีบัก ตรวจสอบการลู่เข้า และประเมินประสิทธิภาพ |
ในการรันแบบขนาน สามารถผสาน MPI แบบขนานจากการแบ่งโดเมนกับ OpenMP แบบเธรดได้ วิธีทำซ้ำเป็นตัวเลือกมาตรฐานสำหรับการวิเคราะห์ขนาดใหญ่แบบขนาน ส่วนวิธีตรงใช้ในสภาพแวดล้อมที่ลิงก์ไลบรารีที่เกี่ยวข้องและต้องการการแก้สมการที่ทนทานมากขึ้น
วิธีเลือกตัวแก้สมการและการปรับสภาพล่วงหน้า¶
ก่อนอื่นให้ตัดสินใจว่าจะใช้วิธีทำซ้ำหรือวิธีตรง และหากเลือกวิธีทำซ้ำจึงเลือกตัวปรับสภาพล่วงหน้าต่อไป
| เกณฑ์พิจารณา | แนวทางที่แนะนำ |
|---|---|
| ขนาดปัญหา | สำหรับปัญหาขนาดเล็กถึงกลาง วิธีตรงมีเสถียรภาพและใช้งานง่าย ส่วนปัญหาขนาดใหญ่ วิธีทำซ้ำมีประสิทธิภาพด้านหน่วยความจำดีกว่า |
| สมมาตรของเมทริกซ์ | สำหรับปัญหาสมมาตรบวกแน่นอนให้พิจารณา CG สำหรับปัญหาไม่สมมาตรให้พิจารณา BiCGSTAB, GMRES, GPBiCG เป็นต้น |
| สภาพแวดล้อมแบบขนาน | สำหรับ MPI แบบขนาน ให้ใช้วิธีทำซ้ำร่วมกับการแบ่งโดเมน สำหรับการปรับสภาพล่วงหน้าภายใต้ OpenMP ให้พิจารณา SSOR ที่รองรับ multicolor |
| การปรับสภาพล่วงหน้า (เมื่อเลือกวิธีทำซ้ำ) | เริ่มจาก SSOR ค่าเริ่มต้น แล้วจึงพิจารณา AMG หากลู่เข้าได้ดี SSOR มีต้นทุนต่ำกว่า ส่วนปัญหาขนาดใหญ่และซับซ้อนควรพิจารณา AMG |
| การสัมผัสและ MPC | ในการวิเคราะห์ที่มีการสัมผัสหรือข้อจำกัดหลายจุด การเลือกวิธีประมวลผล MPC และการกำจัดองศาอิสระของการสัมผัสมีผลต่อการลู่เข้าและความทนทาน |
| ไลบรารีภายนอก | MUMPS, MKL และ AMG ใช้ได้เมื่อบิลด์ลิงก์ไลบรารีที่เกี่ยวข้อง |
สำหรับการวิเคราะห์มาตรฐาน โดยทั่วไปค่าตรวจสอบการลู่เข้า จำนวนรอบทำซ้ำสูงสุด และค่าสัมประสิทธิ์แก้ไขแนวทแยงของการปรับสภาพล่วงหน้าสามารถใช้ค่าเริ่มต้นได้ หากลู่เข้าช้าหรือเกิดการลู่ออก ให้ตรวจสอบวิธีทำซ้ำ การปรับสภาพล่วงหน้า วิธีประมวลผล MPC และการกำจัดองศาอิสระของการสัมผัสตามลำดับ สำหรับค่าและรูปแบบพารามิเตอร์ โปรดดู !SOLVER ในคู่มืออ้างอิงคีย์เวิร์ด
วิธีทำซ้ำ¶
วิธีทำซ้ำเป็นวิธีที่อัปเดตคำตอบด้วยการคำนวณผลคูณเมทริกซ์-เวกเตอร์และการปรับสภาพล่วงหน้าซ้ำ ๆ สำหรับเมทริกซ์เบาบางขนาดใหญ่ FrontISTR สามารถเลือกวิธีทำซ้ำต่อไปนี้ได้
| วิธีทำซ้ำ | แนวทางการใช้งาน | หมายเหตุ |
|---|---|---|
CG | ปัญหาสมมาตรบวกแน่นอน | เป็นตัวเลือกมาตรฐานสำหรับการวิเคราะห์โครงสร้างและการนำความร้อน |
BiCGSTAB | ปัญหาไม่สมมาตร | เป็นตัวเลือกเมื่อความไม่สมมาตรจากการสัมผัสหรือการคัปปลิงมีความเด่นชัด |
GMRES | ปัญหาไม่สมมาตร | ใช้โดยกำหนดขนาด Krylov subspace |
GPBiCG | ปัญหาไม่สมมาตร | ใช้เป็นวิธีปรับปรุงในตระกูล BiCGSTAB |
GMRESR | ปัญหาไม่สมมาตร, การใช้งานขั้นสูง | เป็นตัวเลือกที่ใช้ GMRES แบบซ้อนกัน |
GMRESREN | ปัญหาไม่สมมาตร, การใช้งานขั้นสูง | เป็นรุ่นแบบเรียกซ้ำของตระกูล GMRESR |
CG สมมติว่าเมทริกซ์เป็นสมมาตรบวกแน่นอน หากมีความไม่สมมาตรสูงจากการสัมผัสแบบมีแรงเสียดทาน การประมวลผลข้อจำกัดที่ไม่สมมาตร หรือผลคัปปลิง ให้พิจารณา BiCGSTAB, GMRES, GPBiCG เป็นต้น สำหรับ GMRES การเพิ่มขนาด Krylov subspace อาจช่วยการลู่เข้า แต่จะเพิ่มการใช้หน่วยความจำด้วย
เมื่อระบุ METHOD2 จะสามารถสลับไปใช้วิธีทำซ้ำสำรองเมื่อ CG ลู่ออกหรือล้มเหลวได้ ฟังก์ชันนี้เป็นวิธีสำรองเมื่อใช้ CG เป็นตัวแก้สมการหลัก โดยค่าตั้งค่าและบรรทัดข้อมูลอื่นใช้ร่วมกับตัวแก้สมการหลัก
การปรับสภาพล่วงหน้า¶
การปรับสภาพล่วงหน้าเป็นการแปลงเมทริกซ์สัมประสิทธิ์เพื่อปรับปรุงการลู่เข้าของวิธีทำซ้ำ และใช้เฉพาะเมื่อเลือกวิธีทำซ้ำเท่านั้น วิธีตรงไม่ใช้การปรับสภาพล่วงหน้า แม้ใช้วิธีทำซ้ำเดียวกัน การเลือกตัวปรับสภาพล่วงหน้าสามารถเปลี่ยนจำนวนรอบจนลู่เข้าและเวลาในการคำนวณได้มาก
| การปรับสภาพล่วงหน้า | ลักษณะ | แนวทางการใช้งาน |
|---|---|---|
| SSOR | การปรับสภาพล่วงหน้ามาตรฐาน รองรับการจัดลำดับแบบหลายสี | ตัวเลือกแรกที่ควรลอง ใช้กันอย่างแพร่หลายในการวิเคราะห์โครงสร้าง |
| การสเกลแนวทแยง | การปรับสภาพล่วงหน้าน้ำหนักเบาที่ใช้สมาชิกแนวทแยง | เมื่อจำเป็นต้องลดต้นทุนการคำนวณ |
| BILU | การแยกตัวประกอบ LU แบบไม่สมบูรณ์ในระดับบล็อก | ตัวเลือกสำหรับปัญหาที่ SSOR ลู่เข้าได้ยาก |
| AMG | มัลติกริดเชิงพีชคณิตโดย Trilinos-ML | ตัวเลือกสำหรับปัญหาขนาดใหญ่หรือปัญหาที่องค์ประกอบความคลาดเคลื่อนเชิงลำดับชั้นมีอิทธิพล |
| SAINV | Sparse Approximate Inverse | ตัวเลือกการปรับสภาพล่วงหน้าเฉพาะสำหรับปัญหาการสัมผัสหรือสภาพแวดล้อมแบบกระจาย |
| RIF | Robust Incomplete Factorization | ตัวเลือกอีกแบบในกลุ่มการแยกตัวประกอบแบบไม่สมบูรณ์ |
SSOR เป็นตัวเลือกมาตรฐาน และในการทำงานแบบขนานด้วย OpenMP จะใช้รุ่นการจัดลำดับแบบหลายสี การสเกลแนวทแยงมีต้นทุนต่ำ แต่ผลในการปรับปรุงการลู่เข้าขึ้นกับปัญหา BILU ถูกติดตั้งเป็นการแยก LU แบบไม่สมบูรณ์ระดับบล็อกและรองรับเมทริกซ์ที่มี DOF ทั่วไป ในตระกูล BILU มีเส้นทางที่เพิ่มค่าสัมประสิทธิ์แก้ไขแนวทแยง SIGMA_DIAG โดยอัตโนมัติและลองใหม่เมื่อวิธีทำซ้ำลู่ออก สำหรับการระบุค่า โปรดดูคู่มืออ้างอิงคีย์เวิร์ด
AMG ใช้ Trilinos-ML ดังนั้นต้องเปิดใช้งาน ML ขณะบิลด์ สามารถกำหนดตัวทำให้เรียบ รอบมัลติกริด และวิธีทำให้หยาบได้ แต่รายละเอียดของค่าให้ดูคู่มืออ้างอิงคีย์เวิร์ด เมื่อใช้ 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 | วิธีดั้งเดิมที่จัดการผลคูณเมทริกซ์-เวกเตอร์ซึ่งรวมข้อจำกัดไว้ภายในวิธีทำซ้ำ | ไม่แนะนำ |
| วิธีกำจัดองศาอิสระแบบชัดแจ้ง | กำจัดองศาอิสระที่ถูกจำกัดแล้วแก้ระบบเชิงเส้นที่ย่อลง | ค่าเริ่มต้นสำหรับวิธีทำซ้ำ |
สำหรับวิธีตรง ค่าเริ่มต้นคือวิธีเพนัลตี ส่วนวิธีทำซ้ำ ค่าเริ่มต้นคือวิธีกำจัดองศาอิสระแบบชัดแจ้ง วิธี MPC-CG เป็นตัวเลือกเดิมเพื่อความเข้ากันได้ และสำหรับการวิเคราะห์ใหม่ทั่วไปให้ใช้วิธีกำจัดองศาอิสระแบบชัดแจ้งหรือค่าเริ่มต้นของวิธีตรง
สามารถระบุวิธีประมวลผล MPC อย่างชัดเจนด้วย MPCMETHOD ใน !SOLVER สำหรับความหมายของค่าและรูปแบบ โปรดดูคู่มืออ้างอิงคีย์เวิร์ด
การกำจัดองศาอิสระของการสัมผัส¶
การกำจัดองศาอิสระของการสัมผัสเป็นฟังก์ชันที่ย่อองศาอิสระของการสัมผัสที่เพิ่มโดยการสัมผัส SLAGRANGE ก่อนส่งให้ตัวแก้สมการเชิงเส้น การกำจัดองศาอิสระดังกล่าวอาจช่วยปรับปรุงคุณสมบัติของระบบเชิงเส้นที่วิธีทำซ้ำต้องจัดการ
ในโหมดอัตโนมัติค่าเริ่มต้น จะกำจัดองศาอิสระของการสัมผัสเมื่อใช้วิธีทำซ้ำ และจะไม่กำจัดเมื่อใช้วิธีตรง สำหรับวิธีตรงมีเส้นทางที่จัดการระบบขยายซึ่งรวมองศาอิสระของการสัมผัสไว้โดยตรง
เมื่อระบุ CONTACT_ELIM อย่างชัดเจน สามารถกำจัดองศาอิสระของการสัมผัสได้แม้ใช้วิธีตรง สำหรับการเลือกชนิดการสัมผัส คู่สัมผัส และอัลกอริทึมการสัมผัสทางด้านอินพุต โปรดดูหน้าการสัมผัสและการฝังตัว
ฟังก์ชันเสริม¶
สามารถใช้การประมาณเลขเงื่อนไข การดัมพ์เมทริกซ์ และการส่งออกล็อกเพื่อตรวจสอบการลู่เข้าและประสิทธิภาพของตัวแก้สมการ ฟังก์ชันเหล่านี้ไม่จำเป็นสำหรับการวิเคราะห์ทั่วไป และควรเปิดใช้เพื่อการดีบักหรือประเมินประสิทธิภาพ
| ฟังก์ชัน | การใช้งาน | หมายเหตุ |
|---|---|---|
| การประมาณเลขเงื่อนไข | ส่งออกตัวชี้วัดเลขเงื่อนไข สำหรับ CG และ GMRES | ใช้ได้ในบิลด์ที่เปิดใช้ LAPACK |
| การดัมพ์เมทริกซ์ | บันทึกเมทริกซ์และเวกเตอร์ด้านขวาที่ส่งให้ตัวแก้สมการลงไฟล์ | รองรับรูปแบบ Matrix Market, CSR และ BSR |
DUMPEXIT | ยุติการวิเคราะห์หลังดัมพ์เมทริกซ์ | ใช้เมื่อต้องการนำเฉพาะเมทริกซ์ออกไปตรวจสอบภายนอก |
ITERLOG | ส่งออกประวัติการลู่เข้าของวิธีทำซ้ำ | ใช้ตรวจสอบการเปลี่ยนแปลงของเศษเหลือ |
TIMELOG | ส่งออกเวลาในการคำนวณของตัวแก้สมการ | VERBOSE จะแสดงรายละเอียดมากขึ้น |
STEPLOG | ส่งออกข้อมูลสเต็ป | ใช้ตรวจสอบลำดับการวิเคราะห์ |
การดัมพ์เมทริกซ์เป็นฟังก์ชันสำหรับตรวจสอบเมทริกซ์สัมประสิทธิ์ที่ประกอบขึ้นในการวิเคราะห์ด้วยเครื่องมือภายนอก เมื่อเปิดใช้ DUMPEXIT การวิเคราะห์จะจบลงทันทีหลังบันทึกเมทริกซ์และเวกเตอร์ด้านขวา การประมาณเลขเงื่อนไข เป็นฟังก์ชันทดลองที่ใช้กับ CG และ GMRES เพื่อวินิจฉัยการลู่เข้า
หัวข้อที่เกี่ยวข้อง¶
- ตัวแก้สมการเชิงเส้น (ทฤษฎี) — หลักการทางคณิตศาสตร์ของวิธีทำซ้ำและการปรับสภาพล่วงหน้า
- การทำซ้ำไม่เชิงเส้นและการอินทิเกรตตามเวลา — กรอบของการทำซ้ำ Newton, การทำซ้ำการสัมผัส และการอินทิเกรตตามเวลาที่เรียกใช้ตัวแก้สมการเชิงเส้น
- การแบ่งโดเมน — การวิเคราะห์ MPI แบบขนานและการกำหนดความลึกของบริเวณทับซ้อน
- การสัมผัสและการฝังตัว — การเลือกชนิดการสัมผัสและอัลกอริทึมการสัมผัส
- !SOLVER — ค่าและรูปแบบพารามิเตอร์ของตัวแก้สมการและการปรับสภาพล่วงหน้า
- ไลบรารีที่จำเป็นและไลบรารีเสริม — ไลบรารีที่ต้องพึ่งพา เช่น
MUMPS,MKL(Intel PARDISO), Trilinos-ML และ LAPACK