我在守恒定律、冲击等方面没有太多经验。在将波动方程重新公式化为一阶系统(速度应力)后: 其中:
我将我的 Dirichlet BC 放在第一个组件(一些常数 vx)并获得了僵硬的行为。我用二阶方程尝试了相同的模型,并看到美丽的波在传播。在这里,我使用显式求解器(FD、RK4)立即传播和加载大量不稳定性。网格越细,我得到的高频振荡就越多。也许我习惯了位移,不明白这个公式......
我的问题是:有什么方法可以用普通工具解决这类问题,还是我应该用黎曼求解器等来解决?我的长期计划是将其扩展到 DG。有很多关于戈杜诺夫计划等的论文,但我不太明白发生了什么……
编辑:是的,它是一个线性双曲线系统。我以更“通俗”的方式使用了“僵硬”一词。我无法使用 Dirichlet BC 为该系统找到稳定的显式时间步长方案。即使对于极低的 dt (1e-20),远低于 CFL,我也会在整个域中立即获得波。另一方面,对于隐式,解决方案不会正确传播。例如,二阶系统的正弦激励 u1 = y = sin(100*t) 看起来像这样(网格显然太粗但非常精细):
对于一阶系统,余弦激励 v1 = y' = 100*cos(100* t) 像这样:
相同的网格尺寸,相同的时间步长(Crank-Nicolson)。我想这在物理上是不正确的......