Python Fipy Grid3D';索引只能有一个省略号';错误

Python Fipy Grid3D';索引只能有一个省略号';错误,python,fipy,Python,Fipy,我对用fipy解微分方程很感兴趣 当我使用Grid2D时,以下代码工作正常 从fipy导入* 网格=网格2D(nx=3,ny=3) #网格=网格3D(nx=3,ny=3,nz=3) phi=CellVariable(名称='solution variable',网格=mesh,值=0。) φ约束(0,网格面宽) φ约束(10,网格面右侧) 系数=单元变量(网格=网格,值=1。) 等式=扩散项(系数)=0 方程求解(var=phi) 当我使用Grid3D而不是Grid2D(注释行)时,出现以下错

我对用fipy解微分方程很感兴趣

当我使用Grid2D时,以下代码工作正常

从fipy导入*
网格=网格2D(nx=3,ny=3)
#网格=网格3D(nx=3,ny=3,nz=3)
phi=CellVariable(名称='solution variable',网格=mesh,值=0。)
φ约束(0,网格面宽)
φ约束(10,网格面右侧)
系数=单元变量(网格=网格,值=1。)
等式=扩散项(系数)=0
方程求解(var=phi)
当我使用Grid3D而不是Grid2D(注释行)时,出现以下错误:

Traceback (most recent call last):
  File "/home/user/Programming/python/fdms/forSo.py", line 11, in <module>
    eq.solve(var=phi)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/terms/term.py", line 211, in solve
    solver = self._prepareLinearSystem(var, solver, boundaryConditions, dt)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/terms/term.py", line 169, in _prepareLinearSystem
    diffusionGeomCoeff=self._getDiffusionGeomCoeff(var),
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/terms/abstractDiffusionTerm.py", line 458, in _getDiffusionGeomCoeff
    return self._getGeomCoeff(var)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/terms/term.py", line 465, in _getGeomCoeff
    self.geomCoeff = self._calcGeomCoeff(var)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/terms/abstractDiffusionTerm.py", line 177, in _calcGeomCoeff
    tmpBop = (coeff * FaceVariable(mesh=mesh, value=mesh._faceAreas) / mesh._cellDistances)[numerix.newaxis, :]
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/variables/variable.py", line 1151, in __mul__
    return self._BinaryOperatorVariable(lambda a,b: a*b, other)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/variables/variable.py", line 1116, in _BinaryOperatorVariable
    if not v.unit.isDimensionless() or len(v.shape) > 3:
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/variables/variable.py", line 255, in _getUnit
    return self._extractUnit(self.value)
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/variables/variable.py", line 538, in _getValue
    value = self._calcValue()
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/variables/cellToFaceVariable.py", line 48, in _calcValue
    alpha = self.mesh._faceToCellDistanceRatio
  File "/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site-packages/fipy/meshes/uniformGrid3D.py", line 269, in _faceToCellDistanceRatio
    XZdis[..., 0,...] = 1
IndexError: an index can only have a single ellipsis ('...')
回溯(最近一次呼叫最后一次):
文件“/home/user/Programming/python/fdms/forSo.py”,第11行,在
方程求解(var=phi)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/terms/term.py”,第211行,在solve中
解算器=self.\u prepareLinearSystem(变量、解算器、边界条件、dt)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/terms/term.py”,第169行,在_prepareLinearSystem中
diffusionGeomCoeff=自身。\u获取diffusionGeomCoeff(var),
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/terms/abstractDiffusionTerm.py”,第458行,在_getDiffusionGeomCoeff中
返回自。\u getGeomCoeff(var)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/terms/term.py”,第465行,位于
self.geomCoeff=self.\u calcGeomCoeff(var)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/terms/abstractDiffusionTerm.py”,第177行,位于calcGeomCoeff
tmpBop=(系数*面变量(网格=网格,值=网格。_面面积)/网格。_单元距离)[numerix.newaxis,:]
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/variables/variable.py”,第1151行,在__
返回self.\u二进制运算符变量(lambda,b:a*b,其他)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/variables/variable.py”,第1116行,二进制运算符变量
如果不是v.unit.isDimensionless()或len(v.shape)>3:
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/variables/variable.py”,第255行,在_getUnit中
返回self.\u提取单位(self.value)
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/variables/variable.py”,第538行,在_getValue中
值=自身。\u计算值()
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/variables/celltoacevariable.py”,第48行,单位为calcValue
alpha=自网格。\u面元间距比
文件“/home/user/Programs/miniconda2/envs/FipyEnv2/lib/python3.6/site packages/fipy/mesh/uniformGrid3D.py”,第269行,单位为faceToCellDistanceRatio
XZdis[…,0,…]=1
索引器:索引只能有一个省略号(“…”)
我使用来自的«推荐方法»安装了fipy。我尝试在pthon3.6和python2.7中使用Miniconda进行安装,但得到了相同的错误


如何使用Grid3D解方程?

这是因为较新版本的numpy对我们草率的语法容忍度较低。您可以签出我们的或修改您的代码。

尝试使用,例如,重新运行。该错误可能已修复。对于FiPy的特定版本,我可以同时使用Grid2D和Grid3D。