CFD โอเพ่นซอร์สคุณภาพดีใช้งานง่ายแก้ปัญหาได้หรือไม่?


17

วิทยานิพนธ์ของฉันคือการพัฒนาวิธีการเชิงตัวเลขสำหรับการลดรูปแบบในการเผาไหม้ ฉันใช้วิธีการของฉันอย่างหมดจดในส่วนทางเคมีของการจำลองการเผาไหม้และฉันมีกรณีศึกษามากมายสำหรับการจำลอง 0-D (ไม่มีการไหล) สิ่งที่ฉันต้องการคือการเรียกใช้แบบจำลองที่มีการไหลในพวกเขาโดยเฉพาะอย่างยิ่งแบบจำลอง 2 มิติหรือ 3 มิติ

การจำลองเหล่านี้จะต้องเป็นแบบขนานเนื่องจากความต้องการการคำนวณสูง ฉันต้องการสิ่งที่สามารถเชื่อมต่อกับนักแก้ปัญหาทางเคมีเช่น Chemkin หรือ Cantera ซึ่งฉันมีซอร์สโค้ด (Chemkin อยู่ใน Fortran 77 และ Cantera อยู่ใน C ++)

ในกรณีที่เหมาะสมที่สุดฉันสามารถระบุรูปแบบการไหลโดยใช้ความรู้พื้นฐานเกี่ยวกับกลศาสตร์ของไหลที่ฉันมีจากโปรแกรมการเรียนจบของฉันและแพ็คเกจ CFD บางอย่างเพิ่มเคมีและเรียกใช้ ถ้าฉันต้องการฉันสามารถตั้งค่าสมการที่ควบคุมการเคลื่อนที่ของไหลและเคมีสำหรับกรณีศึกษาอย่างง่ายจากการตั้งค่าการทดลองที่ใช้โดยผู้ทำงานร่วมกันในอดีต แต่ฉันชอบไม่หมุนรหัส CFD ของตัวเองเว้นแต่ว่า แพคเกจหรือแพคเกจที่ทำให้มันง่ายมากที่จะทำ ฉันยินดีที่จะใช้เวลา 2-3 สัปดาห์กับมัน ฉันไม่ทราบว่าข้อกำหนดนี้เป็นไปตามกฎของ PETSc หรือ Trilinos หรือไม่ ถ้าฉันต้องใช้เวลานานกว่านี้ฉันก็ควรจะยกเลิกมันไปจนกระทั่งภายหลังเพราะฉันมีผู้ทำงานร่วมกันจัดหารหัส CFD สำหรับกรณีศึกษาด้วยเช่นกัน

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

@ FrenchKeldar ทำให้เป็นจุดที่ดีที่ฉันควรพูดถึงลักษณะของปัญหาที่ฉันต้องการแก้ไข:

  • ก๊าซอุดมคติ (สมบูรณ์แบบ) เฟสเดียว
  • อัด
  • การไหลแบบราบเรียบเป็นสิ่งจำเป็น การไหลเชี่ยวเป็นบวก (ฉันรู้เล็กน้อยเกี่ยวกับความปั่นป่วนจากงานก่อนหน้านี้ในวิธีการเชิงตัวเลขใน CFD แต่ฉันไม่ได้ทำงานกับนักแก้ปัญหา CFD; ฉันเพิ่งรู้เรื่องฟิสิกส์เล็กน้อย)
  • การกำหนดหมายเลขศูนย์มัคไม่เป็นไร (ฉันไม่สนเรื่องการกระแทกหรือกระแสเหนือเสียง)
  • เคมีการเผาไหม้โดยไม่คำนึงถึงฟลักซ์ Soret และ Dufour และรักษาการแพร่กระจายเป็น Fickian
  • เรขาคณิตเป็นสิ่งที่เรียบง่าย

ฉันสามารถเขียนรหัสเชื่อมต่อแม้ว่าฉันจะต้องเขียนน้อยก็ยิ่งดี; @FrenchKeldar ยังชี้ให้เห็นว่า Cantera มีการเชื่อมโยงกับ Fortran และ Python ตอนนี้ฉันใช้การผูก Cantera Python เพื่อทำต้นแบบอย่างรวดเร็วดังนั้นฉันก็เลยรู้สึกดีกับมันเช่นกัน


Cantera มี wrapper สำหรับ python และ Fortran เพื่อให้การค้นหากว้างขึ้น
FrenchKeldar

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

@FrenchKeldar: ขอบคุณที่ชี้ให้เห็น ฉันได้เพิ่มเฉพาะบางอย่าง
Geoff Oxberry

2
อีกหนึ่งความคิดเห็น: ถ้าคุณไม่สนใจเกี่ยวกับเสียงหรือคลื่นคุณไม่ควรใช้ตัวแก้ปัญหาที่บีบอัดไม่ได้? ที่จะขยายความเป็นไปได้ของคุณ ...
FrenchKeldar

ให้ฉันใช้ถ้อยคำใหม่: ฉันไม่สนใจเรื่องแรงกระแทก เนื่องจากเฟสเป็นก๊าซในอุดมคติและก๊าซอุดมคติเปลี่ยนเป็นความหนาแน่นเมื่อความดันเปลี่ยนแปลงการไหลจึงควรบีบอัดได้
Geoff Oxberry

คำตอบ:


11

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

มีบทเรียนจำนวน จำกัด เอกสารที่ระบุไว้ในคู่มือผู้ใช้ไม่รวมคุณสมบัติทางเคมี มีตัวอย่างบางกรณีสำหรับนักแก้ปัญหาที่คุณสามารถดูได้ ทางออกที่ดีที่สุดของคุณคือการตรวจสอบเว็บไซต์หลักสูตรการจบการศึกษา OS-CFD ที่ Chalmers (ลิงก์สำหรับปี 2011 แต่มีลิงค์ไปยังหน้าของปีก่อนหน้า) นักเรียนมักจะมีเอกสารแก้ที่พวกเขากำลังทำงานอยู่เช่นที่นี่

เกี่ยวกับความพยายามในการเรียนรู้: หากคุณได้รับโดยใช้หนึ่งในโมเดลที่กำหนดไว้ล่วงหน้ามันจะค่อนข้างตรงไปตรงมาสำหรับการใช้และคุณควรจะได้ผลลัพธ์ภายในไม่กี่สัปดาห์ หากคุณต้องลงมาอยู่ใต้ระดับสูงสุด (เช่นเพื่อเพิ่มตัวแก้ ODE ใหม่) สิ่งต่าง ๆ อาจจะยากขึ้นอย่างรวดเร็วและคุณจะต้องรู้ภาษา C ++


ขอบคุณสำหรับคำแนะนำ! ฉันได้ยินสิ่งดีๆเกี่ยวกับ OpenFOAM และฉันต้องการใช้ในอนาคต จากประสบการณ์ของคุณมันเป็นเรื่องง่ายที่จะเรียนรู้ API หรือไม่? มีแบบฝึกหัดที่ดีหรือตัวอย่างที่ใช้ OpenFOAM โดยเฉพาะอย่างยิ่งกับวิชาเคมีหรือไม่?
Geoff Oxberry

ฉันอัปเดตคำตอบของฉัน
1111

1
เริ่มเรียนรู้ C ++ ในไม่ช้า :) Godspeed
tmaric

2

คุณสามารถใช้PyClawซึ่งเป็นส่วนขยายแบบขนานของClawpack (หมายเหตุ: ฉันเป็นหนึ่งในผู้พัฒนาหลักของ PyClaw) มันรวมถึงนักแก้ปัญหา 2D และ 3D สำหรับสมการออยเลอร์ inviscid (การไหลที่อัดได้) ของก๊าซในอุดมคติ นอกจากนี้ยังมีการแยก Strang ในตัว แต่คุณต้องเพิ่มการประเมินผลของคำที่มีความหนืดและเคมีด้วยตัวคุณเอง มันควรจะตรงไปตรงมากับอินเตอร์เฟสกับ Chemkin และ Cantera เนื่องจาก PyClaw เขียนใน Python และมีทั้งรหัส Fortran 77 และ C อยู่แล้ว

PyClaw นั้นค่อนข้างใหม่ (แม้ว่ารหัส Clawpack พื้นฐานนั้นค่อนข้างเก่า) และไม่ได้รับการยอมรับว่าเป็น OpenFOAM


ขอบคุณ! ฉันจะต้องตรวจสอบมันแม้ว่ามันอาจใช้เวลาสักครู่ที่จะได้รับมัน เมื่อฉันได้ใช้มันฉันจะบอกให้คุณรู้ว่ามันจะเป็นยังไง
Geoff Oxberry

2

Fire Dynamics Simulator (FDS) ของ NIST ฟังดูเหมือนสิ่งที่คุณต้องการ FDS เป็นตัวแก้ปัญหาการไหลหมายเลขมัคต่ำ ความหนาแน่นสามารถเปลี่ยนแปลงได้ แต่เอฟเฟกต์เสียงและแรงกระแทกถูกละเลย

FDS มีเอกสารค่อนข้างดีถึงแม้ว่าฉันยอมรับว่าฉันไม่ได้ดูในรูทีนตัวแก้ปัญหาการไหลหลัก ฉันยังไม่รู้เกี่ยวกับวิธีที่ FDS จัดการกับเคมีการเผาไหม้

ผมขอแนะนำให้ดาวน์โหลดรหัสล่าสุดจากเว็บไซต์ Google Code FDS ของ


0

มีมากมายที่นั่น!

OpenFOAMเป็นที่ดีที่สุด IMHO แต่คนอื่น ๆ มีที่ลิงค์นี้ ,


โปรดอย่าให้คำตอบ 'ลิงก์เท่านั้น' เนื่องจากลิงก์อาจเสียหาย
ม.ค.

ฉันไม่ต้องการที่จะนำเสนอตัวเลือกทั้งหมดที่กล่าวถึงในที่นั่นในฐานะ "ของฉัน" ในทางเทคนิคแล้วฉันสามารถคัดลอกและวางเนื้อหาทั้งหมด แต่ฉันไม่ใช่คนนั้น ดังนั้นฉันจึงใส่ลิงค์ตรงเพื่อให้เครดิตแก่ผู้แต่งดั้งเดิม
T3rmInAt0r

1
Alright แต่คุณสามารถพูดได้ว่าเก้าอี้สำหรับการคำนวณพลศาสตร์ของไหลและกลไกความปั่นป่วนที่มหาวิทยาลัยแมนเชสเตอร์ได้รวบรวมรายการซอฟต์แวร์โอเพนซอร์ซสำหรับวิศวกร หากคุณทำเช่นนั้นผู้เยี่ยมชมคนอื่น ๆ ยังคงสามารถค้นหาอินเทอร์เน็ตได้ในกรณีที่ลิงก์เสีย
ม.ค.

0

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

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