2D FEM 三角形网格上的渐变

计算科学 有限元
2021-12-02 21:40:22

使用 FEM 方法在三角形网格上近似的标量场f可以给出为

f(x,y)f¯(x,y)=n=13(ϕn(x,y)fn)

那么,我的理解是,可以在每个三角形内部找到f的梯度

f¯t=n=13(ϕn(x,y)xfn,ϕn(x,y)yfn)

在哪里ft是三角形质心处的值。由于每个点的值fn仅在单个点上定义,它充当导数中的标量。

但是,如果我们想要从之前的解决方案中获取每个组件的梯度怎么办?一种方法似乎是将三角形质心的梯度结果内插回给定点,然后对每个分量重复该过程。但是,如果这种插值不令人满意怎么办——有没有办法从三角形质心的数据中定义每个的梯度?

这里似乎提出了一个类似的问题,但我不确定解决方案是否相关——答案解决方案似乎涉及遍历相邻三角形的所有基函数,而在我看来,只有一个基函数来自需要每个相邻的三角形——在观察点处具有非零值的三角形。

考虑到这一点,我推导出了以下等式:

f¯i=n=1ti((ϕin(x,y)x,ϕin(x,y)y)fnti)

其中i是观察点,并且ti是包含顶点i的三角形的数量。

不幸的是,它似乎不起作用,我不确定对三角形数量进行平均是否合适。有人可以指出我正确的方向吗?

1个回答

让我尝试一个快速而肮脏的答案。假设你有线性形状函数ϕn(x,y):如果您采用形状函数的梯度(例如,用于计算能量范数和刚度矩阵),您最终会得到一个常数函数。(因此在连续介质力学中命名为 CST:C常数S训练T三角,因为应变与位移场的(变形)梯度张量有关。)

因此,如果您计算梯度f¯,这在每个 FE 上都是分段常数,并且只是一个粗略的近似f. 然而,巴洛注意到f¯在 FE 的某些内部点。这一观察导致以下配方,在 FE 后处理程序中普遍采用,当梯度的表示f是必须的。

  1. 评估数值正交点处的梯度场(因为大多数 FE 是数值积分的):对于 CST 三角形,这是质心处的单个点。

  2. 将正交点的梯度外推到元素节点。对于 CST,因为您有一个正交点,所以不需要外推:只需取质心值。

  3. 在每个节点处,取从具有该节点的所有元素外推的梯度值的平均值。

  4. 使用形状函数来插值(在 FE 内)节点平均值。

这个食谱确实与我从 OP 问题中理解的非常相似:所以我认为他的基本想法是正确的。

OC Zienkiewicz and JZ Zhu, The Superconvergent patch recovery and ateriori error estimators 中可以找到这种技术的理论(在从通量的超收敛点外推的元素路径上的节点平均)。第 1 部分。恢复技术,诠释。J.数字。Methods Eng., 33, 1331-1364 (1992)。