使用磁矢量势的静电有限体积解

计算科学 收敛 有限体积
2021-12-13 01:37:10

我想使用有限体积法(并置网格)求解电势和磁矢量势。我的方程式是:

(σϕ)=0

A=μmσϕ

该域是一个楔形,具有以下边界条件:

  • 电位的固定梯度ϕ在顶部,底部为零梯度,在侧边界处为零值
  • 磁矢量势的零梯度A在所有边界上

没想到这会是个棘手的问题,但是线性求解器(GAMG)只在欠松弛下收敛,结果取决于欠松弛因子的值。谁能给我一个提示,哪里出了问题?

附加信息:我使用的软件包是 OpenFOAM。梯度使用高斯线性方案离散化,拉普拉斯算子使用“高斯线性校正”(显式非正交校正)。

2个回答

该解决方案需要进行两项更改:

  • 更改边界条件A到固定值 0,它遵循Bn=0在边界处。
  • 禁用松弛不足。即使系统在没有欠松弛的情况下收敛,但无论我为欠松弛系数分配哪个值,我都无法达到收敛。这似乎是在 OpenFOAM 中实现矩阵松弛的问题。

OpenFOAM 倾向于遵循 [Ferziger & Peric, Computational Methods for Fluid Dynamics, Springer, 2002] 所以我的猜测是他们解决了

outer iter: do k=0,K1inner iter: solve(Ak+1ωωdiag(Ak))xk+1=b+1ωωdiag(Ak)xkend outer iter

外环收敛时xk+1=xk所以正在解决正确的系统。但是在您的线性情况下,您没有外部迭代(k=0 初始猜测x0=0) 所以你得到的解决方案

(A+1ωωdiag(A))x=b

这仅适用于松弛参数ω=1.

  • 为了证实我的猜测,尝试构建A并减去1ωωdiag(A)在将其传递给线性求解器之前。

  • 要实际使用他们的松弛方案,请尝试添加外部迭代(例如 K=10 并以 1e-2 的相对容差求解线性系统,而不是采用 K=1 并以 1e-12 的相对容差求解)