อะไรคือวิธีที่ง่ายที่สุดในการแก้สมการเนเวียร์ - สโตคที่ไม่สามารถบีบอัดได้?


9

โดย "ง่ายที่สุด" ฉันหมายถึงวิธีที่ง่ายที่สุดในการเรียนรู้และนำไปปฏิบัติตั้งแต่เริ่มต้น ฉันหวังว่าคำถามของฉันสามารถตอบได้มากหรือน้อย


1
ในรูปทรงเรขาคณิตอะไร?
Rhys Ulerich

@Rhys Ulerich ฉันคาดเดาได้ง่ายที่สุด?
James

@ user2697246 โดเมนไม่สิ้นสุดที่มีเงื่อนไขเริ่มต้นเหมือนกันหรือไม่ จิ๊บจ๊อย มันไม่ได้หมายความว่าจะเป็นคำถามยกฟ้อง
Rhys Ulerich

1
สำหรับการเริ่มต้นกับ NS simulations ลองดูที่นี่lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes
Subodh

คำตอบ:


10

ในสองมิติการกำหนดความเร็ว - vorticity เป็นวิธีที่ง่ายที่สุดที่จะนำมาใช้เพราะตัวแปร collocated แต่เงื่อนไขขอบเขตอาจซับซ้อนและเป็นปัญหาโดยตรงน้อยกว่า สำหรับสูตรดั้งเดิมตัวแปรวิธีการหาผลต่าง จำกัด อันแปรผันของHarlow and Welch (1965)เป็นจุดเริ่มต้นที่ดี


2
คำอธิบายที่ชัดเจนของขั้นตอนวิธีนี้มีเงื่อนไขขอบเขตจะได้รับโดยPozrikidis
John Stockie

10

คุณสามารถค้นหาการดำเนินงานเอกสารครบถ้วนของง่ายมากเลยที่มีประสิทธิภาพมากวิธีแก้ปัญหา (วิธีการแยกโช) ที่นี่

สำหรับวิธีการอื่น ๆ ที่ได้รับความนิยมลองดูบทที่ 21 ในหนังสือเล่มนี้

ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้แต่ง (ร่วม) ของทั้งโปรแกรมตัวอย่างและหนังสือ สามารถดาวน์โหลดหนังสือได้ฟรี


5

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

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

ในการดำเนินการนี้คุณจะต้องมีองค์ประกอบอื่น ๆ เพียงเล็กน้อย แต่ทุกอย่างสามารถเรียนรู้และตั้งโปรแกรมได้อย่างง่ายดาย

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

  2. คุณจะต้องใช้อัลกอริทึมอื่นในการจัดการคำที่ใช้ในการ Navier-Stokes ในหลายมิติการเขียนโปรแกรมใช้งานอย่างมีประสิทธิภาพของวิธีที่ยืดหยุ่นที่สุดเช่น Godunov นั้นค่อนข้างท้าทาย อย่างไรก็ตามหากคุณสนใจกระแสที่มีจำนวน Reynolds ค่อนข้างน้อย (เช่นด้วยความหนืดที่ไม่สามารถเพิกเฉยได้) ซึ่งเป็นหนึ่งในวิธีการแบบ non-oscillatory (ENO) ที่เหมาะกับการใช้งานอย่างมาก มีภาพรวมที่ยอดเยี่ยมของทั้งทฤษฎีและการนำไปใช้ใน [3]

  3. คุณจะต้องจัดการกับคำที่มีความหนืดโดยใช้วิธีการโดยปริยายโดยทั่วไปแล้ว Crank-Nicolson นี่คือคำอธิบายรายละเอียดในเอกสารวิธีการฉายภาพและคุณสามารถใช้ CG สำหรับการแก้ปัญหาเมทริกซ์ได้อย่างง่ายดายหากความหนืดคงที่

[1] AJ Chorin, คำตอบเชิงตัวเลขของสมการเนเวียร์ - สโตค , เจคณิตศาสตร์ คำนวณ, 22 (1968), หน้า 745-762

[2] A. Almgren, JB Bell, และ W. Szymczak, วิธีการเชิงตัวเลขสำหรับสมการเนเวียร์ - สโตกส์ที่ไม่สามารถบีบอัดได้จากการประมาณโดยประมาณ , SIAM J. Sci คอมพิวเต 17 (1996), หน้า 258-369

[3] เอสอาร์และ Osher Fedkiw, วิธีการตั้งค่าระดับพื้นผิวและ Dynamic โดยปริยาย Springer-Verlag นิวยอร์ก วิทยาศาสตร์คณิตศาสตร์ประยุกต์, 153, 2002


สำหรับคำตอบที่ดีนี้ให้ฉันเพิ่มความเข้าใจที่ได้รับการปรับปรุงเกี่ยวกับธรรมชาติของความดันในวิธีการฉายภาพแบบไม่ต่อเนื่องเวลาอยู่ใน: J.-G Liu, J. Liu, RL Pego, การประมาณแรงดันคงที่และแม่นยำสำหรับการไหลของความหนืดที่ไม่คงตัว, J. Comp สรวง 229 (2010) 3428-3453
Bob Pego

4

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


1

อีกวิธีที่ดีและเรียบง่ายจริงๆคือการใช้ระบบเซลลูลาร์อัตโนมัติสำหรับการแยกส่วน มีโมเดลให้เลือกมากมายเช่น LBA, FHP และอื่น ๆ อีกมากมาย สิ่งเหล่านี้เป็นสิ่งที่ดีมากเนื่องจากสามารถจำลองแบบเรียลไทม์บนคอมพิวเตอร์ที่ทันสมัยและยังสามารถนำไปใช้กับ GPU พวกเขายังมีข้อเสียและผลลัพธ์ขึ้นอยู่กับรูปร่างของขัดแตะ ตารางขัดแตะไม่เพียงพอเพราะมันขาดอิสระในการหมุนและนั่นคือ von kaarman vortices จะเป็นรูปสี่เหลี่ยมซึ่งไม่ดี :)

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