ฉันควรใช้เงื่อนไขล่วงหน้า (และตัวแก้ไข) ใน PETSc สำหรับระบบสมมาตรไม่ จำกัด


12

ระบบของฉันเป็นปัญหา FE ที่สมมาตรกับตัวคูณแบบลากรองจ์ (เช่นการไหลของ Stokes ที่ไม่สามารถบีบอัดได้):

(ABTBC)

โดยที่เป็นกรณีทั่วไป (ฉันแน่ใจด้วยซ้ำว่าสมการนั้นมีการกำหนดหมายเลขเพื่อให้ตัวคูณ Lagrange ปรากฏขึ้นครั้งสุดท้าย) ระบบมีขนาดค่อนข้างใหญ่ (+ 100k บรรทัด)C=0

เมื่ออ่านคำตอบของคำถามนี้ฉันได้รับความประทับใจว่ามีปัจจัยเบื้องต้นที่เหมาะสมที่สามารถใช้กับปัญหา FE ที่หลากหลายได้

การใช้ PETSc ฉันได้จัดการแก้ปัญหาด้วย MINRES ( -ksp_type minres -pc_type none -mat_type sbaij) แม้ว่าความแม่นยำจะไม่ดี (ทำให้นิวตันซ้ำหลายครั้งสำหรับปัญหาเชิงเส้น) ดูเหมือนว่าไม่มีการรวมกันของ preconditioner และ ksp-solver อื่น ๆ

มีการรวมกันของการตั้งค่าสถานะสำหรับ PETSc ที่จะแก้ปัญหาระบบนี้ได้เร็วกว่าเพียงแค่ MINRES หรือไม่?


1
ยินดีต้อนรับสู่ SciComp SE! คำถามของคุณโพสต์ในแง่ของความชัดเจนและทั่วไป มีเพียงประโยคเดียวเท่านั้นที่ค่อนข้างไม่ชัดเจนหรือไม่สมบูรณ์: คุณหมายถึงอะไรที่เกิดจากการคำนวณที่ไม่แม่นยำ?
มกราคม 13 น

1
ฉันลืมที่จะจบประโยค! ฉันหวังว่ามันชัดเจนตอนนี้
Mikael Öhman

คำตอบ:


13

คำเตือน

การแก้ปัญหาจุดอานเกี่ยวข้องกับตัวเลือกมากกว่าปัญหาที่แน่นอนและมีหลายสิ่งหลายอย่างที่อาจผิดพลาดได้ ใช้มอนิเตอร์สำหรับทุกระดับเพื่อดีบักการบรรจบกันเพื่อให้แน่ใจว่าการเว้นวรรคว่างถูกจัดการอย่างถูกต้องเมื่อตัวดำเนินการเสริมเป็นเอกพจน์ เทคนิคเหล่านี้ถูกกล่าวถึงในคำถามนี้

การแก้ปัญหาจุดอาน

คุณสามารถเริ่มต้นด้วยส่วนที่เกี่ยวกับการแก้ปัญหาการฝึกอบรมบล็อกในคู่มือการใช้งาน สำหรับสโต๊คเหมือนปัญหาคุณสามารถสร้างส่วนประกอบ preconditioner Schur ใช้PCFIELDSPLIT

-pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_detect_saddle_point

สิ่งนี้อาจใช้ร่วมกับเครื่องมือปรับสภาพการเปลี่ยนกำลังไฟฟ้ากำลังสองน้อยที่สุดสำหรับส่วนประกอบ Schur ( -fieldsplit_1_pc_type lsc) เป็นเรื่องปกติที่จะ-fieldsplit_1_ksp_type preonlyปล่อยให้การวนซ้ำรอบนอกทำหน้าที่ส่วนใหญ่ได้ -pc_fieldsplit_schur_fact_type upperสายพันธุ์บล็อกสามเหลี่ยมเป็นที่นิยมเมื่อใช้วิธีนี้เช่น

คุณสามารถค้นหารายละเอียดเพิ่มเติมเกี่ยวกับองค์ประกอบการแก้ปัญหาโดยใช้ตัวเลือกตัวเลือกในกระดาษของเรา (preprint)ซึ่งยังกล่าวถึงการเดินทางหลายชั้นด้วยการสลายตัวของบล็อก

สำหรับปัญหามากมายคุณจะต้องปรับแต่งการสลายตัวของฟิลด์และ Schur เติมเต็มเงื่อนไขเบื้องต้นซึ่งส่วนใหญ่เกี่ยวข้องกับผู้ประกอบการเสริม ตัวอย่างเช่นวิธีการ "การพาความดัน - การกระจาย" (PCD) จาก Elman et al ต้องใช้การแยกส่วนของผู้ปฏิบัติงานเสริมในพื้นที่ความดัน ดูตัวอย่างของPCSHELLและส่วนคู่มือผู้ใช้สำหรับจุดประสงค์นี้


3

คุณต้องการผู้ที่มีเงื่อนไขล่วงหน้าและมีการพูดคุยเกี่ยวกับการก่อสร้างอย่างใดอย่างหนึ่งที่นี่: http://www.math.tamu.edu/~bangerth/videos.676.38.html


การบรรยายน่าสนใจมาก แต่ฉันกำลังมองหาตัวอย่างที่ชัดเจนเกี่ยวกับวิธีการใช้ PETSc เพื่อแก้ปัญหา
Mikael Öhman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.