使用 FiPy 求解具有一维零梯度边界条件和零通量条件的 PDE
Solving a PDE with 1D zero gradient boundary condition and zero flux condition with FiPy
我修改了 examples.convection.exponential1D.mesh1D
示例,当我 运行 它时出现错误。
from fipy import CellVariable, Grid1D, DiffusionTerm, PowerLawConvectionTerm
from fipy.tools import numerix
diffCoeff = 1.
convCoeff = (10.,)
L = 10.
nx = 100
mesh = Grid1D(dx=L / nx, nx=nx)
valueLeft = (0.,)
valueRight = 0.
var = CellVariable(mesh=mesh, name="variable")
var.faceGrad.constrain(valueLeft, where=mesh.facesLeft)
var.constrain(valueRight, mesh.facesRight)
eq = (DiffusionTerm(coeff=diffCoeff)
+ PowerLawConvectionTerm(coeff=convCoeff))
eq.solve(var=var)
当我 运行 它时,我得到以下错误:
...\fipy\solvers\scipy\linearLUSolver.py:41: RuntimeWarning: invalid value encountered in double_scalars
if (numerix.sqrt(numerix.sum(errorVector**2)) / error0) <= self.tolerance:
我是否实现了零梯度边界条件?我只找到二维示例。在这个一维问题中 valueLeft
甚至必须是向量吗?我尝试使用标量,但仍然出现相同的错误。
我是 FiPy 的新手,我知道这种形式的 PDE 可能没有任何意义,但我想从一个更简单的例子开始,最后我想用这些边界条件求解 PDE和一个来源。添加源可以解决我的问题吗?
如有任何帮助,我们将不胜感激。
这是警告,不是错误。这只是意味着我们在用零误差对方程进行归一化方面不是很聪明。
偏微分方程仍然求解(尽管求解不是很有趣)。
这是警告,不是错误。在打印 var
的值时,它们都是零,这是给定边界条件的正确答案。
警告是由 caused by this line 代码引起的,应该修复它以处理残差从零开始的情况。但是,总而言之,用户可以忽略该警告,因为求解器仍然 returns 是正确的结果。
我修改了 examples.convection.exponential1D.mesh1D
示例,当我 运行 它时出现错误。
from fipy import CellVariable, Grid1D, DiffusionTerm, PowerLawConvectionTerm
from fipy.tools import numerix
diffCoeff = 1.
convCoeff = (10.,)
L = 10.
nx = 100
mesh = Grid1D(dx=L / nx, nx=nx)
valueLeft = (0.,)
valueRight = 0.
var = CellVariable(mesh=mesh, name="variable")
var.faceGrad.constrain(valueLeft, where=mesh.facesLeft)
var.constrain(valueRight, mesh.facesRight)
eq = (DiffusionTerm(coeff=diffCoeff)
+ PowerLawConvectionTerm(coeff=convCoeff))
eq.solve(var=var)
当我 运行 它时,我得到以下错误:
...\fipy\solvers\scipy\linearLUSolver.py:41: RuntimeWarning: invalid value encountered in double_scalars
if (numerix.sqrt(numerix.sum(errorVector**2)) / error0) <= self.tolerance:
我是否实现了零梯度边界条件?我只找到二维示例。在这个一维问题中 valueLeft
甚至必须是向量吗?我尝试使用标量,但仍然出现相同的错误。
我是 FiPy 的新手,我知道这种形式的 PDE 可能没有任何意义,但我想从一个更简单的例子开始,最后我想用这些边界条件求解 PDE和一个来源。添加源可以解决我的问题吗?
如有任何帮助,我们将不胜感激。
这是警告,不是错误。这只是意味着我们在用零误差对方程进行归一化方面不是很聪明。
偏微分方程仍然求解(尽管求解不是很有趣)。
这是警告,不是错误。在打印 var
的值时,它们都是零,这是给定边界条件的正确答案。
警告是由