作者DevilsCrying (空的脑袋 Sora no Adama)
看板Physics
标题[问题] 练习用FDTD算波动方程式
时间Tue Oct 19 18:27:47 2010
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
1F:→ DevilsCrying:a是wave packet的peak的位置 10/19 19:06