问题标签 [fenics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
160 浏览

c++ - 在 eigen::matrix 中转换 dolfin::matrix

我正在用 C++ 编码,我正在使用 FEniCS fenics/2016.1.0。我的代码的一部分是

我想用 Eigen 解决系统,所以我需要转换 Eigen 对象中的 dolfin::Matrix A 和 dolfin::Vector f 。可能吗?谢谢您的帮助

0 投票
0 回答
341 浏览

python - 并行 fenics:分区网格和自由度顶点图

我正在用 fenics 为立方体写一个热方程。材料将在由函数(比如说function_k)处理以更新属性的时间内更改。代码没问题,现在我想并行它。一切都很好,但问题是 function_k 造成了一些问题。到目前为止,我发现网格将根据网格顶点坐标进行分区。但是,当我想更改函数值时,我需要使用会产生问题的节点值。网格、函数空间和分区参数:

材料属性“K”初始化为:

function_k 是(将在每个时间步求解 eq 后调用):

它给了我一行:“nodal_values_k[v2d[i]] = k_p”以下错误:IndexError:预期索引在[0..106]

来自v2d ...意味着“vertex_to_dof_map”没有按需要进行分区...有什么办法可以纠正它吗?

我们可以根据自由度(自由度)划分网格吗?

我们可以有基于分区网格的“vertex_to_dof_map(V)”吗?

另外,如果我可以用如下的顶点值编写function_k,是否有任何方法可以在不使用自由度到顶点映射的情况下将顶点值_k 转换为k?

0 投票
1 回答
224 浏览

integration - 规范化 fenics 中的函数

我在 fenics 中有一个函数,它是在产品函数空间(用于实部和虚部)上定义的。现在我想计算这个函数在域上的积分。我没有胶水应该如何工作。而且我无法在文档中找到某些内容。我认为本周文档发生了变化,因为谷歌链接不再有效。函数空间定义如下:

FuncSpace = FiniteElement(“CG”,mesh.ufl_cell(),1)

FuncSpace2 = FunctionSpace(mesh, MixedElement([FuncSpace, FuncSpace])

函数定义为:

Psi = 函数(FuncSpace2)

我正在解决一些部分积分问题,然后想计算这个函数的积分。任何人都可以帮我解决这个问题,我很困惑吗?

或者我可以将函数转换为一些 python 数组,因为这样我的集成就很简单了

0 投票
0 回答
87 浏览

python - 在 Maya (Python) 中运行 Fenics

我需要在 Maya 中使用一个使用 Fenics 项目库的脚本。有没有办法做到这一点?现在我正在使用 Docker(来自 Maya)并在 Maya 中导入结果,但我想从 Maya 本身运行脚本

0 投票
2 回答
4304 浏览

python - 使用子进程在 Python 中运行顺序命令

希望你能帮忙。我需要在我的 Python 脚本中运行带有特定图像(在我的例子中是 Fenics)的软件容器 Docker,然后向他传递一个命令来执行脚本。

我试过子流程:

但它什么也没做。建议?

0 投票
1 回答
338 浏览

python-2.7 - 网格文件中的 Fenics 子域指示器

Fenics 文档中,提到了

网格文件中的子域指示器在哪里?我如何改变它的价值?


背景:我正在解决一个具有多个边界部分的域,每个部分都有一个恒定的狄利克雷条件。

我使用的网格文件是使用Triangle生成的,并dolfin-convert获取一个 xml 文件。

据我了解,像 GMSH 这样的网格划分工具本身就提供了标记边界的选项,但我不想求助于另一个网格划分器,因为我习惯了三角形。

0 投票
0 回答
690 浏览

python - 无法在 http://127.0.0.1:8000 查看 FEniCS 图

我刚开始在 Python 中使用 FEniCS。我正在使用 Docker 和启用 FEniCS 的终端来运行程序。以这种方式运行程序效果很好,但我无法访问这些数字。根据终端:“要查看图,请访问http://127.0.0.1:8000 ”,但是当我在 Safari 中输入“ http://127.0.0.1:8000 ”时,它显示“Safari 无法连接到服务器”。我尝试了不同的浏览器,但问题仍然存在。我正在使用带有 MacOS Sierra 和 Netgear 路由器的 Mac 计算机。如何访问http://127.0.0.1:8000

我按照 FEniCS 教程 vol1 ( https://fenicsproject.org/pub/tutorial/pdf/fenics-tutorial-vol1.pdf ) 启动 docker 并运行 Python 程序。这意味着我通过编写以下内容创建了一个 FEniCS 会话(容器):

然后我通过键入例如运行 Python 程序:

当我通过编写启动容器时,我也尝试打开端口 127.0.0.1:8000

但是,如果我以这种方式创建容器,即使我在 Python 文件所在的目录中创建容器,我也找不到我想要运行的文件。

0 投票
1 回答
759 浏览

python - FEniCS:评估点处的函数梯度

让我们u在函数空间上使用 FEniCS 解决给定问题的解决方案V

x成为一个Point对象。如何评估 u 在 x 处的梯度?


我试过了

这会引发有关尺寸的错误:

在函数空间上投影梯度也不会产生令人鼓舞的结果:

也会引发错误

0 投票
1 回答
3766 浏览

anaconda - 没有使用 Spyder 的名为“dolfin”的模块

对于我的一生,我不能dolfinSpyder. 我一开始就是这么想的。我设法让它以某种方式运行,但不是以一种方便的方式。情况如下:

错误

conda activate fenics, spyder, from dolfin import *: No module named 'dolfin'.

什么有效

  • conda activate fenics, python, from dolfin import *: 首先工作。
  • conda activate fenics, ipython, from dolfin import *: 经过一些调整后工作。
  • conda activate fenics, spyder, from dolfin import *: 经过一些调整后工作。

到目前为止我所做的

anaconda使用 conda 建议的下载安装。

运行conda create -n fenics -c conda-forge fenics,conda install fenicsconda activate fenics安装和激活 fenics 环境。

然后开始python和执行from dolfin import *工作。:)

运行相同的命令ipython不起作用。使用conda list我发现

ipython列表中没有,并且whichwithpythonipthonyield

因此,conda install ipythonipythonfrom dolfin import *有效!:)

运行spyder并抛出与以前from dolfin import *相同的错误: . 也许在 fenics 的环境中也不可用?...不,不在那里。现在开始有趣的部分...... 和产量ipythonNo module named 'dolfin'spyderconda list:(conda install spyderwhich spyder

但是,运行spyder会引发错误

这似乎是一些opengl问题。来自github issue 6968的解决方案conda install pyopengl没有帮助:(;仍然是同样的libGL错误。所以,conda uninstall spyder至少spyder还给了我spyder。

到目前为止我最好的线索

我尝试通过添加将模块添加到 PYTHONPATH

.bashrc运行不在 fenics 环境中的 Spyder。没有成功,虽然我不确定我是否正确地执行了这一步。为什么,,conda activate fenicsspyder吐出sys.path

由于那不起作用,我from dolfin import *在跑步后开始工作conda activate fenicsipython

由于这只是一种临时解决方法(每次启动 Spyder 时我都必须添加它),我对永久修复很感兴趣。

我会很感激任何帮助:)。

汉内斯

0 投票
2 回答
3326 浏览

python - 通过 FEniCS 求解热方程