อะไรคือแนวปฏิบัติที่ดีที่สุดสำหรับอัลกอริทึมและการประยุกต์ใช้การจำลองหลายฟิสิกส์


16

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

คำตอบ:


5

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

จากนั้นโซลูชันการแยกตัวดำเนินการสามารถใช้เป็นเครื่องปรับสภาพให้กับระบบที่เชื่อมโยงกันอย่างสมบูรณ์หรือเป็นตัวแก้ปัญหาในสิทธิของตนเองทั้งหมดจากบรรทัดคำสั่ง ยิ่งไปกว่านั้นข้อต่อบางส่วนสามารถรักษาไว้ได้ในขณะที่ข้อต่ออื่น ๆ ก็ไม่สามารถใช้ได้ PETSc จัดการสิ่งนี้ผ่านทางอินเตอร์เฟสพีซี FieldSplit สิ่งนี้ช่วยให้การจำลองแบบไฮบริดเช่น ICE โดยปริยายสำหรับการเปลี่ยนแปลงของไหล


5

เนื่องจากนี่เป็นงานวิจัยที่กระตือรือร้นฉันจึงพยายามตอบคำถามนี้ แต่ฉันมีประสบการณ์เกี่ยวกับสิ่งที่ไม่ควรลอง

ห้าม :

  • รับรหัสแอปพลิเคชันเก่า A และแอปพลิเคชัน B เก่าแล้วลองจับคู่เข้าด้วยกัน
  • ใช้รหัสโบราณ (หมายถึงใช้ไม่ได้ในการเข้าใจถึงปัญหาย้อนหลัง) แทนการสร้างแอปพลิเคชันใหม่
  • ต้องการเฟรมเวิร์กขนาดใหญ่ (> 10 การพึ่งพาที่จำเป็น) กับผู้ใช้ใหม่ที่เริ่มมีส่วนร่วม
  • สมมติว่า data layout (mesh, matrices, vector, etc. ) นั้นง่ายต่อการเขียนด้วยตัวเอง

ทำ :

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