自适应网格细化 (FEM) 中残差指标的计算

计算科学 有限元
2021-12-23 15:50:53

我正在尝试实施h-针对以下简单一维问题的自适应 FEM 方案:

u(x)=f(x)in(0,1)u(0)=u(1)=0.

为此,我从一个粗略的、均匀的网格开始,比如 4 个元素,并计算每个元素的错误指示符。我正在查看基于残差的显式后验指标:

ηK=hK2||f+uh||K2.

例如,我在 CFD 的许多论文中都看到了此类指标,并且我一直在阅读 Ainsworth 和 Oden [1]的调查论文中的详细信息。我的问题是如何处理u残差中的术语。在典型的有限元方案中,我们通常使用基函数及其(一阶)空间导数。如果我们使用线性基函数,那么uh0,但我看过 AMR 论文,其中线性基函数与此残差指示符一起使用。

我在这里有什么明显的遗漏吗?我知道在弱公式中,我们通常会将二阶导数“传递”给测试函数。我可以计算出类似的东西Ik(f+uh)vdx在哪里vVh,而且确实我看过的一些资料提到了L2残差的表示,但我不清楚这是否可以用来计算ηK.

1个回答

你不会错过任何东西:uh当您使用线性元素时,在单元格内部确实为零。这表明对于线性元素,误差估计量减少到

ηK2=hK2fK2.
(我猜你错过了定义左侧的正方形ηK.)

结果证明这是一个糟糕的选择,因为在局部它没有正确的收敛顺序。更好的选择是

ηK2=hK2ff¯K2
在哪里f¯是平均值fK.

但是,无论哪种方式,这个估计器都非常糟糕,不应该用于线性元素。相反,你应该认识到uh是一个函数,由单元接口处的一系列 delta 函数组成。因此,如果您想基于此推导估计量,您将考虑这些 delta 函数中的每一个在区间的两个端点处的大小。我不会在这里写下整个推导,但这会导致凯利误差估计器(Kelly、Gago、Babuska 等人,1980 年代初期)。