我正在尝试使用python中的fipy包解决pde。我为同样的目的编写的代码已经附上
!pip install fipy
from fipy import *
mesh= Grid2D(nx=0.001,dx=100,ny=0.0005,dy=100)
phil=CellVariable(name='Sol variable',mesh=mesh)
phil.constrain(0,mesh.facesBottom)
phil.constrain(1,mesh.facesTop)
n=1.7*10**(-6)*((0.026*numerix.exp(phil/0.026)+phil-0.026)+2.25*10**(-10)*(0.026*numerix.exp(phil/0.026)-phil-0.026))**(0.5)
eq=(PowerLawConvectionTerm(coeff=(0.,1.))+ImplicitSourceTerm(coeff=n))
eq.solve(var=phil)
当我试图运行代码时,最后一行出现错误:k超过了矩阵维数。 任何有关这方面的帮助都将不胜感激
上述代码的明显问题是
dx
和nx
混淆了dx
是网格间距,因此是浮点,而nx
是网格单元的数量,这是一个整数。因此,第三行应该是这至少使问题运行时不会出错。但是这个解不是很有趣,因为源项和初始条件似乎处处为零,所以结果处处为零
以下几点也值得考虑
相关问题 更多 >
编程相关推荐