首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FEniCS:计算点处的函数梯度

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

Stack Overflow用户
提问于 2018-03-15 17:40:56
回答 1查看 958关注 0票数 0

u是函数空间V上用FEniCS求解的给定问题的解

代码语言:javascript
复制
from fenics import *
...
u = Function(V)
solve(a==L, u, bcs)

x是一个Point对象。如何计算u在x上的梯度?

我试过了

代码语言:javascript
复制
g = grad(u)
g(x)

这将引发一个有关维度的错误:

代码语言:javascript
复制
UFLException: Expecting dim to match the geometric dimension, got dim=1 and gdim=2.

在函数空间上投影梯度也不能带来令人鼓舞的结果:

代码语言:javascript
复制
h = project(grad(u), V)

还会引发错误。

代码语言:javascript
复制
UFLException: Shape mismatch.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 06:27:20

我猜你在标量函数空间中投影函数时,可能存在维数问题。你可能需要这样做:

代码语言:javascript
复制
 V_vec = VectorFunctionSpace(mesh, "CG", 1)
 h = project(grad(u),V_vec)

你好,莱昂纳多

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49305949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档