ตัวแก้ปัญหาที่แข็งแกร่งและวนซ้ำสำหรับปัญหาเชิงเส้นยืดสามมิติขนาดใหญ่คืออะไร


9

ฉันกำลังดำดิ่งสู่โลกอันน่าทึ่งของการวิเคราะห์องค์ประกอบ จำกัด และต้องการที่จะแก้ปัญหาเครื่องจักรกลเทอร์โมขนาดใหญ่ (เฉพาะกลไกทางความร้อน , ไม่มีข้อเสนอแนะ)

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

ฉันถามที่นี่หากมีประสบการณ์เกี่ยวกับปัญหาการยืดตัวเชิงเส้นแบบสามมิติขนาดใหญ่ที่จะช่วยให้ฉัน จำกัด การค้นหาเพื่อประสิทธิภาพที่ดีที่สุดหรือไม่ ในกรณีของฉันมันเป็นโครงสร้างที่มีฟิล์มบาง ๆ มีลวดลายและวัสดุที่วางผิดปกติ (ทั้ง high-CTE และ low-CTE) ไม่มีการเสียรูปขนาดใหญ่ในการวิเคราะห์เชิงกลทางความร้อน ฉันสามารถใช้ HPC ในมหาวิทยาลัยของฉัน [1.314 โหนดพร้อมโปรเซสเซอร์ AMD Opteron 2 ตัว (แต่ละ 2.2 GHz / 8 คอร์)]

ฉันคิดว่าPETScอาจมีบางสิ่งที่น่าสนใจโดยเฉพาะอย่างยิ่งอัลกอริทึมที่ใช้ในการแยกโดเมน (FETI, multigrid) แต่ฉันรู้สึกสับสนกับตัวเลือกและไม่มีประสบการณ์ ฉันชอบวลีที่ว่า"สิ่งมีชีวิตที่มีความรู้ทางเรขาคณิต"แต่ไม่แน่ใจว่าสิ่งนี้จะช่วยฉันได้หรือไม่ ฉันยังไม่ได้พบสิ่งที่เพ่งความสนใจไปที่กลศาสตร์ต่อเนื่องเชิงเส้น

Strong Scaling (Amdahl) มีความสำคัญมากในใบสมัครของฉันเพราะพันธมิตรอุตสาหกรรมของฉันไม่สามารถรอผลการจำลองเป็นเวลานาน ฉันไม่เพียง แต่ชื่นชมคำตอบเท่านั้น แต่ยังมีคำแนะนำสำหรับการอ่านเพิ่มเติมในความคิดเห็น


คุณกำลังแก้ไขปัญหาแบบคงที่หรือไม่? ดูเหมือนว่าใช่ สำหรับปัญหาแบบไดนามิกหรือเวลาฮาร์มอนิกส์คำตอบจะแตกต่างกันฉันคิดว่า
Hui Zhang

คงใช่ ไดนามิกนั้นแพงเกินไป
เซบาสเตียน

คำตอบ:


6

สมมติว่าโครงสร้างของคุณเป็นแบบ 3 มิติ (แทนที่จะเป็นเพียงคุณสมบัติบางอย่างอาจแยกออกจากองค์ประกอบของเชลล์) และแบบจำลองมีขนาดใหญ่กว่าสองแสน dofs การแก้ปัญหาโดยตรงกลายเป็นสิ่งที่ทำไม่ได้โดยเฉพาะถ้าคุณต้องการแก้ปัญหาแต่ละครั้ง นอกจากนี้หากโครงสร้างอยู่เสมอ "ปิด" กับขอบเขต Dirichlet คุณจะต้องใช้วิธีการหลายระดับเพื่อให้มีประสิทธิภาพ ชุมชนถูกแบ่งระหว่าง "multigrid" และ "การแบ่งแยกโดเมนแบบหลายระดับ" สำหรับการเปรียบเทียบทางคณิตศาสตร์ดูคำตอบของฉันที่: อะไรคือข้อดีของ multigrid เหนือสิ่งที่จำเป็นสำหรับการย่อยสลายโดเมนและในทางกลับกัน?

ชุมชน multigrid ประสบความสำเร็จในการผลิตซอฟต์แวร์สำหรับใช้งานทั่วไป สำหรับความยืดหยุ่นฉันขอแนะนำให้ใช้การรวมแบบเรียบซึ่งต้องการค่าประมาณ "ใกล้กับพื้นที่ว่าง" ใน PETSc สิ่งนี้ทำได้โดยเลือก PCGAMG หรือ PCML (กำหนดค่าด้วย--download-ml) และการโทรMatSetNearNullSpace()เพื่อให้โหมดตัวถังที่แข็งแกร่ง

วิธีการสลายตัวของโดเมนมีโอกาสที่จะหยาบเร็วกว่าการรวมตัวที่ราบรื่นดังนั้นจึงอาจทนต่อความหน่วงแฝงได้มากกว่า แต่ "จุดที่หวาน" ในแง่ของประสิทธิภาพมักจะแคบกว่าการรวมที่ราบรื่น หากคุณไม่ต้องการทำการวิจัยเกี่ยวกับวิธีการแยกส่วนประกอบของโดเมนฉันขอแนะนำให้ใช้การรวมแบบเรียบและอาจลองวิธีการแยกส่วนโดเมนเมื่อซอฟต์แวร์ดีขึ้น


ขอบคุณมากสำหรับคำตอบที่ให้ข้อมูลนี้มาก! คุณหมายถึงอะไรใกล้กับเขตแดนดีริชเลต์ ? ปิดในแง่ขององค์ประกอบนับ?
เซบาสเตียน

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

4

ฉันจะบอกว่าตัวเลือกที่เป็นที่ยอมรับสำหรับปัญหานี้คือตัวแก้ปัญหาการไล่ระดับสีคอนจูเกตบวกกับพีชคณิตแบบหลายขั้นตอนแบบพีชคณิต สำหรับ PETSc นั้น hypre / boomeramg หรือ ML จะเป็นตัวเลือกที่จำเป็นก่อนหน้านี้

ส่วนประกอบทั้งหมดเหล่านี้เมื่อใช้ผ่าน PETSc scale ดีมากถึงหน่วยประมวลผลนับพันหรือหมื่นถ้าปัญหามีขนาดใหญ่พอ (อย่างน้อย ~ 100,000 องศาอิสระต่อกระบวนการ MPI)


โปรดทราบว่า BoomerAMG (และ AMG แบบคลาสสิกโดยทั่วไป) ไม่ได้ใช้ข้อมูลพื้นที่ว่างหรือมิฉะนั้นให้แน่ใจว่าพื้นที่หยาบสามารถแสดงโหมดการหมุนได้อย่างถูกต้อง คุณสามารถลอง (และควร) รวมทั้งแยกส่วนประกอบและแก้ปัญหาแยกต่างหาก (ใช้PCFIELDSPLITใน PETSc) แต่การรวมตัวที่ราบรื่นนั้นมักจะแข็งแกร่งกว่าสำหรับความยืดหยุ่น
Jed Brown

1

คุณสามารถสร้างตัวตั้งเงื่อนไขล่วงหน้าที่ดีสำหรับความยืดหยุ่นถ้าวัสดุของคุณไม่สามารถบีบอัดได้มากเกินไป (ปันส่วนปัวซอง <0.4) โดยใช้ส่วนประกอบรางแยกต่างหาก preconditioner แนวคิดก็คือมีเมทริกซ์ทแยงมุมบล็อกที่มี 3 บล็อกแต่ละอันแสดงถึงข้อต่อตามมิติทางกายภาพเดียวกัน(x,Y,Z) เช่น: Kxx, KYY, KZZ.

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


1

Walter Landry พัฒนารหัสสำหรับการเปลี่ยนรูปแบบอีลาสโตเทรมสามมิติโดยใช้ Multigrid แบบปรับตัว คุณสามารถค้นหารหัสได้ที่

https://bitbucket.org/wlandry/gamra

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

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