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

ubuntu - paraFoam 命令不起作用

我最近开始使用 Ubuntu 来学习 OpenFoam,我目前正在使用本教程来学习 http://files.the-foam-house5.webnode.es/200000361-e64a0e745a/Chapter2_Plates.pdf

我按照教程直到第 2.3.3 节,并将文件放在正确的目录中,当我尝试blockMesh在终端中键入命令后跟 paraFoam 时,它说找不到。

已经安装了,怎么找不到呢?如何解决这个问题?

0 投票
1 回答
893 浏览

docker - 无法运行 OpenFOAM docker 镜像

我正在尝试使用OpenFOAM docker image。我正确安装了所有东西,当我尝试运行时OpenFOAM_Start出现错误:

启动的机器可能有新的 IP 地址。您可能需要重新运行该docker-machine env命令。

来自守护进程的错误响应:没有这样的容器:of_1712

错误:无法启动容器:of_1712

错误:没有这样的容器:of_1712

停止“默认”...

机器“默认”已停止。

然后我运行docker-machine env命令,我得到了错误:

检查 TLS 连接时出错:主机未运行

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

PS 希望这不是题外话。如果我应该在不同的 stackexchange 中问这个问题,请告诉我。

0 投票
1 回答
507 浏览

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发行版的,因此要安装一个软件包,必须:

  1. 检查Tiny Core Linux 软件存储库页面
  2. 使用命令tce-load -w -i packagename.tcz安装

我按照这些步骤安装了 git。但我得到了错误:

bash:tce-load:找不到命令

我搜索并按照此处的解释显然官方存储库已脱机。提供了镜像列表。但我不知道如何从这些镜像安装包!

PS 或者,在这里,OP 给出了一个奇怪的答案,但目前尚不清楚他/她跑步的意思boot2docker ssh

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

0 投票
1 回答
1965 浏览

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>

本页所述,显然turbulencePropertiesin的语法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 中报告了这个问题

0 投票
1 回答
1892 浏览

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

如果可以让我知道,我将不胜感激

  1. 问题是什么,我该如何解决?
  2. 如果无法解决,我有哪些替代方法可以在所述服务器上安装/编译 OpenFOAM。
0 投票
2 回答
1443 浏览

openmpi - 监控在 slurm 作业上运行的 OpenFOAM 模拟的 CPU 使用率

我正在集群上运行 OpenFOAM 模拟。我使用了 Scotch 分解方法,我的decomposeParDict样子是这样的:

checkMeshdecomposePar没有问题地完成。我已通过以下方式为 slurm 分配了 6 个节点

求解器运行平稳,没有任何错误。

问题是与我之前运行的非并行模拟相比,求解速度没有提高。我想监控 CPU 使用情况,看看我分配的所有 6 个节点是否都被类似地加载。该squeue --user=foobar命令返回jobNumber分配的节点列表 ( NODELIST(REASON)),如下所示:

from sinfocommand 这些节点都在 indebugmain* PARTITIONs 中(我完全不知道这意味着什么!)。

这篇文章说您可以使用sacctorsstat命令来监控 slurm 作业的 CPU 时间和内存使用情况。但是当我跑步时

它给了我:

我无法理解。当我指定工作编号时

退货是空的。所以我的问题是

  • 我的模拟是在加载所有节点,还是在一个或两个节点上运行,其余的都是免费的?
  • 我在运行正确的命令吗?如果是,这些数字是什么意思?它们如何代表每个节点的 CPU 使用率?
  • 如果不是,那么和/或(或其他 slurm 命令)获取 CPU 使用率/负载的正确方法--format="..."是什么?sacctsstat

PS1。我已经按照官方说明进行了 OpenFOAM 编译。我没有做任何事情,尽管OpenMPI它是mpicc编译器。

PS2对于那些可能会在这里结束的人。也许我运行了错误的命令显然可以首先通过以下方式分配一些资源:

其中 7 是您想要的核心数,而 bash 只是一个名称。然后运行求解器:

我还不确定。

0 投票
0 回答
340 浏览

data-visualization - 使用 NVIDIA IndeX 插件可以在 ParaView 中可视化哪些文件类型?

我使用 OpenFOAM 做了一些工作,现在想使用 ParaView 可视化我的数据,当我加载.foam文件和一些.stl文件时,我无法从下拉列表中看到 NVIDIA IndeX 选项,因此我假设并非所有数据类型都可以由 IndeX 呈现.

参考这个页面,IndeX只能渲染结构化和非结构化的体数据,这是什么意思?

有什么方法可以让我的数据索引准备好?

0 投票
1 回答
60 浏览

openfoam - Foam::anisotropicFilter 实现的学术参考是什么?

OpenFOAM(撰写本文时的最新版本)为大涡模拟应用提供了三种类型的测试滤波器:

  1. simpleFilter
  2. laplaceFilter
  3. anisotropicFilter

考虑到文献中提出了各种各向异性过滤器,谁能告诉我们在代码实现中使用了哪个参考anisotropicFilter,因为这些信息无法通过代码指南获得?

0 投票
1 回答
336 浏览

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 分布保持不变?

0 投票
1 回答
477 浏览

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,所以这不是我关心的问题之一。有什么办法可以做到这一点,我是否错过了一些非常明显的东西?请耐心等待,因为计算机科学不是我的强项,我是一名航空工程师。谢谢!