问题标签 [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.
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 中也找不到一些方法。
任何人都可以帮助我了解发生了什么?谢谢!
京昌
python - 使用 Paraview 的可编程过滤器
我有一个带有字段值 (.vtk) 的表面,它是 openfoam 后处理的输出(我使用几何体上的切割平面制作了它)。我需要计算表面上的平均场值,我不知道该怎么做。
我试图使用 paraview 中的可编程过滤器来做到这一点,但我做不到。我在这里找到了一些关于如何使用该工具的示例https://www.paraview.org/Wiki/Python_Programmable_Filter,但我仍然不知道如何获取单元格区域以及如何平均积分。有人可以为我提供一个有用的脚本来计算平均场吗?谢谢!
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++ 编译这个程序时,我不会收到这个警告。
你能帮助我吗?
module - LMOD TCL 在加载模块时执行 bash 脚本
有一个小问题,你可以帮助我。在我们的新集群上,我们使用 LMod 作为环境模块系统。
为 OpenFOAM 创建模块 TCL 脚本,需要加载系统相关的 bashrc 文件。
这是我在另一个模块系统上使用的 TCL 脚本,它工作正常。我无法在 Lmod 中执行“源”命令行,我在这里缺少什么?
openfoam - OpenFoam 使用哪种方法来计算压力和校正速度?
我正在尝试运行“腔”案例,但我已经在移动壁上分配了狄利克雷条件(p = 0),并且我注意到压力值会根据节点的数量而变化(但我并不完全当然还)。但是,我希望看到 OpenFOAM 用于执行速度校正以确保不可压缩条件的算法。
有没有人有关于这个算法的文档?或者你知道在 OpenFoam 的库中哪里可以更好地了解它是在内部完成的吗?我知道这是 PISO 方法,但我想要更多细节。
python - 如何将聚类算法应用于体积表面?
我正在尝试比较一些 OpenFOAM CFD 模拟,这些模拟再现了通过几乎球形物体的流动(物体是重建的,形状不规则),寻找具有最小壁剪应力簇的物体。所以,我想知道是否有办法在这个不规则表面上运行聚类算法,比如 K 均值、EM 或其他无监督算法。换句话说,我想以数字方式比较以略微不同的形状绘制的颜色图,例如,将簇的面积和平均值作为参数来进行比较。有人处理过类似的情况吗?
我已经尝试将这个对象投影到平面或球体上,但失真比预期的要大,这不再是一种选择。
c++ - 在OpenFOAM中从同一类的另一个属性初始化引用的属性
我正在研究 C++ 框架 OpenFOAM,尤其是在一个项目的库上。我无法按照我想要的方式声明我的类的构造函数。从 C++ 的角度来看,我认为我的问题很有趣。
这是我的构造函数(在 arbMesh.C 中):
“Rho”是一个 volScalarField 引用,“mesh_”是一个 const fvMesh 引用。
我想要做的是添加另一个从“fvMesh”对象定义的“pointMesh”类型的属性。我的直接想法是将属性“const pointMesh& pMesh”属性添加到 arbMesh 类中,然后将上面的内容更改为:
或者
或者
显然,这些解决方案都不起作用,但我想我已经接近了。问题是初始化没有正确完成。事实上,我记得那些是引用,它们必须被声明为:
这是第三个选项的编译错误:
如何声明 pMesh 以使其正确初始化?
如果您不熟悉它的类,请浏览OpenFOAM 的源代码。我无法在 c++ 论坛或 OF 社区中找到合适的答案。
dynamic-linking - 如何在 OpenFOAM 中编译 OpenVINO-Code?
我目前在计算流体动力学领域使用 OpenVINO 的推理引擎进行深度学习推理。我使用的 CFD 软件是 OpenFOAM,它不支持 CMake,而是用户必须使用所谓的 wmake。
为了为 OpenVINO 等第三方软件编译代码,我必须提供编译所需的所有头文件和库。但是,我不确定如何找出 OpenVINO 推理引擎所需的所有内容。
有人可以解释一下如何找到要包含的正确标题和要链接的库吗?
提前致谢!