Я сталкиваюсь с ошибкой кодирования в 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))
Где u_D - граничное условие.
Я не уверен, как я могу заставить его работать, поэтому любой ваш совет будет признателен.
заранее спасибо