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)
问候,莱昂纳多
设 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)
问候,莱昂纳多