有限元边界 Dirichlet 条件处理
参考自百度文档,这里只考虑 Dirichlet 边界条件情况。
有限元法基本方法就是是构造线性方程组
\[\begin{equation}
Au = f
\end{equation}\]
进行求解。其中系数矩阵 \(A\) 表示未知数 \(u\) 各个单位分量对各个方程影响,右端项 \(f\) 则为已知。
将 Dirichlet 边界条件耦合入线性方程组,基本思路就是将 \(u_i = u_D\) 代替相应方程。这种情况下,有两种方法可以采用:
- 置大数法
- 划0置1法
其中划0置1
是精确方法,而置大数法
则是近似方法。但是就计算而言,置大数法
计算较为简便,仅介绍此种方法。
置大数法
假设位置数第 i 个分量为已知 \(u_D\),按照如下方法修改对应的系数矩阵\(A\)与右端项\(f\)
- 将 \(u_i\) 对应系数换为一个极大值
M
,如 1e8 - 将对应右端项分量替换为 \(u_D \times M\)
- 其余系数保留不变
此方法处理只需修改两个系数即可,简单方便,计算结果为近似值,但是仍推荐采用。