验证波传播代码的简单方法是什么?

计算科学 有限元 芬尼克斯 波传播 确认
2021-12-19 08:50:50

我有一个线性弹性波传播代码和一个基于 FEniCS 的弹塑性波传播代码。

现在,我保持二维网格 (100, 100) 细度单位为正方形,并在正方形的一个边缘以 Dirichlet BC 的形式对于 Newmark 时间离散化方法,使用给出了一个恒定加速度方法。对于线性代码,在 Paraview 中,我观察到快速传播的对称分布波,而对于弹塑性代码,我看到慢得多的传播而不是对称传播。看起来它更多地朝一个方向发展,而不是平均分散。sin(40πt)β=0.25

两种模拟的杨氏模量均为 1,质量密度也为 1。泊松比也类似。弹塑性波传播具有从塑性理论引入的另一个参数,称为“屈服应力”,即材料在此之后经历塑性变形。

我的问题是: - 验证两个代码结果的好方法是什么?

保持异常高的屈服应力是个好主意吗?如果从不超过屈服应力,那么结果应该类似于弹性波传播,对吧?杨氏模量的值重要吗?

注:目的是模拟地震波。

2个回答

我同意从一个简单的问题和弹性解决方案开始的建议。

可能最简单的波浪问题是一维无限条/弦。这个问题的解析解是众所周知的,例如 http://mathworld.wolfram.com/dAlembertsSolution.html 您可以用 x 方向上的元素条带对其进行建模。您需要所有边/面上的零应力边界条件。如果将初始条件(位移)定义为条形中心的某种形状的“脉冲”,随着时间的增加,一个波将向右移动,一个向左移动(从解析解中可以看出)。显然你不能创建一个无限长的有限元模型。相反,您希望在两个波到达模型末端并反射回中心之前停止 FE 解决方案。在此之前的有限元解决方案可以与解析解决方案进行比较。

对于线性弹性情况,您使用的模量并不重要。对于塑料外壳,正如您所建议的,如果您定义高屈服应力,您应该得到弹性解决方案。

我发现用于球面波传播的 Aldridge-Blake 解决方案对于验证非常有用。您可以在https://csmbrannon.net/2012/03/13/aldridge-spherical-source-verification-test-for-dynamic-continuum-codes/的 Brannon 教授的存储库中找到代码不幸的是,该解决方案太复杂(没有双关语),无法在此论坛上发布。