离散化 Neumann 边界条件

计算科学 有限差分 边界条件 离散化 泊松
2021-12-25 10:58:51

我目前正在使用以下具有混合边界条件的泊松方程,包括诺依曼边界条件。

Δu=fu(x,0)=g1(x),0<x<1u(0,y)=g2(y),0<y<1nu(x,1x)=0,0<x<1

在域上Ω:={(x,y):R+2:x+y<1}

据我所理解,nu(x,1x)=un. 现在我对如何离散化感到有些困惑。如何获得法线向量n? 我想我已经看到了使用中心有限差分的离散化,它看起来像这样:

nui,j=ui+1,jui1,j+ui,j+1ui,j12Δx

但是这种离散化如何解释法线向量n在公元前诺伊曼?

另外,在这里我不仅nu(x,y)=0nu(x,1x)=0. 所以我很困惑如何离散化这个。建议使用 Shortley-Weller 近似来这样做,但我还不太了解它是如何工作的(还没有看到它的实际效果,也找不到关于这种方法在数学上究竟是如何工作的好的文献)。

因此,据我了解,这可能如下所示:

nu(x,1x)|Δx=nui,1i=ui+1,1iui1,1i2Δx+ui,2iui,i2(1Δx)

它是否正确?这如何在算法中实现?

将不胜感激一些帮助。

1个回答

您显示的公式不是诺伊曼边界条件的通用公式,它已经投影到n. 要看到这一点,请注意有限差分近似中的梯度(具有中心差异)由下式给出:

f=(fx,fy)(fi+1,jfi1,j2Δx,fi,j+1fi,j12Δy)

NBC 的边界是:(注意:我认为集合是封闭的,因为中的集合边界是封闭的,并且您使用的集合既不是开放的也不是封闭的)。该边界的图如下所示。如您所见,向量垂直于直线,很容易看出在这种情况下(因为它是斜率为 1 的直线)。

Ω={(x,y)R2:y=1x,0x1}
Rnn=(1,1)Δy=Δx

在此处输入图像描述

最后,我们验证您发布的公式:

un(ui+1,jui1,j2Δx,ui,j+1ui,j12Δy)(1,1)=(ui+1,jui1,j2Δx,ui,j+1ui,j12Δx)(1,1)=ui+1,jui1,j+ui,j+1ui,j12Δx