FEniCS: оценка градиента функции в точке

Пусть u будет решением данной задачи, решенной с помощью FEniCS, в функциональном пространстве V

from fenics import *
...
u = Function(V)
solve(a==L, u, bcs)

и x быть объектом Point. Как оценить градиент u в x ?


Я старался

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.

person usernumber    schedule 15.03.2018    source источник


Ответы (1)


Я предполагаю, что у вас есть проблемы с размерами при проектировании функции в скалярном функциональном пространстве. вам может понадобиться сделать что-то вроде этого:

 V_vec = VectorFunctionSpace(mesh, "CG", 1)
 h = project(grad(u),V_vec)

С уважением, Леонардо

person lhd    schedule 27.07.2018