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

c++ - C++ - 不能将变量声明为抽象类型

我正在尝试用 C++(用于 OpenFOAM)编写一些代码,但我收到了标题中给出的这段代码的错误:

完整的错误是:

错误在这一行:

通过查找这个,我想我明白 topoSet 可能应该被声明为一个常量,但我尝试了这个,它没有任何区别。

我有一些类似性质的错误,但我只是想了解如何解决这个错误。

0 投票
0 回答
399 浏览

git - 使用版本控制软件维护 OpenFOAM CFD 仿真案例

对于我的硕士论文,我正在使用开源 CFD 模拟工具 OpenFOAM。对于那些不熟悉它的结构的人:

您通常为每个模拟案例创建一个目录。该目录由几个子目录组成,其中存储了几个 ascii 配置文件。这些定义了网格、求解器的选项等...根据模拟的复杂性,在很多文件中可能会有很多设置。

由于它通常需要进行一些试验,直到您找到一个可行的设置,所以对这些配置文件中的版本控制更改以及能够切换回以前的状态将非常有帮助。每个版本控制软件都应提供此基本功能。

我发现这篇关于使用 git 跟踪 OpenFOAM 配置文件更改的博客条目。在我自己设置之后,我可以确认 git 在这种情况下确实工作得很好。

但是,该条目还讨论了在单个案例中使用分支来进行参数变化。很多时候,我需要为我的案例创建稍微修改的副本,例如检查不同边界条件对我的模拟的影响。

在这里使用不同的分支是不够的,因为我需要比较不同修改的结果,因此每个模拟都需要自己的工作目录!

我对此的解决方案是为每个修改过的案例克隆我原来的 git-case 存储库。但是现在它变得非常麻烦,一旦我想对这个“案例族”进行一般性的改变。考虑以下场景:

  1. 有一个“通用”案例文件夹
  2. 我创建了几个“通用”的克隆,然后稍微修改了每个案例
  3. 我意识到我搞砸了“通用”中的设置,修复它,然后希望所有克隆也得到更新。

由于 git 不允许“向下游推送”(因为“通用”回购不知道它的“孩子”),我必须在每个克隆中手动拉取。

我的理想设置如下所示:

  • 一系列案例的一个存储库
  • 我的案例有一个“通用”设置(很可能以“主”分支的形式)
  • 我的“通用”设置中的更改将自动集成到所有修改的(子)案例中
  • 当我需要运行和比较几个版本时,我只能将它们“外包”到单独的工作目录中,其中仍然会自动与“通用”的更改同步

换句话说,与 git 背后的原始概念不同(在子分支上工作并缓慢地将更改向上游移动到 master),在我的场景中,该概念更类似于面向对象编程中的“更改继承”。

这可能吗,或者有没有办法比我目前的 git 设置更接近这个,这涉及到很多推拉?由于我是唯一一个在本地机器上工作的人,我是否应该改用像 subversion 这样的集中式版本控制工具?

更新:

多亏了这些建议,我取得了一些进展。我发现git-new-workdir 脚本几乎可以满足我关于共享配置文件和工作目录“外包”的所有要求,而无需在目录之间推送和拉取所有更改(我也知道这已经包含在 git最新版本的核心功能)。

关于“更改的继承”部分,我可以通过让所有派生分支跟踪其本地上游分支中的更改来涵盖大多数设置。合并很可能通过 post-commit 钩子实现自动化。

唯一不足的情况是一个分支是由几个“父”分支派生的。示例设置:

我是否可以假设 git 只能为每个分支管理一个上游分支,并且不可能从两个上游分支自动合并?

0 投票
2 回答
1243 浏览

c++ - openfoam: flex yyin.rdbuf(std::cin.rdbuf() 错误

我想报告我在 Mac OS X El Capitan 版本 10.11.2 中安装 OpenFOAM 3.0.1 时遇到的错误的解决方案错误是:

“错误:成员引用类型'std::istream *'(又名'basic_istream *')是一个指针;也许你打算使用'->'?yyin.rdbuf(std::cin.rdbuf());”

这个问题与flex version 2.6.0. 我使用 macports 安装的。

flex 2.5.35 Apple(flex-31)我可以通过使用位于/usr/bin/flex(而不是)的“”来克服这个问题/opt/local/flex

只需在 openfoam 源代码分发的 $(WM_DIR)/rules/General/flex++ 文件中将“flex”更改为“/usr/bin/flex”。

0 投票
2 回答
1920 浏览

terminal - 通过 Docker 安装 OpenFOAM

我在尝试使用 Docker(在 MacOSX El Capitan 上)安装 OpenFOAM 时遇到了麻烦。我一直在关注官方教程

当我尝试通过命令行执行第一个脚本(installOpenFOAM+)时:

我在终端屏幕上得到以下结果:

机器不存在

我一直在网上一遍又一遍地寻找解决方案,但似乎没有人遇到过这样的问题。这里有人遇到过同样的问题吗?

0 投票
0 回答
95 浏览

c++ - 出现错误:'Foam::solverPersistentData::typeName' 不明确

在执行 ./Allwmake 时出现模棱两可的错误。错误如下。

并且大多数错误是由于代码中的歧义造成的。这些文件是从 OpenFOAM2.4.x 发行版中使用的。可以在线获得。

0 投票
1 回答
3010 浏览

macos - 无法在 OSX 上使用 docker 连接到 X 服务器

我正在尝试使用 Docker-toolbox在 Mac OS X 10.10.5 ( http://www.openfoam.com/download/install-binary.php ) 上安装 openFoam。我可以毫无问题地执行所有建议的步骤,但是当我尝试运行安装指南中包含的示例时,我无法打开 paraFoam,因为它返回以下错误:

paraview: cannot connect to X server

我也安装了 XQuartz,但它似乎没有多大帮助!

0 投票
1 回答
2692 浏览

macos - 无法在 OS X 上使用 docker 连接到 X 服务器 - 第二部分

我遇到的困难与此处表达的困难相同:Cannot connect to X server using docker on OSX

我对上面链接中的推荐说明感到非常困惑(我是 docker 新手),我希望能澄清以下内容:

1) 我们是在常规 OS X 终端中“触摸 foo.foam”还是在 docker 终端中触摸它;就我而言,遵循“docker run -ti openfoamplus/of_v30plus_rhel66 /bin/bash”

2) 你建议像任何其他 Mac 应用程序一样运行 paraview(我的是最新的)。所以,基本上,双击应用程序文件夹中的paraview?但是当通过打开菜单打开 foo.foam 时,我们是打开 foo.foam 并按下 Apply 按钮(它会给出错误),还是按照您上面的说明输入“paraview foo.foam”?如果是后者,那么什么都不会发生;我什么都打不开!

3) 如果我们应该只打开 foo.foam,那之后我们要做什么?docker 是怎么知道这一切的?无论如何,当我从 docker 中输入 paraview 时(在打开 foo.foam 之后),我得到了相同的 X 服务器错误。否则我不会期待!

希望您可以提供更一步一步的说明?

提前致谢

0 投票
1 回答
3490 浏览

tcp - 如何指定 OpenMPI 使用的端口范围?

我正在使用 Open MPI 1.6.5 在 3 个节点上并行运行 OpenFOAM。出于安全原因,我只允许打开几个 TCP 端口。所以我为 Open MPI 打开了 49990-50009 端口,并在 openmpi-mca-params.conf 中设置了如下值:

当我运行 mpirun 时,我收到一条消息:

我错过了什么?如何设置 MPI 以运行一系列端口?

0 投票
2 回答
353 浏览

openfoam - OpenFOAM 的主要思想是什么?

我只是想了解 openFOAM 的主要思想/原理以及如何创建模拟,请让我知道我哪里出错了,所以基本上你有一个与气体或液体相互作用的对象,你想模拟这个,所以你创建对象的模型,对其进行网格划分,指定气体流入和流出的位置以及壁是什么,并设置其他正确的参数,然后运行程序(使用适当的时间步长等)?

0 投票
0 回答
86 浏览

paraview - 使用 paraview 生成图片

我目前正在使用 Openfoam 运行具有近 180 个时间步长的模拟。完成的时间步长范围从 -180 到 -6。

我必须使用 paraview 生成图片。我必须为每 10 个时间步生成图片,即 -180、-170、-160 等等。paraview可以做到这一点吗?