使用 P2/P1 元素时如何更新速度以包括压力

计算科学 有限元 插值 纳维斯托克斯
2021-12-19 11:32:17

我正在编写有限元代码来求解 Navier-Stokes 方程,使用 theta 方法进行时间步进(基本上 Crank-Nicholson 用于扩散,前向 Euler 用于非线性项)。为了找到压力,我使用压力校正方法。一旦我找到压力,我需要更新速度以包括压力梯度的贡献。例如我需要计算:

ut=px

问题是速度是在二次三角形元素(6 点)上定义的,而压力是在线性三角形元素(3 点)上定义的。我认为这意味着在更新速度以包含压力梯度时,我需要将压力梯度内插到二次速度元素中的额外三个点。我的问题是我该怎么做?我正在考虑使用重心插值方法,但我不确定这是否正确。另外我认为这只是线性插值,所以如果你试图获得二阶解决方案,我不会这样做。

1个回答

压力通过它的形状函数表示在整个元素上,比如说元素 所以,你可以在你需要的地方简单地评估它。如果是速度元素上的一个点,您只需计算: 现在,您可能已经使用主元素公式进行积分,所以您可能需要将点映射到主元素上才能做到这一点,但可能您已经这样做了,因为您需要主元素上的这些点来进行速度工作。e

phe(x)=iPieϕie(x)
xk
phe(xk)=iPieϕie(xk)
xk