如何从有限差分 (FD) 波模拟中计算色散关系

计算科学 有限差分 数值分析 波传播 数值限制
2021-12-10 10:39:05

我有一个 python 代码,可以计算具有任何速度和源配置的 2D 介质的非均匀声波方程的解。它是使用来自以下方程组的有限差分来实现的:

ρ(r)(1ρ(r)p(r,t))1c2(r)2p(r,t)2t=s(r,t)

在哪里,

s(r,t)=ρ(r)2iv(r,t)2t

和传播速度

c(r)=κ(r)ρ(r)

其中,为介质的绝热压缩模量,为源,为介质的密度。κivρ

FD 模式在时间上使用二阶离散化,在空间上使用四阶离散化,并针对 2D 空间实现。

我的问题是如何从数值模拟中计算代码的色散关系?事实上,我想计算相速度色散。v(k)=ω(k)k

我想这样做以与文献中的预期关系进行比较。我预计它会随着不同的网格角度、源频率和稳定性参数而变化。我知道如何在我的模拟中输入这些,但我不知道如何使用结果(2D 时间面板)来建立色散关系。

1个回答

我试图用物理直觉和论据来回答它。

我假设你会得到作为解决方案。仅以一维为例,即写为如果你先傅里叶在空间中分解它,你会 s。然后对于每个,及时进行傅里叶变换以获得现在绘制一次一个 n。峰值将对应于(这里我将争辩说只有前导顺序很重要;这可以被细化以找到对的第二个和以后的顺序依赖性)。这样想——如果一些p(r,t)p(x,t)=ΣnΣmamnSin(kmxωnt)kmkmωnωnamnkmωnkmamn对于某个特定的 n(调用 )在数值上为零,这意味着波的分量不存在于全波。同样,对于其他 n。这样你就会得到对一般来说,每个 n 都会得到不同的 m。最后,找到该曲线的拟合或使用该图来定义您的色散关系。m0noSin(km0xωn0t)(n,m)

请注意空间和时间中离散傅立叶变换的注意和考虑,这对您通过单元大小和时间步)和时间段(kmωn

分别扫长得到以将其扩展为三个维度。x,yz(kx,ky,kz)