[問題] 練習用FDTD算波動方程式
看板Physics作者DevilsCrying (空的腦袋 Sora no Adama)時間15年前 (2010/10/19 18:27)推噓0(0推 0噓 1→)留言1則, 1人參與討論串1/4 (看更多)
Hi 各位
最近在練習用FDTD解波動方程式,邊界條件為Dirichlet B. C.
而初始條件為一個由左向右入射的 Gaussian Wave Packet
我碰到一些狀況,比方說,
1.波包移動時並不會維持其形狀
後來這個問題利用CFL Condition解決了,但是....
2.不知道Initial Condition怎麼設
用來疊代的式子是
u(i,j)=((c*t/d)^2)*(u(i-1,j-1)+u(i-1,j+1)-2*u(i-1,j))+2*u(i-1,j)-u(i-2,j)
i跟j分別代表時間跟空間的grid numbers,c是波速,
t跟d則分別是時間跟空間的小切割
我的初始條件可以設成 u(0,j)=Gaussian Wave Packet G(x-a)
但是u(1,j)該怎麼設呢?
我一開始先設u(0,j)=0然後u(1,j)=G(x-a)
結果那個波包會先像分身術一樣跑出好幾個分身在一起維持形狀移動
後來設u(0,j)=G(x-a), u(1,j)=G(x-a-d)
就成功弄出一個形狀不變且向右移動的波包,而且碰到左右邊界會反彈
反彈也有相位差180度,自己非常滿意。
3.但是當我想考慮入射到不同介質時,卻不行了。
假設左半邊的波速c1而右半邊的波速c2
我想觀察波包部分反射部分穿透的現象,
首先,我的做法是配合CFL Condition讓左右兩邊的((c*t/d)^2)都等於1
有就是說 在t不變的情況下 改變d去配合c
但是顯而易見的 這樣對我的波的行為 沒有任何改變
再來,我假設t跟d都固定,單純讓兩邊有不同的c
結果波包會反射也有穿透,
但是反射跟穿透波都不再是Gaussian Wave Packet
當然反射波在左邊可以維持形狀傳遞
但是穿透波就無法維持形狀在右邊傳遞了
所以,關於上述3點,小弟想請教有經驗的人下列幾點
1.空間跟時間的小切割一定都要綁在一起,這樣合理嗎? 有其他方法可以解套嗎?
2.一般前兩個時間點的波形要怎麼設? 我這樣設是唯一的方法嗎?
3.兩種介質的問題,到底要如何解決?
我這些問題應該跟用哪一種軟體寫程式應該無關吧 @@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.234
→
10/19 19:06, , 1F
10/19 19:06, 1F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 4 篇):