我在FEniCS中遇到了一个编码错误,当我运行热方程代码时
error = np.abs(u_e.vector().array() - u.vector().array())
AttributeError: 'dolfin.cpp.la.PETScVector' object has no attribute 'array’
我相信我们的想法是计算出每个时间层的u和精确解之间的差,并将它们放入数组中,然后我们将得到最大值(如果没有,请纠正我!)在
计算错误的原始代码是
u_e = interpolate(u_D, V)
error = np.abs(u_e.vector().array() - u.vector().array()).max()
print('t = %.2f: error = %.3g' % (t, error))
式中,uD是边界条件。在
我不知道我怎样才能使它起作用,所以你的任何建议都将不胜感激。在
提前谢谢
根据roby的评论,
array()
已被get_local()
取代。因此,在third fenics tutorial的第62-65行中,如下所示:相关问题 更多 >
编程相关推荐