FEniCS:评估点函数的梯度

FEniCS: evaluate gradient of function at point

u 是使用 FEniCS 在函数 space 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.

在函数 space 上投影梯度也没有给出令人鼓舞的结果:

h = project(grad(u), V)

也会引发错误

UFLException: Shape mismatch.

我猜你在标量函数中投影函数时遇到维度问题 space。你可能需要做这样的事情:

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

问候,莱昂纳多