问题标签 [fipy]

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 投票
0 回答
551 浏览

python - FiPy 分叉错误

我目前正在尝试在我们的本地集群(Scientific Linux 6.9 和 Python 2.7.8)上使用 fipy 来执行一些漂移扩散计算,但我在并行求解时遇到了困难。当我尝试运行调用 --trilinos 选项的脚本时,出现以下错误:


进程执行了涉及调用“fork()”系统调用以创建子进程的操作。Open MPI 当前在可能导致内存损坏或其他系统错误的条件下运行;您的工作可能会挂起、崩溃或产生静默数据损坏。强烈建议不要使用 fork()(或 system() 或其他创建子进程的调用)。

调用 fork 的过程是:

本地主机:[[20666,15131],0](PID 21499)

如果您绝对确定您的应用程序将成功且正确地在对 fork() 的调用中幸存下来,则可以通过将 mpi_warn_on_fork MCA 参数设置为 0 来禁用此警告。


我在简单的脚本中隔离了这个错误:

我认为因此 mpi4py 和 fipy 之间存在一些冲突,但我不知道如何诊断冲突。我在安装中缺少一些简单的东西吗?我已经通过 pip 安装了 fipy 和 mpi4py,并且 PyTrilinos 是从源代码安装的。

0 投票
1 回答
342 浏览

python - 将 fipy 中的术语存储为数组而不是 fipy 对象

我是fipy的新手,所以如果这是一个愚蠢的问题,我深表歉意(似乎对我没有帮助)。但是,除了上述问题中的建议之外,有没有办法以人类可读(或 python 可读)的形式存储 fipy 对象?这仅适用于单元格变量。如果我想做一些比默认 fipy 查看器中的更花哨/自定义的绘图,我该怎么做?

以一个简单的一维扩散为例:

但是,例如,我可以将网格存储为数组吗?或者我可以在每个步骤中存储DiffusionTerm而不是的值吗?CellVariable

就我而言,我想绘制每个时间步长的热梯度(因此从扩散项中提取)与距离。我可以做吗?如何?

0 投票
1 回答
271 浏览

2d - 将二维 PDE 和条件转换为准确的 Fipy 代码

在此处输入图像描述

该图像包括控制方程、初始条件和边界条件。它描述了板与流体之间的传热问题。我不知道如何使用 fipy 对包含 var 的二维问题和边界条件进行编码。这是我的尝试。

我发现它失败了。我不知道哪里出了问题。我欢迎任何帮助;非常感谢!顺便说一句,我希望得到的最终图像就像在这里输入图像描述 ......很多谢谢!

0 投票
0 回答
92 浏览

fipy - 如何实现内部 Neumann 和 Robin 条件7

设置内部 Dirichlet 条件的说明很清楚,但是内部 neuman 或 robin 条件呢?

如果我有内部热对流,我将如何处理?

0 投票
0 回答
86 浏览

fipy - 如何使用 Fisher 模型使用 Fipy 计算晶界扩散?

我是 fipy 的新手,我想知道是否可以使用带有以下方程组的 Fisher 模型来计算晶界扩散:

在晶界和体之间的边界条件:

其中c是体中的浓度,cb是晶界中的浓度,D是体中的扩散率,Db是晶界中的。d 对应于晶界宽度。

谢谢。

此致,

阿德里安

0 投票
1 回答
319 浏览

python - 使用 FiPy 求解非线性 PDE - 网格和扩散项 #Python

我正在尝试使用 fipy 来解决非线性 pde 问题,并且我有几个关于使用的问题。

1-我可以将 grid1D 对象设置为从特定数字而不是 0 开始吗​​?

2-是否可以使用带有 x 作为扩散系数的系数变量(如果 phi 是 t 和 x 的函数)?怎么做?

0 投票
1 回答
102 浏览

fipy - Fipy 3.1.3:在带有凸块的 3D 网格上应用固定通量 BC

在带有凹凸的 3D 网格上使用 Fipy 和固定通量边界条件时,我注意到一个奇怪的行为。在所附图片的左侧,我展示了具有理论热通量边界条件的几何图形的二维切割,没有(A:顶部)和(B:底部)凸块。在右侧,我显示了T.faceGradAverage[0]在边界处计算的热通量的俯视图。在 A 和 B 两种情况下,网格都是使用 GMSH 创建的。

由于我正在解决顶部固定热通量分布和底部传热系数的传热问题,因此我的 fipy 问题定义(FrontFaces * frontValue).divergence为应用热通量:

FrontFaces 定义为FrontFaces = mesh.facesLeft & test_xy

正如您在图像上看到的,两种情况都会产生完全不同的结果。蓝色表示0热通量,红色表示高热通量。情况 B 在物理上是不可能的:热通量很高,应该为 0。似乎边界条件在情况 B 中没有正确应用,因为有凸起。

有没有人遇到过同样的问题? 热通量图

0 投票
1 回答
470 浏览

python - FiPy 中的人脸变量

我在 FiPy 的帮助下通过各种结构对电流进行建模。为此,我求解了电势的拉普拉斯方程。然后,我使用欧姆定律导出场,并在电导率的帮助下获得电流密度。

FiPy 将电位存储为以细胞为中心的变量,并将其梯度存储为以面为中心的变量,这对我来说很有意义。我有两个关于以人脸为中心的变量的问题:

  1. 如果我有二维或三维问题,FiPy 会计算所有方向的梯度(ddx、ddy、ddz)。渐变是一个 FaceVariable,它总是定义在两个单元中心之间的面上。对于结构化(四边形)网格,只有一个导数应该大于零,因为对于任何面,所涉及的两个单元中心的位置应该只在一个坐标上不同。然而,在我的模拟中,经常出现不止一个导数(ddx、ddy、ddz)大于零,即使对于结构化网格也是如此。
    该手册对 FaceGrad 方法给出了以下解释: 使用法线方向的差分(二阶梯度)将梯度(phi)作为 rank-1 FaceVariable 返回。
    我看不出,这与我上面指出的理解有何不同。
    是什么使它更成问题:每当包含“太多”衍生物时,即使在我建模的最简单结构中,电流似乎也不守恒......

  2. 有没有一种聪明的方法来访问存储在以人脸为中心的变量中的数据?假设我想计算通过我的建模结构的电流。
    截至目前,我将存储在 FaceVariable 中的数据保存为 tsv 文件。这会产生一个包含 (x,y,z) 位置和 (ddx, ddy, ddz) 值的表。我读取文件并将数据保存到数组中以在 Python 中使用它。这似乎违反直觉,真的很不方便。能够沿某些平面或某些点访问 FaceVariable 会好得多。

0 投票
2 回答
974 浏览

python - 安装 FiPy 时出错“命令“python setup.py egg_info”失败,错误代码为 1”

我正在尝试在 Python 3.6 上安装 FiPy。并遇到了麻烦。我按照 NIST 网站上的安装说明进行操作:https ://www.ctcms.nist.gov/fipy/INSTALLATION.html

但在最后一步pip install fipy我得到一个我不明白的错误:

(MYFIPYENV) >pip install fipy 正在收集 fipy 缓存条目反序列化失败,条目被忽略 缓存条目反序列化失败,条目被忽略
正在下载 FiPy-3.1.3.tar.gz

命令“python setup.py egg_info”在 C:\Users\AppData\Local\Temp\pip-build-9xzf0bmv\fipy\ 中失败,错误代码为 1 缓存条目反序列化失败,条目被忽略

有人可以告诉我这个错误是什么以及如何解决它吗?

为了不重复我尝试了以下提示的问题:

在 Windows 10 上工作。提前致谢!

0 投票
1 回答
168 浏览

python - Fipy Grid3D '一个索引只能有一个省略号' 错误

我对使用 fipy 求解微分方程很感兴趣。

当我使用 Grid2D 时,以下代码可以正常工作。

当我使用 Grid3D 而不是 Grid2D(注释行)时,出现以下错误:

我使用https://www.ctcms.nist.gov/fipy/INSTALLATION.html中的«推荐方法»安装了 fipy 。我尝试使用 Miniconda 为 Pthon 3.6 和 Python 2.7 安装并得到相同的错误。

如何使用 Grid3D 求解方程?