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

ตัวแก้สมการและการปรับสภาพล่วงหน้า

ตัวแก้สมการเชิงเส้นของ 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 เพื่อวินิจฉัยการลู่เข้า

หัวข้อที่เกี่ยวข้อง

AI-assisted translation May contain errors Official docs Status