FEniCS: оценить градиент функции в точке
Позволять u
быть решением данной проблемы, решаемой с помощью FEniCS, в функциональном пространстве V
from fenics import *
...
u = Function(V)
solve(a==L, u, bcs)
а также x
быть Point
объект. Как я могу оценить градиент U в х?
Я старался
g = grad(u)
g(x)
что вызывает ошибку о размерах:
UFLException: Expecting dim to match the geometric dimension, got dim=1 and gdim=2.
Проецирование градиента на функциональное пространство также не дает обнадеживающих результатов:
h = project(grad(u), V)
также выдает ошибку
UFLException: Shape mismatch.
1 ответ
Решение
Я предполагаю, что у вас есть проблемы с размерами при проецировании функции в скалярное функциональное пространство. вам может понадобиться сделать что-то вроде этого:
V_vec = VectorFunctionSpace(mesh, "CG", 1)
h = project(grad(u),V_vec)
С уважением, Леонардо