我正在使用有限差分法模拟声波在非矩形和不对称空间中的传播。我假设线性声学方程就足够了(即,)并且我需要系统的开放和封闭边界(例如,墙壁上的声压节点或波腹和速度也一样)。
当我必须处理 Neumann 边界条件时,就会出现问题。即使对于密集且计算不方便的网格,该方法也是不稳定的。
数学背后的物理学允许 3+1 或多或少直接的方式来进行模拟:
- 对声压进行建模(然后在开放/松散边界处需要 Neumann 条件:边界,封闭边界是可以的)
- 对速度势建模(不是很方便,因为在开放边界上而在闭合边界上 \partial_t \phi = 0)
- 对声速进行建模(即向量的模型 d'Alembert 波动方程 - 不是很优雅,这就是我们有潜力的原因)
- 将物理学重新表述为例如哈密顿(即只有一阶导数)、格子玻尔兹曼等。
请问有什么建议或经验吗?
编辑:
满足 CFL 条件。
问题实际上可能是数值离散。图片显示了一个系统,左侧的源在 -1 到 1 正弦波振荡。源区域外的图片上的值在 -0.1 和 0.1 之间变化。上下有狄利克雷边界,右边有诺依曼边界。
使用具有中心时间和空间的 FDM。在 matlab (dx=dy) 中:
A(ii,jj,n+1)=2*A(ii,jj,n)-A(ii,jj,n-1)+c1^2*dT^2/dX^2*(A(ii-1,jj,n)+A(ii+1,jj,n)+A(ii,jj-1,n)+A(ii,jj+1,n)-4*A(ii,jj,n));
