一般来说,对于非齐次边界条件,FEM 不能完全满足狄利克雷边界条件。我见过的 FEM 代码设置了插入 Dirichlet 边界条件的自由度,但我还没有找到任何数学上的理由。在我看来,设置基本边界条件应该可能会最小化误差的某些功能(例如,在应用 Dirichlet BC 的边界部分上最小化),即使这在计算上会更昂贵。
像这样设置 BC 是否有任何理由,如果是这样,正确的规范是什么?
一般来说,对于非齐次边界条件,FEM 不能完全满足狄利克雷边界条件。我见过的 FEM 代码设置了插入 Dirichlet 边界条件的自由度,但我还没有找到任何数学上的理由。在我看来,设置基本边界条件应该可能会最小化误差的某些功能(例如,在应用 Dirichlet BC 的边界部分上最小化),即使这在计算上会更昂贵。
像这样设置 BC 是否有任何理由,如果是这样,正确的规范是什么?
将 Dirichlet 边界自由度设置为一个值是有数学依据的。但是,您应该相应地调整您的变体形式。如果您正在查看一般问题,请说:
求使得
在哪里
相反,我们可以写成其中和是狄利克雷条件。那么变分形式就变成了
或通过使用
在有限元代码中,您可以形成单元刚度矩阵,就好像没有边界条件一样。然后取对应于狄利克雷边界条件的局部矩阵的列,按要强制执行的系数对其进行缩放,然后从右侧减去它。这是我上面写的的离散形式。然后你将该列和相应的狄利克雷行归零,在对角线上放置一个 1 和你希望强制执行的系数。这将方程与系统解耦,并设置您希望强制执行的值。
我推荐Tom Hughes的有限元方法:线性静态和动态有限元分析。他从第 8 页开始对这个问题进行了扩展讨论。