声波传播方程-Helmholtz方程差分计算

1.声波传播方程程序

∇ 2 p + k 2 p = 0 (1) {\nabla ^2}p + {k^2}p = 0 \tag{1} 2p+k2p=0(1)

其中 , k = ω / c , ω = 2 π f k = \omega /c,\omega = 2\pi f k=ω/c,ω=2πf,采用中心差分格式: ∇ 2 p = ∂ 2 p ∂ x 2 + ∂ 2 p ∂ y 2 {\nabla ^2}p = {{{\partial ^2}p} \over {\partial {x^2}}} + {{{\partial ^2}p} \over {\partial {y^2}}} 2p=x22p+y22p ,其中:
∂ 2 p ∂ x 2 = p i + 1 , j + p i − 1 , j − 2 p i , j ( Δ x ) 2 {{{\partial ^2}p} \over {\partial {x^2}}} = {{{p_{i + 1,j}} + {p_{i - 1,j}} - 2{p_{i,j}}} \over {{{(\Delta x)}^2}}} x22p=(Δx)2pi+1,j+pi1,j2pi,j ∂ 2 p ∂ y 2 = p i , j + 1 + p i , j − 1 − 2 p i , j ( Δ y ) 2 (2) {{{\partial ^2}p} \over {\partial {y^2}}} = {{{p_{i,j + 1}} + {p_{i,j - 1}} - 2{p_{i,j}}} \over {{{(\Delta y)}^2}}}\tag{2} y22p=(Δy)2pi,j+1+pi,j12pi,j(2)
将(2)带入(1)式中得:
p i + 1 , j + p i − 1 , j − 2 p i , j ( Δ x ) 2 + p i , j + 1 + p i , j − 1 − 2 p i , j ( Δ y ) 2 + k 2 p i , j = 0 (3) {{{p_{i + 1,j}} + {p_{i - 1,j}} - 2{p_{i,j}}} \over {{{(\Delta x)}^2}}} + {{{p_{i,j + 1}} + {p_{i,j - 1}} - 2{p_{i,j}}} \over {{{(\Delta y)}^2}}} + {k^2}{p_{i,j}} = 0\tag{3} (Δx)2pi+1,j+pi1,j2pi,j+(Δy)2pi,j+1+pi,j12pi,j+k2pi,j=0(3)
图1 差分格式
(3)式为Helmholtz方程差分计算的基本方程。因此将声压变量向量形式得到:
A P = 0 (4) AP = 0\tag{4} AP=0(4)
由于差分方程(3)中的变量数目为5,因此A是带宽为5的稀疏矩阵。 P = [ p 1 , 1 , p 1 , 2 , p 1 , 3 ⋯ p m , n ] T P = {[{p_{1,1}},{p_{1,2}},{p_{1,3}} \cdots {p_{m,n}}]^T} P=[p1,1,p1,2,p1,3pm,n]T为声压列向量。由于矩阵A是满秩的,因此方程(4)仅有0解。在实际频域计算时往往存在一些激励,比如平面波入射,单极子、偶极子点源等。
假设位置 r 0 r0 r0处含有单极子电源,此时方程(1)可表示如下形式:
∇ 2 p + k 2 p = 4 π S δ ( r − r 0 ) (5) {\nabla ^2}p + {k^2}p = 4\pi S\delta (r - r0)\tag{5} 2p+k2p=4πSδ(rr0)(5)
其中 r 0 r0 r0处的激励为 , 此时(4)式右边存在与 r 0 r0 r0点对应非零项b,矩阵方程(4)转化为:
A P = b (6) AP = b\tag{6} AP=b(6)
其中 b b b为已知列向量,然后可以利用迭代求解得到未知量 。

2.边界条件

根据离散方程(3)的差分格式,我们注意到,角边界点只有三个变量,而非角边界只有4个变量。这是由于在形成矩阵的时候默认了最外层边界为0。实际上在单个点源激励时,无穷远处才会存在声压为0的现象,因此在计算区域限制的情况下,必然会出现反射问题。为了减小反射的影响,除了扩大计算域外,还可以添加吸收层,其中最常用的吸收层为完美匹配层(PML),其基本原理是将复数空间引入到Helmholtz方程之中,如同在边界上添加了一层阻尼,声压传递到外层时会呈指数下降,因此声压传递到最外层时已经大小趋近于0,反射对计算域产生的影响较小。
在这里插入图片描述
当然边界条件设定除了满足计算需求外,还可以简化计算,可以对称界面设定,比如以 p 1 , j {p_{1,j}} p1,j为对称点即 p 2 , j + p 0 , j − 2 p i , j ( Δ x ) 2 + p 1 , j + 1 + p 1 , j − 1 − 2 p i , j ( Δ y ) 2 + k 2 p 1 , j = 0 {{{p_{2,j}} + {p_{0,j}} - 2{p_{i,j}}} \over {{{(\Delta x)}^2}}} + {{{p_{1,j + 1}} + {p_{1,j - 1}} - 2{p_{i,j}}} \over {{{(\Delta y)}^2}}} + {k^2}{p_{1,j}} = 0 (Δx)2p2,j+p0,j2pi,j+(Δy)2p1,j+1+p1,j12pi,j+k2p1,j=0可转化为:
2 p 2 , j − 2 p i , j ( Δ x ) 2 + p 1 , j + 1 + p 1 , j − 1 − 2 p i , j ( Δ y ) 2 + k 2 p 1 , j = 0 (7) {{2{p_{2,j}} - 2{p_{i,j}}} \over {{{(\Delta x)}^2}}} + {{{p_{1,j + 1}} + {p_{1,j - 1}} - 2{p_{i,j}}} \over {{{(\Delta y)}^2}}} + {k^2}{p_{1,j}} = 0\tag{7} (Δx)22p2,j2pi,j+(Δy)2p1,j+1+p1,j12pi,j+k2p1,j=0(7)
p 2 , j {p_{2,j}} p2,j对应系数增加一倍。
以上便是频域差分方程求解的整体思路,要注意的是与时域的求解方式link不同,椭圆形的频域方程无法采用递进计算的方式求解。交流学习请联系qq2862274738或邮箱dynyanhao@163.com

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值