You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

有限体积法下Robin条件的边界导数近似及单元边界值计算问题

有限体积法下Robin条件的边界导数近似及单元边界值计算问题

看起来你已经走在正确的路上了!咱们一步步拆解你的问题:

首先,你把常规二阶前向差分适配到有限体积单元中点场景的推导是完全合理的:
你最初写的 naive 三点导数公式
$$\frac{df}{dx}\Bigg|{x=0}=\frac{-3f(x)+4f(x+h)-f(x+2h)}{2h}$$
是标准的二阶精度前向差分,适配到有限体积以单元中心为基准的离散后,得到的
$$\frac{df}{dx}\Bigg|
{x=0}=\frac{-3f(x)+4f(x+h/2)-f(x+h)}{h}$$
完全正确,这个格式的二阶精度刚好能匹配Robin条件的需求(毕竟Robin条件是边界处导数与函数值的线性组合)。

接下来是你关心的单元边界值近似问题:
你想用相邻单元中心值的平均来估算单元边界的$f(x+h)$(也就是$x=h$处的边界值),即
$$f(x+h)\approx\frac{f(x+h/2)+f(x+3h/2)}{2}$$
这个做法不仅可行,而且在有限体积法里是非常常用的操作!

  • 从精度角度看:对于光滑的解$f$,这个近似的误差是$O(h^2)$,和你之前的导数近似精度完全一致,这样整个离散格式的二阶收敛阶不会被这个边界值近似破坏,能保持整体精度的一致性。
  • 从有限体积的核心思想来看:我们的求解变量通常定义在单元中心,单元边界的函数值本来就需要通过相邻单元的信息来重构,这种简单的平均是最基础的二阶重构方法;如果你的场景需要更高精度,也可以扩展到四阶重构(比如结合更多相邻单元的中心值),但对于大多数二阶精度的有限体积格式来说,这种平均已经足够满足需求。

另外补充一点:如果你的Robin条件具体形式是$\alpha \frac{df}{dx}|_{x=0} + \beta f(0) = \gamma$,把你的导数近似和边界值近似代入后,最终可以得到一个关联单元中心值$f(h/2)$、$f(3h/2)$以及边界值$f(0)$的方程,再结合内部单元的有限体积离散方程,就能形成完整的求解方程组了。

备注:内容来源于stack exchange,提问作者Mat Hunt

火山引擎 最新活动