我知道在有限差分方案(以及在较小程度上,有限元方案)中处理 Dirichlet 边界条件的至少两种方法。在这里,我正在考虑求解泊松方程,但问题更笼统。
将边界节点处的函数值视为进一步的未知变量, 但添加形式的方程到得到的方程组。总的来说,我们将拥有方程和未知数,其中是域内部的节点数,并且是边界上的节点数。
不要在边界节点处包含固定函数值的变量。总的来说,我们将拥有方程和未知数。
这两种方法具有以下优点和缺点:
在第二种方法中建立方程稍微复杂一些,因为与边界节点相邻的节点的处理方式必须略有不同。这似乎是第一种方法的主要卖点。
使用第一种方法,得到的系统矩阵可能不是对称的。(对称性对于迭代求解器来说非常好。)
第二种方法更接近于对未离散情况的理论处理:在狄利克雷条件为零的情况下,我们在 Sobolev 空间中寻找解代替.
一旦涉及多个微分算子,例如在斯托克斯方程中,第一种方法就会变得更加混乱。必须在一些结果矩阵中引入零行。
问题:这两种方法中的哪一种是当前推荐的最佳实践?还有其他我忽略的优点或缺点吗?