如何使用 FEM 正确应用非齐次 Dirichlet 边界条件?

计算科学 pde 有限元 边界条件
2021-12-10 08:16:00

一般来说,对于非齐次边界条件,FEM 不能完全满足狄利克雷边界条件。我见过的 FEM 代码设置了插入 Dirichlet 边界条件的自由度,但我还没有找到任何数学上的理由。在我看来,设置基本边界条件应该可能会最小化误差的某些功能(例如,在应用 Dirichlet BC 的边界部分上最小化),即使这在计算上会更昂贵。||uuh||

像这样设置 BC 是否有任何理由,如果是这样,正确的规范是什么?

2个回答

将 Dirichlet 边界自由度设置为一个值是有数学依据的。但是,您应该相应地调整您的变体形式。如果您正在查看一般问题,请说:

使得uU

a(u,w)=l(w)  wV

在哪里

U={u:u2<,u=g on ΓD}

V={u:u2<,u=0 on ΓD}

相反,我们可以写成其中是狄利克雷条件。那么变分形式就变成了u=v+gvVg

a(v+g,w)=l(w)

或通过使用a(.,.)

a(v,w)=l(w)a(g,w)

在有限元代码中,您可以形成单元刚度矩阵,就好像没有边界条件一样。然后取对应于狄利克雷边界条件的局部矩阵的列,按要强制执行的系数对其进行缩放,然后从右侧减去它。这是我上面写的的离散形式。然后你将该列和相应的狄利克雷行归零,在对角线上放置一个 1 和你希望强制执行的系数。这将方程与系统解耦,并设置您希望强制执行的值。a(g,w)

我推荐Tom Hughes的有限元方法:线性静态和动态有限元分析他从第 8 页开始对这个问题进行了扩展讨论。

为了用变分推理来补充 Nathan 的出色答案,在实现有限元时通常需要算法细节。例如,

算法 1

我的个人笔记中也有关于这个主题的更详细的解释请参阅“约束线性系统”一章。