ฉันไม่เข้าใจพฤติกรรมที่แตกต่างกันของสมการการแพร่ - การกระจายเมื่อฉันใช้เงื่อนไขขอบเขตที่แตกต่างกัน แรงจูงใจของฉันคือการจำลองปริมาณทางกายภาพที่แท้จริง (ความหนาแน่นของอนุภาค) ภายใต้การแพร่และการพาความร้อน ความหนาแน่นของอนุภาคควรได้รับการอนุรักษ์ในการตกแต่งภายในเว้นแต่จะไหลออกมาจากขอบ โดยตรรกะนี้หากฉันบังคับใช้เงื่อนไขขอบเขตของ Neumann จุดสิ้นสุดของระบบเช่น(ทางด้านซ้ายและด้านขวา) จากนั้นระบบควรจะ"ปิด"เช่นถ้าฟลักซ์ที่ขอบเขตเป็นศูนย์จากนั้นไม่มีอนุภาคใด ๆ
สำหรับการจำลองด้านล่างทั้งหมดที่ผมได้นำมาใช้ต่อเนื่อง Crank-Nicolson สมพา-การแพร่กระจายและการจำลองเงื่อนไขขอบเขต อย่างไรก็ตามสำหรับแถวแรกและแถวสุดท้ายของเมทริกซ์ (แถวเงื่อนไขขอบเขต) ฉันอนุญาตให้สามารถเปลี่ยนแปลงได้โดยอิสระจากค่าภายใน สิ่งนี้ทำให้จุดสิ้นสุดมีความชัดเจน
ด้านล่างนี้ฉันพูดถึงการกำหนดค่าที่แตกต่างกัน 4 แบบหนึ่งในนั้นคือสิ่งที่ฉันคาดไว้ ในตอนท้ายฉันพูดคุยเกี่ยวกับการปฏิบัติ
จำกัด การแพร่เท่านั้น
ที่นี่ข้อกำหนดการปิดจะถูกปิดโดยการตั้งค่าความเร็วเป็นศูนย์
การแพร่กระจายเท่านั้นที่มี = 0.5 (Crank-Niscolson) ทุกจุด
ปริมาณไม่ได้รับการอนุรักษ์ตามที่สามารถเห็นได้จากการลดพื้นที่พัลส์
การกระจัดกระจายเท่านั้นโดยมี = 0.5 (Crank-Niscolson) ที่จุดตกแต่งภายในและ = 1 (โดยนัย) ที่ขอบเขตบีตา
โดยใช้สมการโดยปริยายอย่างเต็มที่ในขอบเขตที่ผมประสบความสำเร็จในสิ่งที่ผมคาดหวัง: ไม่มีอนุภาคหลบหนี คุณสามารถเห็นสิ่งนี้ได้โดยพื้นที่ที่ถูกอนุรักษ์ไว้เมื่ออนุภาคกระจายตัว ทำไมการเลือกที่จุดขอบเขตจึงมีอิทธิพลต่อฟิสิกส์ของสถานการณ์ นี่เป็นข้อบกพร่องหรือคาดหวัง
การแพร่และการพาความร้อน
เมื่อคำศัพท์การรวมค่าของที่ขอบเขตไม่ได้ดูเหมือนจะมีผลต่อการแก้ปัญหา อย่างไรก็ตามสำหรับทุกกรณีเมื่อขอบเขตดูเหมือนจะเป็น"เปิด"นั่นคืออนุภาคสามารถหนีออกจากขอบเขตได้ เหตุใดจึงเป็นเช่นนี้
Advection และ Diffusion ด้วย = 0.5 (Crank-Niscolson) ทุกจุด
Advection and Diffusion with = 0.5 (Crank-Niscolson) ที่จุดตกแต่งภายในและ = 1 (โดยนัย) ที่ขอบเขตบีตา
การประยุกต์ใช้สมการการแพร่ - การแพร่กระจาย
เริ่มต้นด้วยสมการการแพร่ - แพร่
การเขียนโดยใช้ Crank-Nicolson ให้
โปรดทราบว่า = 0.5 สำหรับ Crank-Nicolson, = 1 สำหรับการบอกเป็นนัยอย่างสมบูรณ์และ = 0 สำหรับการแสดงออกอย่างชัดเจนบีตาบีตา
เพื่อให้สัญกรณ์ง่ายขึ้นมาทำการแทนกัน
และย้ายค่าที่รู้จักของอนุพันธ์เวลาไปทางด้านขวามือ
การรับเงื่อนไขให้
ซึ่งเราสามารถเขียนในรูปแบบเมทริกซ์เป็นโดยที่
การใช้เงื่อนไขขอบเขตของนอยมันน์
NB ทำงานผ่านการสืบทอดมาอีกครั้งฉันคิดว่าฉันพบข้อผิดพลาดแล้ว ฉันถือว่าโครงการโดยปริยายอย่างสมบูรณ์ ( = 1) เมื่อเขียนความแตกต่างแน่นอนของเงื่อนไขขอบเขต หากคุณถือว่า Crank-Niscolson ที่นี่มีความซับซ้อนมากเกินไปและฉันไม่สามารถแก้สมการที่เกิดขึ้นเพื่อกำจัดโหนดที่อยู่นอกโดเมน อย่างไรก็ตามมันอาจเป็นไปได้มีสมการสองอันที่ไม่ทราบสองอัน แต่ฉันไม่สามารถจัดการมันได้ นี่อาจอธิบายความแตกต่างระหว่างแปลงแรกและแปลงที่สองด้านบน ฉันคิดว่าเราสามารถสรุปได้ว่าเฉพาะแผนการที่มี = 0.5 ที่จุดขอบเขตเท่านั้นที่ถูกต้อง
สมมติว่าฟลักซ์ที่ด้านซ้ายมือเป็นที่รู้จัก (สมมติว่าเป็นรูปแบบโดยนัย)
การเขียนสิ่งนี้เป็นความแตกต่างกึ่งกลางให้
ดังนั้น
โปรดทราบว่านี่จะแนะนำ nodeซึ่งอยู่นอกโดเมนของปัญหา โหนดนี้สามารถกำจัดได้โดยใช้สมการที่สอง เราสามารถเขียนโหนดเป็น
การแทนค่าพบจากเงื่อนไขขอบเขตให้ผลลัพธ์ต่อไปนี้สำหรับแถว = 1
ทำขั้นตอนเดียวกันสำหรับแถวสุดท้าย (ที่ = ) ให้ผลตอบแทน
ในที่สุดการสร้างแถวขอบเขตโดยปริยาย (การตั้งค่า = 1) ให้
ดังนั้นกับนอยมันน์ขอบเขตเงื่อนไขเราสามารถเขียนสมการเมทริกซ์ ,
ที่ไหน
ความเข้าใจปัจจุบันของฉัน
ฉันคิดว่าความแตกต่างระหว่างแปลงแรกและแปลงที่สองนั้นได้รับการอธิบายโดยการแจ้งข้อผิดพลาดที่ระบุไว้ด้านบน
เกี่ยวกับการอนุรักษ์ปริมาณทางกายภาพ ผมเชื่อว่าสาเหตุคือว่าเป็นแหลมออกจากที่นี่สมพาในรูปแบบที่ผมได้เขียนไว้ไม่อนุญาตให้มีการขยายพันธุ์ในทิศทางตรงกันข้ามดังนั้นคลื่นเพียงผ่านแม้จะมีศูนย์การไหลของเงื่อนไขขอบเขต สัญชาตญาณเริ่มต้นของฉันเกี่ยวกับการอนุรักษ์ถูกนำไปใช้เฉพาะเมื่อคำที่มีค่าเป็นศูนย์ (นี่คือวิธีแก้ปัญหาในพล็อตหมายเลข 2 ที่พื้นที่อนุรักษ์ไว้)ถึงแม้จะมีเงื่อนไขขอบเขตฟลักซ์นอยมันน์มวลยังสามารถออกจากระบบนี่เป็นเพราะเงื่อนไขขอบเขตที่ถูกต้องในกรณีนี้คือเงื่อนไขขอบเขตโรบินซึ่งรวมฟลักซ์ มีการระบุ0 ยิ่งกว่านั้นเงื่อนไขของ Neunmann ระบุว่ามวลไม่สามารถออกจากโดเมนผ่านการแพร่กระจายได้ ในสาระสำคัญสิ่งที่เราได้ยินคือเงื่อนไขขอบเขตปิดเพื่อการแพร่กระจายและเงื่อนไขขอบเขตเปิดเพื่อ advection สำหรับข้อมูลเพิ่มเติมดูคำตอบที่นี่การดำเนินการของการไล่ระดับเป็นศูนย์เขตแดนในสมการการแพร่ - การกระจาย.
คุณเห็นด้วยไหม