如何解决fipy:二维拉普拉斯方程:未采用边界条件
from fipy import CellVariable,Grid2D,DiffusionTerm
nx = 20 # grid size on coordinate axes
dx = 1 # grid spacing
ny = nx; dy = dx; L = dx*nx
mesh = Grid2D(dx=dx,dy=dy,nx=nx,ny=ny)
phi = CellVariable(name = "phi",mesh = mesh,value = 0.5)
eq = (0. == DiffusionTerm( coeff=1.,var=phi))
valuetopLeft = 0.; valueBottomright = 1.
phi.constrain(valuetopLeft,where = mesh.facesLeft)
phi.constrain(valueBottomright,where = mesh.facesRight)
eq.solve(var=phi)
print (phi.value[:])
解决方法
如果您将网格间距指定为整数,则在 FiPy 中有一个 bug。更改为 select isdate2('20200229'); --> returned true,select isdate2('20210229'); --> returned false
select isdate2('2020-02-29'); --> returned true
select isdate2('2021-02-29'); --> returned false
导致
dx = 1.
,
非常感谢。我应该自己发现问题。现在我已经准备好迎接更多奇特的事情了!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。