问题标签 [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 投票
1 回答
92 浏览

fipy - fipy 中的面部区域

是否有可能在fipy中提取两个单元格之间的面部区域?

我知道每个网格都有属性cellVolume并且在我调查的特定情况下,这使我能够推断出相关的表面积。此外,我可以获得faceCentersfaceNormals。但是为faceVariable包含一个属性faceArea不是很自然吗?

0 投票
1 回答
189 浏览

python - 您如何将 CellVariables 或 ImplicitSourceTerms 提升到 FiPy 中的强大功能?

使用 FiPy(Python 库)我想解决如下所示的 pdes 系统的耦合问题。下面的代码有效,但没有给出正确的解决方案。

根据我看到的一些代码,我还尝试用 ImplicitSourceTerm 替换 CellVariables,但这会产生错误,因为无法以这种方式将 ImplicitSourceTerm 的幂 p 完成。但是我找不到任何关于它应该如何完成的文档:

试图提高 U.value**p 也会出错。

0 投票
1 回答
181 浏览

fipy - Fipy 中的导数

包含在 FiPy 中不能表示为(至少以任何明显方式)对流或扩散的导数的术语的正确方法是什么?例如,在一个 PDE 系统中,在坐标为 x,y 的 2d 区域上求解函数 u_i ,其中一个方程包含项

u_2 * \partial_x u_1

鉴于 x 和 u_i 是单元变量,我可以将其表示为源:

然而,由于在 FiPy 中梯度是如何计算的,x.grad 是一个向量,除了与 x 边界直接相邻的单元格之外,x.grad 是一个值为 (1,0) 的向量,在该处它变为 (2,0)。这意味着我必须从一开始就使用向量 (1,0) 而不是 x.grad 。但是在这一点上,我不确定 u_1.grad 是否会在边界处具有正确的值来代表我的术语,而且很可能,我的整个方法是不正确的。我应该怎么做才能代表这样一个术语?

0 投票
1 回答
105 浏览

python - Fipy 似乎不想使用 SciPy 作为求解器

根据 FiPy 网站,您需要“至少一个求解器”,他们将 SciPy列为一种可能的“求解器”。我肯定安装了 SciPy - 我可以使用import scipy. 我还没有使用 setup.py 或类似的东西正式安装 FiPy,我只是将代码放在一个名为 fipy 的文件夹中。然后,当我进入 Python shell 并键入import fipy时,我得到:

在通过 setup.py 正式安装 FiPy 后,我已经尝试过这样做(使用 pip 不起作用,我遇到了一些与 tensorflow 相关的奇怪错误)。设置 FIPY_SOLVERS 环境变量也不起作用(同样的错误)。

我在 Ubuntu 上使用 Python 2.7。

0 投票
1 回答
210 浏览

python-3.x - FiPy 设置流出条件的正确方法

我需要一些帮助来解决 FiPy 中一个安静的简单问题。我的目标是模拟相变时流过混凝土块的流体。但首先我尝试做一个简单的一维模拟,假设流体质量流量和壁温恒定,没有任何相变。

由于恒定的壁温和恒定的流体入口温度,我希望流体出口温度恒定。我没有将壁温定义为边界条件,因为有一天我也想分析热传导和可变温度梯度。运行我的 mwe,您可以看到出口处的流体温度下降。在这种情况下有人可以帮忙吗?提前致谢!

0 投票
0 回答
49 浏览

python - IntelliJ 无法导入模块,但从命令行可以正常工作

我正在使用 Ubuntu 并尝试运行一个简单的 Python 脚本:

如果我从命令行运行它,一切都很好:

但是,如果我从 IntelliJ 中运行它,它将无法加载模块:

请注意,python venv 和正在执行的脚本完全相同,所以我不明白为什么结果不同。

有人遇到过类似的事情吗?

注意肯定安装了Fipy:

0 投票
1 回答
132 浏览

python - 在 GMSH 物理线获取 FaceVariable

我成功地设置了一个非常简单的扩散问题,包括使用 GMSH 生成的网格上的源面(连续体)和汇面(侧壁、顶部)。

计算按预期工作,但是我想访问我在 GMSH 中设置的物理面的渐变。我知道我可以使用 获得面部的渐变,c.faceGrad使用mesh.physicalFaces['sidewall']. 为了获得物理面中包含的面的渐变,我希望使用像c.faceGrad[mesh.physicalFaces['sidewall']]. 但是,这不会产生预期的结果。有没有办法在指定的位置访问 FaceVariable physicalFaces

0 投票
0 回答
183 浏览

differential-equations - 在 FiPy 中反映边界条件

我正在尝试求解 FiPy 中的对流扩散方程。目前,我想要实现的只是一个 Neumann 边界条件,以便波在右侧边界处反射回来,而不是在域外传播。

我添加了以下行:

phi.faceGrad.constrain(0,mesh.exteriorFaces)

但这似乎并没有改变任何东西。

我是否施加了错误的边界条件?我是否错误地强加了它?我已经搜索过这个,但似乎找不到一个具有从边界反射的波的简单特性的例子!我的代码如下。非常感谢。

0 投票
1 回答
194 浏览

fipy - 如何将面变量转换为单元变量以将其插入方程?

我想用一些源项来解决流体流动问题。但是我无法按照我的要求在最后用源项写出方程。有没有办法将 FaceVariable 转换为 cellVariable。

我收到此错误

TypeError:系数不能是 FaceVariable。

代码如下

0 投票
1 回答
256 浏览

mesh - FiPy 中的一维球形网格

我想在一维网格上的球坐标中求解 FiPy 中的扩散方程。我还希望左边界位于 r=0.1,而不是 r=0。

我找不到一维球面对称的模块;只有圆柱形。我想我是用 Grid1D 来做的,只需在球坐标中编写 del^2 运算符,然后乘以 r^2(如此所述)。但是,我仍然不知道如何指定边界的位置。

有人可以建议我怎么做吗?非常感谢。