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)

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

Другие вопросы по тегам