Python FEniCS:计算点处的函数梯度

Python FEniCS:计算点处的函数梯度,python,gradient,post-processing,fenics,Python,Gradient,Post Processing,Fenics,设u为函数空间V from fenics import * ... u = Function(V) solve(a==L, u, bcs) 并且x是点对象。我该如何评估的梯度U 在x ? 我试过了 g = grad(u) g(x) 这会引发有关维度的错误: UFLException: Expecting dim to match the geometric dimension, got dim=1 and gdim=2. 在函数空间上投影梯度也不会产生令人鼓舞的结果: h = p

u
为函数空间
V

from fenics import *
...
u = Function(V)
solve(a==L, u, bcs)
并且
x
对象。我该如何评估的梯度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.

我猜在标量函数空间中投影函数时会遇到维数问题。您可能需要执行以下操作:

 V_vec = VectorFunctionSpace(mesh, "CG", 1)
 h = project(grad(u),V_vec)
你好,莱昂纳多