变系数有限差分法 Neumann 边界条件

计算科学 有限差分 边界条件
2021-12-04 06:10:01

免责声明

在输入这个问题的过程中,我确定了它的解决方案。由于我遇到了完整输入问题的麻烦,因此我也会发布其答案。它可能会帮助其他发现自己处于同样困境的人。如果您愿意,可以将其视为一种博客文章。

目标

考虑混合边值问题

ddx(k(x)dudx)=f in Ωu=P at x=0dudx=T at x=1
其中PT是常数,f是源项。

我正在使用有限差分,我的目标是以实现二阶精度的方式在x=1假设网格有N+1个等距点(包括边界点),给出为x0,x1,...,xN

我的方法

在右边界,使用二阶中心差作为边界条件

uN+1uN1Δx=T

和二阶导数运算符为:

kN+12uN+1uNΔxkN12uNuN1ΔxΔx=fi

我们可以求解第一个方程中的鬼点UN+1,代入第二个方程并化简。

问题

使用这种离散化需要评估kN+12=k(xN+Δx2),这在域之外!一般来说,k(x)只在域内定义,我不能/不应该使用它之外的值。因此,我认为这不是实现二阶精度的正确方法。在这种情况下我还能做什么?

1个回答

忘记离散二阶导数运算符,因为它需要在域外的点进行评估。相反,只需调整边界条件的模板以使用点通过使用未定系数的标准方法,您可以生成实现二阶精度所需的系数。如果我没记错的话,这种情况下的离散边界条件会产生uN,uN1,uN2

dudx12uN2+2uN132uNΔx=T