ความเงียบสงบของความเข้าใจอย่างลึกซึ้งจะได้รับประสบการณ์ในแบบฟอร์มฉันแค่สงสัยว่าถ้าใครเคยเห็นบางสิ่งบางอย่างที่คล้ายกันนี้มาก่อน เนื้อเรื่องแสดงสภาพเริ่มต้น (สีเขียว) สำหรับสมการการแพร่ - การแพร่กระจายแล้วสารละลายที่การวนซ้ำ 200 (สีน้ำเงิน) และอีกครั้งที่การทำซ้ำ 400 (สีแดง)
คำตอบของสมการการแพร่ - การแพร่กระจายระเบิดขึ้นหลังจากการทำซ้ำสองสามครั้ง จำนวนPéclet และสภาพ CFL เป็นที่พอใจ, C ≈ 0.0015ดังนั้นสมการควรจะมีเสถียรภาพ ฉันคาดว่าฉันมีข้อผิดพลาดในรหัสตัวเลข
พื้นหลัง. discretisation คือความแตกต่างที่สำคัญสำหรับทั้งเงื่อนไข advection และ diffusion ฉันเชื่อว่านี่เป็นคำสั่งแรกของการพาและคำสั่งที่สองสำหรับการแพร่ ฉันใช้สิ่งนี้โดยใช้วิธีไฟไนต์วอลลุ่ม (เป็นครั้งแรก) ซึ่งค่าสัมประสิทธิ์ (สัมประสิทธิ์ความเร็วและการแพร่) ที่เซลล์ใบหน้าพบได้โดยการประมาณค่าเชิงเส้นจากค่าเฉลี่ยของเซลล์ ฉันใช้เงื่อนไขขอบเขตของ Robin กับพื้นผิวซ้ายและขวาและตั้งค่าฟลักซ์ที่ขอบเขตเป็นศูนย์
คุณจะดีบักรหัสตัวเลขอย่างไร มีใครบางคนเคยทำอะไรแบบนี้มาก่อนจะเป็นที่ไหนดีที่จะเริ่มมองหา?
ปรับปรุง
- นี่คือบันทึกย่อสไตล์ "หนังสือห้องปฏิบัติการ" ส่วนตัวของฉันเกี่ยวกับการใช้ระเบียบวิธีไฟไนต์วอลลุ่มสำหรับสมการการแพร่ - การแพร่, http://danieljfarrell.github.io/FVM/
- ซอร์สโค้ดของ Python มีอยู่ที่นี่http://github.com/danieljfarrell/FVM.git
ปรับปรุง
วิธีแก้ปัญหานั้นไม่ง่ายกว่านี้อีกแล้ว! ฉันเพิ่งทำเครื่องหมายข้อผิดพลาดในคำแพร่ มันแปลกฉันแน่ใจว่าฉันไม่ได้โพสต์นี้ฉันจะไม่ได้พบข้อผิดพลาด! หากมีคนต้องการแบ่งปันเคล็ดลับเกี่ยวกับวิธีที่พวกเขาแก้ปัญหารหัสตัวเลขของฉันฉันยังคงสนใจ ฉันไม่มีวิธีการมันเป็นเรื่องฮิตและพลาดไปเรื่อย ๆ ฉันพยายามทำสิ่งต่าง ๆ เพื่อให้ได้เบาะแส แต่กระบวนการนี้อาจใช้เวลาหลายสัปดาห์ (บางครั้ง)