FEM:这是施加Dirichlet BC的正确方法

计算科学 有限元 有限差分 数值分析
2021-12-12 05:05:54

我知道 Neumann BC 隐含在 FEM 语言中。但是,我已经看到了至少两种施加 Dirichlet BC 的方法

例如对于以下问题 1D,

2u+u=0,uleft=1,uright=0

1)将组装好的“A”的第一行和最后一行设置为左侧的“0”,设置A(1,1)=1,A(end,end)=1,并指定边界值“1”和“ 0”在右手边向量“b”中。

2)在左侧将组装好的“A”的第一行和列,最后一行和列设置为“0”,然后执行与上述相同的操作。

这两种方法是不同的,第一种更直观(可能是有限差分用户的首选),而第二种听起来更严格,因为我们正在设置边界“元素”。

我知道这两种方式可能会针对某些特定情况产生不同的结果。任何机构都可以提供一些见解吗?

1个回答

我认为典型的方法是 1),然后可以将其重新制定为更小的系统。

使用https://scicomp.stackexchange.com/a/5073/1804中的方法,假设您的有限元基系数组成一个向量,并且您可以将它们划分为向量然后你应该能够将你的系统排列成类似的东西ξξintξbc

[AintAintbc0I][ξintξbc]=[bintbbc]

其中是类似刚​​度的矩阵,是系统的载荷向量(在本例中,为零向量),包含离散化的边界条件。AintAintbcbintbbc

从这个公式中,您可以重新公式化为一个更小的系统。

第二种方法听起来会给你一个奇异的系统,而产生的更小的系统只会控制内部自由度,这只有在你的狄利克雷条件为零时才有效。