การอนุรักษ์ปริมาณทางกายภาพเมื่อใช้เงื่อนไขขอบเขต Neumann นำไปใช้กับสมการการแพร่ - แพร่


25

ฉันไม่เข้าใจพฤติกรรมที่แตกต่างกันของสมการการแพร่ - การกระจายเมื่อฉันใช้เงื่อนไขขอบเขตที่แตกต่างกัน แรงจูงใจของฉันคือการจำลองปริมาณทางกายภาพที่แท้จริง (ความหนาแน่นของอนุภาค) ภายใต้การแพร่และการพาความร้อน ความหนาแน่นของอนุภาคควรได้รับการอนุรักษ์ในการตกแต่งภายในเว้นแต่จะไหลออกมาจากขอบ โดยตรรกะนี้หากฉันบังคับใช้เงื่อนไขขอบเขตของ Neumann จุดสิ้นสุดของระบบเช่นϕx=0(ทางด้านซ้ายและด้านขวา) จากนั้นระบบควรจะ"ปิด"เช่นถ้าฟลักซ์ที่ขอบเขตเป็นศูนย์จากนั้นไม่มีอนุภาคใด ๆ

สำหรับการจำลองด้านล่างทั้งหมดที่ผมได้นำมาใช้ต่อเนื่อง Crank-Nicolson สมพา-การแพร่กระจายและการจำลองϕx=0เงื่อนไขขอบเขต อย่างไรก็ตามสำหรับแถวแรกและแถวสุดท้ายของเมทริกซ์ (แถวเงื่อนไขขอบเขต) ฉันอนุญาตให้βสามารถเปลี่ยนแปลงได้โดยอิสระจากค่าภายใน สิ่งนี้ทำให้จุดสิ้นสุดมีความชัดเจน

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

จำกัด การแพร่เท่านั้น

ที่นี่ข้อกำหนดการปิดจะถูกปิดโดยการตั้งค่าความเร็วเป็นศูนย์

การแพร่กระจายเท่านั้นที่มี = 0.5 (Crank-Niscolson) ทุกจุดβ

การแพร่เท่านั้น (ขอบเขตของ Neumann กับ beta = 0.5)

ปริมาณไม่ได้รับการอนุรักษ์ตามที่สามารถเห็นได้จากการลดพื้นที่พัลส์

การกระจัดกระจายเท่านั้นโดยมี = 0.5 (Crank-Niscolson) ที่จุดตกแต่งภายในและ = 1 (โดยนัย) ที่ขอบเขตบีตาββ

การแพร่เท่านั้น (ขอบเขตของ Neumann ที่มีเบต้า = 0.5 สำหรับการตกแต่งภายใน, Beta = 1 โดยนัยอย่างเต็มที่) ขอบเขต

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

การแพร่และการพาความร้อน

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

Advection และ Diffusion ด้วย = 0.5 (Crank-Niscolson) ทุกจุดβ

Advection-Diffusion (ขอบเขตของ Neumann กับ beta = 0.5)

Advection and Diffusion with = 0.5 (Crank-Niscolson) ที่จุดตกแต่งภายในและ = 1 (โดยนัย) ที่ขอบเขตบีตาββ

Advection and Diffusion (ขอบเขตของ Neumann กับ beta = 0.5 สำหรับการตกแต่งภายใน, beta = 1 โดยนัยอย่างเต็มที่) ขอบเขต

การประยุกต์ใช้สมการการแพร่ - การแพร่กระจาย

เริ่มต้นด้วยสมการการแพร่ - แพร่

ϕt=D2ϕx2+vϕx

การเขียนโดยใช้ Crank-Nicolson ให้

ϕjn+1ϕjnΔt=D[1β(Δx)2(ϕj1n2ϕjn+ϕj+1n)+β(Δx)2(ϕj1n+12ϕjn+1+ϕj+1n+1)]+v[1β2Δx(ϕj+1nϕj1n)+β2Δx(ϕj+1n+1ϕj1n+1)]

โปรดทราบว่า = 0.5 สำหรับ Crank-Nicolson, = 1 สำหรับการบอกเป็นนัยอย่างสมบูรณ์และ = 0 สำหรับการแสดงออกอย่างชัดเจนบีตาบีตาβββ

เพื่อให้สัญกรณ์ง่ายขึ้นมาทำการแทนกัน

s=DΔt(Δx)2r=vΔt2Δx

และย้ายค่าที่รู้จักของอนุพันธ์เวลาไปทางด้านขวามือϕjn

ϕjn+1=ϕjn+s(1β)(ϕj1n2ϕjn+ϕj+1n)+sβ(ϕj1n+12ϕjn+1+ϕj+1n+1)+r(1β)(ϕj+1nϕj1n)+rβ(ϕj+1n+1ϕj1n+1)

การรับเงื่อนไขให้ϕ

β(rs)ϕj1n+1+(1+2sβ)ϕjn+1β(s+r)ϕj+1n+1Aϕn+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1nMϕn

ซึ่งเราสามารถเขียนในรูปแบบเมทริกซ์เป็นโดยที่Aϕn+1=Mϕn

A=(1+2sββ(s+r)0β(rs)1+2sββ(s+r)β(rs)1+2sββ(s+r)0β(rs)1+2sβ)

M=(12s(1β)(1β)(s+r)0(1β)(sr)12s(1β)(1β)(s+r)(1β)(sr)12s(1β)(1β)(s+r)0(1β)(sr)12s(1β))

การใช้เงื่อนไขขอบเขตของนอยมันน์

NB ทำงานผ่านการสืบทอดมาอีกครั้งฉันคิดว่าฉันพบข้อผิดพลาดแล้ว ฉันถือว่าโครงการโดยปริยายอย่างสมบูรณ์ ( = 1) เมื่อเขียนความแตกต่างแน่นอนของเงื่อนไขขอบเขต หากคุณถือว่า Crank-Niscolson ที่นี่มีความซับซ้อนมากเกินไปและฉันไม่สามารถแก้สมการที่เกิดขึ้นเพื่อกำจัดโหนดที่อยู่นอกโดเมน อย่างไรก็ตามมันอาจเป็นไปได้มีสมการสองอันที่ไม่ทราบสองอัน แต่ฉันไม่สามารถจัดการมันได้ นี่อาจอธิบายความแตกต่างระหว่างแปลงแรกและแปลงที่สองด้านบน ฉันคิดว่าเราสามารถสรุปได้ว่าเฉพาะแผนการที่มี = 0.5 ที่จุดขอบเขตเท่านั้นที่ถูกต้องββ

สมมติว่าฟลักซ์ที่ด้านซ้ายมือเป็นที่รู้จัก (สมมติว่าเป็นรูปแบบโดยนัย)

ϕ1n+1x=σL

การเขียนสิ่งนี้เป็นความแตกต่างกึ่งกลางให้

ϕ1n+1xϕ2n+1ϕ0n+12Δx=σL

ดังนั้น ϕ0n+1=ϕ2n+12ΔxσL

โปรดทราบว่านี่จะแนะนำ nodeซึ่งอยู่นอกโดเมนของปัญหา โหนดนี้สามารถกำจัดได้โดยใช้สมการที่สอง เราสามารถเขียนโหนดเป็นϕ0n+1j=1

β(rs)ϕ0n+1+(1+2sβ)ϕ1n+1β(s+r)ϕ2n+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1n

การแทนค่าพบจากเงื่อนไขขอบเขตให้ผลลัพธ์ต่อไปนี้สำหรับแถว = 1ϕ0n+1j

(1+2sβ)ϕ1n+12sβϕ2n+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1n+2β(rs)ΔxσL

ทำขั้นตอนเดียวกันสำหรับแถวสุดท้าย (ที่ = ) ให้ผลตอบแทนjJ

2sβϕJ1n+1+(1+2sβ)ϕJn+1=(1β)(sr)ϕJ1n+(12s(1β))ϕJn+2β(s+r)ΔxσR

ในที่สุดการสร้างแถวขอบเขตโดยปริยาย (การตั้งค่า = 1) ให้β

(1+2s)ϕ1n+12sϕ2n+1=ϕj1n+1ϕjn+2(rs)ΔxσL

2sϕJ1n+1+(1+2s)ϕJn+1=ϕJn+2(s+r)ΔxσR

ดังนั้นกับนอยมันน์ขอบเขตเงื่อนไขเราสามารถเขียนสมการเมทริกซ์ ,Aϕn+1=Mϕn+bN

ที่ไหน

A=(1+2s2s0β(rs)1+2sββ(s+r)β(rs)1+2sββ(s+r)02s1+2s)

M=(100(1β)(sr)12s(1β)(1β)(s+r)(1β)(sr)12s(1β)(1β)(s+r)001)

bN=(2(rs)ΔxσL002(s+r)ΔxσR)T

ความเข้าใจปัจจุบันของฉัน

  • ฉันคิดว่าความแตกต่างระหว่างแปลงแรกและแปลงที่สองนั้นได้รับการอธิบายโดยการแจ้งข้อผิดพลาดที่ระบุไว้ด้านบน

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

  • ถึงแม้จะมีเงื่อนไขขอบเขตฟลักซ์นอยมันน์มวลยังสามารถออกจากระบบนี่เป็นเพราะเงื่อนไขขอบเขตที่ถูกต้องในกรณีนี้คือเงื่อนไขขอบเขตโรบินซึ่งรวมฟลักซ์ มีการระบุ0 ยิ่งกว่านั้นเงื่อนไขของ Neunmann ระบุว่ามวลไม่สามารถออกจากโดเมนผ่านการแพร่กระจายได้ ในสาระสำคัญสิ่งที่เราได้ยินคือเงื่อนไขขอบเขตปิดเพื่อการแพร่กระจายและเงื่อนไขขอบเขตเปิดเพื่อ advection สำหรับข้อมูลเพิ่มเติมดูคำตอบที่นี่การดำเนินการของการไล่ระดับเป็นศูนย์เขตแดนในสมการการแพร่ - การกระจายϕx=0j=Dϕx+vϕ=0.

คุณเห็นด้วยไหม


ดูเหมือนว่าเงื่อนไขขอบเขตไม่ได้ดำเนินการอย่างถูกต้อง คุณช่วยแสดงให้เราเห็นว่าคุณได้กำหนดเงื่อนไขขอบเขตได้อย่างไร?
David Ketcheson

ตกลงฉันอัปเดตด้วยการนำไปใช้และฉันคิดว่าฉันพบข้อผิดพลาดเกี่ยวกับการใช้ = 0.5 ที่แถวขอบเขตเท่านั้น ฉันได้อัปเดต "ความเข้าใจปัจจุบัน" ของฉันที่ด้านล่างของคำถาม คุณมีความคิดเห็นใด ๆ ? β
boyfarrell

ดังนั้น ... การแยกแยะในขอบเขตนั้นมีลักษณะอย่างไรในกรณีของขอบเขตของโรบิน? คุณได้แสดงให้เห็นถึงขอบเขตของนอยมันน์ แต่ไม่ใช่ขอบเขตของโรบิน

คำตอบ:


15

ฉันคิดว่าหนึ่งในปัญหาของคุณคือ (ตามที่คุณสังเกตเห็นในความคิดเห็นของคุณ) เงื่อนไขนอยมันน์ไม่ใช่เงื่อนไขที่คุณกำลังมองหาในแง่ที่ว่าพวกเขาไม่ได้หมายความถึงการอนุรักษ์ปริมาณของคุณ หากต้องการค้นหาเงื่อนไขที่ถูกต้องให้เขียน PDE ของคุณใหม่เป็น

ϕt=x(Dϕx+vϕ)+S(x,t).

ตอนนี้คำที่ปรากฏในวงเล็บคือฟลักซ์ทั้งหมดและนี่คือปริมาณที่คุณต้องทำให้เป็นศูนย์ในขอบเขตเพื่อการอนุรักษ์พี (ฉันได้เพิ่มเพื่อประโยชน์ส่วนรวมและความคิดเห็นของคุณ) เงื่อนไขขอบเขตที่คุณต้องกำหนดนั้นคือ (สมมติว่าโดเมนอวกาศของคุณคือ )Dϕx+vϕ=0ϕS(x,t)(10,10)

Dϕx(10)+vϕ(10)=0

สำหรับด้านซ้ายและ

Dϕx(10)+vϕ(10)=0

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

หากคุณตั้งค่าเงื่อนไขขอบเขตเหล่านี้คุณจะได้รับคุณสมบัติการอนุรักษ์ที่คุณกำลังมองหา อันที่จริงแล้วการรวมเข้ากับโดเมนอวกาศนั้นเรามี

ϕtdx=x(Dϕx+vϕ)dx+S(x,t)dx

เราใช้การบูรณาการโดยชิ้นส่วนทางด้านขวามือของเรา

ϕtdx=(Dϕx+vϕ)(10)(Dϕx+vϕ)(10)+S(x,t)dx

ตอนนี้ศัพท์กลางสองคำได้หายไปเนื่องจากเงื่อนไขขอบเขต บูรณาการในเวลาที่เราได้รับ

0Tϕtdxdt=0TS(x,t)dxdt

และถ้าเราได้รับอนุญาตให้สลับสองปริพันธ์แรก ,

ϕ(x,T)dxϕ(x,0)dx=0TS(x,t)dx

นี่แสดงให้เห็นว่าโดเมนนั้นเป็นฉนวนจากภายนอก โดยเฉพาะอย่างยิ่งถ้าเราได้รับการอนุรักษ์\ϕS=0ϕ


ฉันรู้แล้วว่าทำไมมันถึงใช้ได้เมื่อ = 0; เพราะสิ่งนี้จะบ่งบอกถึงการอนุรักษ์ตามแนวทางของคุณด้านบน สิ่งที่จะเป็นผลของการใช้เงื่อนไขขอบเขตด้านบนคลื่นจะสะท้อน? ฉันคิดว่าคงเป็นไปไม่ได้เพราะไม่มีอะไรในสมการที่จะให้ความเร็วเชิงลบแก่ฉัน v
boyfarrell

วิธีที่ดีที่สุดที่จะรู้น่าจะลอง! แต่ถ้าสิ่งนี้ทำงานได้อย่างถูกต้อง (และ IMO เป็นเช่นนั้น) คุณควรเห็นจำนวนหนึ่งที่เริ่มสะสมทางด้านซ้ายของโดเมน: การพาความร้อนผลักในทิศทางนั้น แต่ขอบเขตถูกปิด การสะสมหยุดลงเมื่อการแพร่กระจายมีขนาดใหญ่พอที่จะทำให้สมดุล ดังนั้นไม่ควรไม่มีคลื่นสะท้อน ϕϕϕ
Dr_Sam

@DrSam เพียงคำถามเกี่ยวกับการใช้งาน ฉันเข้าใจประเด็นของคุณเกี่ยวกับวิธีทำให้ปริมาณเป็นศูนย์ทางด้านซ้ายมือ แต่เมื่อคุณพูดว่า "ทางด้านขวาเพียงแค่ขอบเขต" นั่นหมายความว่าอย่างไร ฉันคิดว่าเงื่อนไขขอบเขตควรเป็น Neumann หรือ Dirichlet (หรือทั้งสองอย่างผสมกัน)
boyfarrell

@boyfarrell ซ้าย / ขวาในคำตอบคือการอ้างถึงการสืบทอดของเงื่อนไขขอบเขตที่ถูกต้องไม่ใช่วิธีที่จะนำไปใช้ (แก้ไขเพื่อความชัดเจน) เงื่อนไขของโรบินเป็นเงื่อนไขแบบคลาสสิกแม้ว่าจะไม่ค่อยมีใครรู้จักดีริชเลต์และนอยมันน์
Dr_Sam

ดังนั้นเกี่ยวกับการดำเนินการคุณคิดว่าฉันควรจะได้รับเงื่อนไขขอบเขตของโรบินสำหรับทั้งสองขอบเขตหรือไม่? ยิ่งไปกว่านั้นถ้าสมการมีปฏิกิริยาระยะ (e กรัมเงื่อนไขขอบเขตจำเป็นต้องรวมคำนี้ด้วยหรือไม่?
ϕt=x(Dϕx+vϕ)+S(x,t)
boyfarrell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.