问题标签 [openfoam]

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 回答
190 浏览

c++ - 使用 GDB 浏览 OpenFOAM 源码

我是使用 OpenFOAM-6 的新手。我正在尝试阅读 GDB 的源代码。但是,我不明白为什么 GDB 不能进入某些类的构造函数,例如fvMesh. GDB 也报告类似

rhoSimpleFoam我首先在调试模式下编译了一个应用程序。基本上,我将变量WM_COMPILE_OPTION从 Opt 导出到 Debug,然后编译应用程序。我还尝试在调试模式下编译整个 OpenFOAM。对我将在下面描述的内容没有影响。Debug 模式rhoSimpleFoam为 3.8MB,Opt 版本为 889KB。

rhoSimpleFoam然后我使用gdb 运行

rhoSimpleFoam.C如下,

我想知道的是如何fvMesh初始化的,应该在#include "createMesh.H". 文件createMesh.H如下,

我在 GDB 中设置了一个断点Foam::fvMesh mesh并运行到那里。但是,GDB 不能进入那个fvMesh. 相反,GDB 进入runTime.timeName(). 之后,GDB 退出该文件createMesh.H。那对应的构造函数fvMesh如下,

另一个我无法理解的问题如下。GDB 仍在文件中createMesh.H。GDB 对某些变量一无所知,就像下面的输出一样。

事实上,我info sources在 GDB 中使用来显示加载的符号。有关参考info sources,请查看此网页。符号已加载。

因此,GDB 似乎对 OpenFOAM 了解甚少。GDB 不能进入某些 OpenFOAM 类中的函数体。GDB 在 OpenFOAM 中也找不到一些方法。

任何人都可以帮助我了解发生了什么?谢谢!

京昌

0 投票
1 回答
852 浏览

python - 使用 Paraview 的可编程过滤器

我有一个带有字段值 (.vtk) 的表面,它是 openfoam 后处理的输出(我使用几何体上的切割平面制作了它)。我需要计算表面上的平均场值,我不知道该怎么做。

我试图使用 paraview 中的可编程过滤器来做到这一点,但我做不到。我在这里找到了一些关于如何使用该工具的示例https://www.paraview.org/Wiki/Python_Programmable_Filter,但我仍然不知道如何获取单元格区域以及如何平均积分。有人可以为我提供一个有用的脚本来计算平均场吗?谢谢!

0 投票
0 回答
1079 浏览

eigen - 警告:使用旧式演员表 [-Wold-style-cast]

Ubuntu 18.04,gcc 版本 6.4.0 20180424 (Ubuntu 6.4.0-17ubuntu1)

以下程序调用Openfoam2.3.1(计算流体力学(CFD)类库)构建环境中的Eigen库,由g++-5编译器构建。

OpenFOAM 2.3.1 shell 环境:source \$HOME/OpenFOAM/OpenFOAM-2.3.1/etc/bashrc $FOAM_SETTINGS; 导出 WM_CC=gcc-5;导出 WM_CXX=g++-5

我得到了这个警告

当我使用 g++ 编译这个程序时,我不会收到这个警告。

你能帮助我吗?

0 投票
1 回答
421 浏览

module - LMOD TCL 在加载模块时执行 bash 脚本

有一个小问题,你可以帮助我。在我们的新集群上,我们使用 LMod 作为环境模块系统。

为 OpenFOAM 创建模块 TCL 脚本,需要加载系统相关的 bashrc 文件。

这是我在另一个模块系统上使用的 TCL 脚本,它工作正常。我无法在 Lmod 中执行“源”命令行,我在这里缺少什么?

0 投票
0 回答
83 浏览

openfoam - OpenFoam 使用哪种方法来计算压力和校正速度?

我正在尝试运行“腔”案例,但我已经在移动壁上分配了狄利克雷条件(p = 0),并且我注意到压力值会根据节点的数量而变化(但我并不完全当然还)。但是,我希望看到 OpenFOAM 用于执行速度校正以确保不可压缩条件的算法。

有没有人有关于这个算法的文档?或者你知道在 OpenFoam 的库中哪里可以更好地了解它是在内部完成的吗?我知道这是 PISO 方法,但我想要更多细节。

0 投票
0 回答
27 浏览

python - 如何将聚类算法应用于体积表面?

我正在尝试比较一些 OpenFOAM CFD 模拟,这些模拟再现了通过几乎球形物体的流动(物体是重建的,形状不规则),寻找具有最小壁剪应力簇的物体。所以,我想知道是否有办法在这个不规则表面上运行聚类算法,比如 K 均值、EM 或其他无监督算法。换句话说,我想以数字方式比较以略微不同的形状绘制的颜色图,例如,将簇的面积和平均值作为参数来进行比较。有人处理过类似的情况吗?

我已经尝试将这个对象投影到平面或球体上,但失真比预期的要大,这不再是一种选择。

0 投票
2 回答
1075 浏览

python - Paraview - 使用 python 脚本以 x3d 格式导出数据

我正在尝试使用 paraview-python 脚本以 x3d 格式的 OpenFOAM 结果导出。当我通过 paraview 图形界面执行此操作时,它可以工作并且可以在 Blender 中可视化结果,请参见下图

在此处输入图像描述

但是,当我尝试使用以下脚本执行相同的操作时

从这张图片中可以看出,场值(速度 U)没有被导出!

在此处输入图像描述

有人可以告诉我我做错了什么吗?谢谢!

0 投票
0 回答
84 浏览

c++ - 在OpenFOAM中从同一类的另一个属性初始化引用的属性

我正在研究 C++ 框架 OpenFOAM,尤其是在一个项目的库上。我无法按照我想要的方式声明我的类的构造函数。从 C++ 的角度来看,我认为我的问题很有趣。

这是我的构造函数(在 arbMesh.C 中):

“Rho”是一个 volScalarField 引用,“mesh_”是一个 const fvMesh 引用。

我想要做的是添加另一个从“fvMesh”对象定义的“pointMesh”类型的属性。我的直接想法是将属性“const pointMesh& pMesh”属性添加到 arbMesh 类中,然后将上面的内容更改为:

或者

或者

显然,这些解决方案都不起作用,但我想我已经接近了。问题是初始化没有正确完成。事实上,我记得那些是引用,它们必须被声明为:

这是第三个选项的编译错误:

如何声明 pMesh 以使其正确初始化?

如果您不熟悉它的类,请浏览OpenFOAM 的源代码。我无法在 c++ 论坛或 OF 社区中找到合适的答案。

0 投票
1 回答
98 浏览

dynamic-linking - 如何在 OpenFOAM 中编译 OpenVINO-Code?

我目前在计算流体动力学领域使用 OpenVINO 的推理引擎进行深度学习推理。我使用的 CFD 软件是 OpenFOAM,它不支持 CMake,而是用户必须使用所谓的 wmake。

为了为 OpenVINO 等第三方软件编译代码,我必须提供编译所需的所有头文件和库。但是,我不确定如何找出 OpenVINO 推理引擎所需的所有内容。

有人可以解释一下如何找到要包含的正确标题和要链接的库吗?

提前致谢!

0 投票
1 回答
241 浏览

c++ - MULES 是修正输运方程的正确选择吗?[开放泡沫]

我想解决以下修改后的传输方程来计算灵敏度:

https://latex.codecogs.com/gif.latex?%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20t%7D%20%28%5Cdelta%20%5Calpha%29%20+%20%5Cnabla% 20%5Ccdot%20%28%5Cvec%7Bu%7D%20%5C%20%5Cdelta%20%5Calpha%29%20+%20%5Cnabla%20%5Ccdot%20%28%5Cdelta%20%5Cvec%7Bu %7D%20%5C%20%5Calpha%29

在 interFoam 中,我在求解后立即实现了以下代码alphaEqn.H(以及初始字段dAlphadU、计算dPhi和其他修改):

它有效,但我不确定是否MULES::explicitSolve是解决这个等式的正确方法。经过几个时间步骤后,溶液会严重涂抹。你会推荐什么?