问题标签 [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.
ubuntu - paraFoam 命令不起作用
我最近开始使用 Ubuntu 来学习 OpenFoam,我目前正在使用本教程来学习 http://files.the-foam-house5.webnode.es/200000361-e64a0e745a/Chapter2_Plates.pdf
我按照教程直到第 2.3.3 节,并将文件放在正确的目录中,当我尝试blockMesh
在终端中键入命令后跟 paraFoam 时,它说找不到。
已经安装了,怎么找不到呢?如何解决这个问题?
docker - 无法运行 OpenFOAM docker 镜像
我正在尝试使用OpenFOAM docker image。我正确安装了所有东西,当我尝试运行时OpenFOAM_Start
出现错误:
启动的机器可能有新的 IP 地址。您可能需要重新运行该
docker-machine env
命令。来自守护进程的错误响应:没有这样的容器:of_1712
错误:无法启动容器:of_1712
错误:没有这样的容器:of_1712
停止“默认”...
机器“默认”已停止。
然后我运行docker-machine env
命令,我得到了错误:
检查 TLS 连接时出错:主机未运行
如果您能帮助我了解问题所在以及如何解决,我将不胜感激。
PS 希望这不是题外话。如果我应该在不同的 stackexchange 中问这个问题,请告诉我。
boot2docker - 如何在 OpenFOAM docker-machine 上安装软件包 - boot2docker: bash: tce-load: command not found
我正在尝试在基于 boot2docker的 OpenFOAM docker-machine 映像上安装一些软件包。运行uname -a
命令时,我得到以下信息:
Linux 默认 4.4.111-boot2docker #1 SMP Thu Jan 11 16:25:31 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
在这个页面中,已经解释了 boot2docker 发行版是基于该Tiny Core Linux
发行版的,因此要安装一个软件包,必须:
- 检查Tiny Core Linux 软件存储库页面
- 使用命令
tce-load -w -i packagename.tcz
安装
我按照这些步骤安装了 git。但我得到了错误:
bash:tce-load:找不到命令
我搜索并按照此处的解释显然官方存储库已脱机。提供了镜像列表。但我不知道如何从这些镜像安装包!
PS 或者,在这里,OP 给出了一个奇怪的答案,但目前尚不清楚他/她跑步的意思boot2docker ssh
如果您能帮助我了解问题所在以及如何解决,我将不胜感激。
openfoam - OpenFOAM: FOAM FATAL ERROR: Unknown TurbulenceModel type RASModel
我正在尝试按照这个 OpenFOAM 教程使用 Gmsh 生成轴对称网格。这些文件在此处提供。但是,当我尝试使用pimpleFoam
求解器解决问题时,出现错误:
--> FOAM FATAL ERROR: Unknown TurbulenceModel type RASModel
有效的湍流模型类型:
3(LES RAS 层流)
从函数静态 Foam::autoPtr > Foam::TurbulenceModel::New(const alphaField&, const rhoField&, const volVecto rField&, const surfaceScalarField&, const surfaceScalarField&, const transportMo del&, const Foam::word&) [with Alpha = Foam::geometricOneField ; Rho = Foam::geom etricOneField; BasicTurbulenceModel = Foam::incompressibleTurbulenceModel; 运输模型 = 泡沫::运输模型;Foam::TurbulenceModel::alphaField = Foam::geometricOneField; Foam::Turbulenc eModel::rhoField = Foam::geome tricOneField; Foam::volVectorField = Foam::GeometricField; Foam::surfaceScalarField = Foam::GeometricField; Foam::TurbulenceModel::transportModel = Foam::transportMo del] 在文件 /opt/CFDSupportFOAM4.0/beta/OpenFOAM-dev/src/TurbulenceModels/turbulenceModels/lnInclude/TurbulenceModel.C 第 113 行。</p>
如本页所述,显然turbulenceProperties
in的语法case/constant
已更改。所以我turbulenceProperties
从以下位置编辑了文件:
simulationType RASModel;
到
但后来我得到一个不同的错误:
FOAM FATAL IO ERROR:尝试读取超出 EOF
文件:.../Axisymmetric2D/case/system/fvSchemes.divSchemes.default 在第 29 行。
从第 82 行的文件 db/IOstreams/Tstreams/ITstream.C 中的函数 virtual Foam::Istream& Foam::ITstream::read(Foam::token&) 开始。FOAM 退出
看来本教程是为旧版本的 OpenFOAM 准备的。如果您能帮助我了解问题所在以及如何解决,我将不胜感激。
我的目标是学习如何使用 Gmsh 制作轴对称网格。因此,针对较新版本的 OpenFOAM 的开箱即用解决方案或教程也可以。
PS 我已经在 Github repo 中报告了这个问题
linux - 在没有管理员权限的服务器上安装/编译 OpenFOAM
我正在尝试在远程服务器上安装/编译 OpenFOAM。由于我没有管理员权限,我必须从头开始编译它。按照此处的说明,当我尝试运行时
我得到错误:
没有为 /home/foobar/OpenFOAM/OpenFOAM-v1712/platforms/linux64GccDPInt32Opt/bin 添加完成
我检查了~/OpenFOAM/OpenFOAM-v1712/etc/bashrc
绝对存在并且完好无损。我还检查了/home/foobar/OpenFOAM/OpenFOAM-v1712/
文件夹,没有platforms
文件夹之类的东西!我进行了搜索,唯一可以看到类似错误消息的地方是问题是旧 Bash。我尝试bash --version
返回version 4.3.48(1)-release (x86_64-pc-linux-gnu)
,这比4.2
似乎需要的要多。
我的系统信息:
当我uname -a
在服务器上运行命令时,这就是我得到的
Linux foobar 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
查看此页面中提到的可能需要的依赖项,我使用命令检查了已安装apt list --installed | grep -i packageName
的包,安装的包是:
build-essential、flex、bison、cmake、zlib1g-dev、libboost-system-dev、libboost-thread-dev、libopenmpi-dev、openmpi-bin、gnuplot、libreadline-dev、libqt4-dev、libqt4-opengl-dev、 freeglut3-dev,
未安装的是:
libncurses-dev、libxt-dev、libqtwebkit-dev、libcgal-dev
我想根据安装页面这不是必需的。
并检查安装的库的版本:
mpirun --version
-->(Open MPI) 1.10.2
gcc --version
-->gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
cmake --version
-->3.5.1
如果可以让我知道,我将不胜感激
- 问题是什么,我该如何解决?
- 如果无法解决,我有哪些替代方法可以在所述服务器上安装/编译 OpenFOAM。
openmpi - 监控在 slurm 作业上运行的 OpenFOAM 模拟的 CPU 使用率
我正在集群上运行 OpenFOAM 模拟。我使用了 Scotch 分解方法,我的decomposeParDict
样子是这样的:
checkMesh
并decomposePar
没有问题地完成。我已通过以下方式为 slurm 分配了 6 个节点
求解器运行平稳,没有任何错误。
问题是与我之前运行的非并行模拟相比,求解速度没有提高。我想监控 CPU 使用情况,看看我分配的所有 6 个节点是否都被类似地加载。该squeue --user=foobar
命令返回jobNumber
分配的节点列表 ( NODELIST(REASON)
),如下所示:
from sinfo
command 这些节点都在 indebug
和main*
PARTITION
s 中(我完全不知道这意味着什么!)。
这篇文章说您可以使用sacct
orsstat
命令来监控 slurm 作业的 CPU 时间和内存使用情况。但是当我跑步时
它给了我:
我无法理解。当我指定工作编号时
退货是空的。所以我的问题是
- 我的模拟是在加载所有节点,还是在一个或两个节点上运行,其余的都是免费的?
- 我在运行正确的命令吗?如果是,这些数字是什么意思?它们如何代表每个节点的 CPU 使用率?
- 如果不是,那么和/或(或其他 slurm 命令)获取 CPU 使用率/负载的正确方法
--format="..."
是什么?sacct
sstat
PS1。我已经按照官方说明进行了 OpenFOAM 编译。我没有做任何事情,尽管OpenMPI
它是mpicc
编译器。
PS2对于那些可能会在这里结束的人。也许我运行了错误的命令显然可以首先通过以下方式分配一些资源:
其中 7 是您想要的核心数,而 bash 只是一个名称。然后运行求解器:
我还不确定。
data-visualization - 使用 NVIDIA IndeX 插件可以在 ParaView 中可视化哪些文件类型?
我使用 OpenFOAM 做了一些工作,现在想使用 ParaView 可视化我的数据,当我加载.foam
文件和一些.stl
文件时,我无法从下拉列表中看到 NVIDIA IndeX 选项,因此我假设并非所有数据类型都可以由 IndeX 呈现.
参考这个页面,IndeX只能渲染结构化和非结构化的体数据,这是什么意思?
有什么方法可以让我的数据索引准备好?
openfoam - Foam::anisotropicFilter 实现的学术参考是什么?
OpenFOAM(撰写本文时的最新版本)为大涡模拟应用提供了三种类型的测试滤波器:
simpleFilter
laplaceFilter
anisotropicFilter
考虑到文献中提出了各种各向异性过滤器,谁能告诉我们在代码实现中使用了哪个参考anisotropicFilter
,因为这些信息无法通过代码指南获得?
openfoam - Openfoam,multiphaseInterfoam,非恒定入口
我运行 multiphaseInterfoam,但我遇到了入口不恒定的问题(我希望它是恒定的。)
这是我的 alpha 文件\
/ -------------------------------- - C++ - -------------- -------------------- \
FoamFile { 2.0 版;ASCII格式;类 volScalarField;位置“0”;对象 alpha.air; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
尺寸[0 0 0 0 0 0 0];
内部字段统一 0;
boundaryField { //- 为约束补丁设置 patchGroups #includeEtc "caseDicts/setConstraintTypes"
阿尔法淡水:
/ -------------------------------- - C++ - -------------- -------------------- \
FoamFile { 2.0 版;ASCII格式;类 volScalarField;位置“0”;对象 alpha.freshWater; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
尺寸[0 0 0 0 0 0 0];
内部字段统一 0;
boundaryField { //- 为约束补丁设置 patchGroups #includeEtc "caseDicts/setConstraintTypes"
alpha.saltWater
FoamFile { 2.0 版;ASCII格式;类 volScalarField;位置“0”;对象 alpha.saltWater; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
尺寸[0 0 0 0 0 0 0];
内部字段统一 0;
boundaryField { //- 为约束补丁设置 patchGroups #includeEtc "caseDicts/setConstraintTypes"
// ************************************************ ************************* //
阿尔法
/ -------------------------------- - C++ - -------------- -------------------- \
FoamFile { 2.0 版;ASCII格式;类 volScalarField;位置“0”;对象阿尔法;} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
尺寸[0 0 0 0 0 0 0];
内部字段统一 0;
boundaryField { //- 为约束补丁设置 patchGroups #includeEtc "caseDicts/setConstraintTypes"
// ************************************************ ************************* //
以上给出了时间步长 1 的以下所需流体分布
然而,经过几次以上的改变,同样在入口处:
我真的不明白上面 alpha.air 中使用的 contactAngle 函数。我尝试过以下 alpha.air
/ -------------------------------- - C++ - -------------- -------------------- \
FoamFile { 2.0 版;ASCII格式;类 volScalarField;位置“0”;对象 alpha.air; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
尺寸[0 0 0 0 0 0 0];
内部字段统一 0;
boundaryField { //- 为约束补丁设置 patchGroups #includeEtc "caseDicts/setConstraintTypes"
// ************************************************ ************************* //
使用上面的 alpha.air,我收到一条很长的错误消息,其中包含被解释为 Internet 链接的内容,因此我不允许在此处发布它们。错误信息可以在 CDF-online forum 的这个链接上看到,我也在那里问过这个问题。
是否有人知道如何修改上述文件以使入口处的 alpha 分布保持不变?
python - Python - 使用 os.subprocess 调用带有嵌套命令的 shell 脚本
我正在利用 python 运行顶级遗传算法来优化 3D 飞机机翼几何形状,以使用 OpenFOAM 实现空气动力学性能。我正在运行 Ubuntu 16.04、Python 3.6 和 OpenFOAM 5。我编写了几个位于 OpenFOAM 案例目录(包含几何 STL 文件、流体动力学参数和网格的目录)中的 shell 脚本。这些脚本执行重复的文件管理命令和 OpenFOAM 并行处理分解程序,以及生成 3D 网格和运行模拟的命令。python 脚本应该完全位于不同的目录中,因为这些案例文件夹中的数百个(如果不是数千个)将作为遗传算法的后代生成。问题是使用 os.subprocess 调用这些 shell 脚本似乎会为脚本中的每个命令生成并终止一个 shell。
我用以下方式调用所述脚本:
我最终得到了错误:
如果 shell 试图decomposePar
在 case 目录以外的目录中执行(它应该顺利运行),我可以看到这种情况发生的唯一方法。对于案例管理命令,似乎只有第一个命令有效。我已经抓取了堆栈溢出来解决这个问题,但我不确定我是否找到了一个。我尝试使用os.chdir('casePath')
、设置cwd='casePath'
和其他几个subprocess
我不太明白的参数来设置 python 脚本的工作目录!
我知道我可以将每个 shell 命令转录成 Python,但由于 shell 命令的数量以及将来可能更改这些 shell 脚本,我发现这将非常乏味。我希望我的方法是模块化的并且足够健壮,可以只运行几个我可以根据需要修改的脚本。此外,最终该程序将部署到超级计算机上。并行处理将发生在 OpenFOAM 中的 C++ 级别,而不是 python,所以这不是我关心的问题之一。有什么办法可以做到这一点,我是否错过了一些非常明显的东西?请耐心等待,因为计算机科学不是我的强项,我是一名航空工程师。谢谢!