1

我是编程初学者。我正在尝试使用 reactingFoam 模拟燃烧室。

我已经修改了 counterflow2D 教程。

对于那些可能不了解 OpenFOAM 的人来说,它是一个用 C++ 构建的程序,但它不需要 C++ 编程,只需在所需文件中定义好变量即可。

在我的第一次尝试中,我制作了一个非常简单的模型,但由于我想很好地检查它,我将它设置为 60 秒,时间步长为 1e-6。

我的电脑不是很强大,所以我花了大约一天的时间。(我的意思是我想找到一个解决方案而不是重复模拟)。

我使用 4 个处理器并行执行求解器 reactingFOAM

mpirun -np 4 reactingFOAM -parallel > log

该日志没有显示任何错误证据。

问题是当我使用reconstructPar时它工作得很好但是我尝试用paraFoam观察结果并且显示了这个错误:

从函数 bool Foam::IOobject::readHeader(Foam::Istream&)

在第 88 行的文件 db/IOobject/IOobjectReadHeader.C 中

在第 1 行读取“ mypath /constant/reactions”

第一个令牌无法读取或不是关键字“FoamFile”

我读过也许有些文件不应该是空的,但我没有发现这个问题。

我的“反应”文件没有从教程中修改过,并且一直有效。

编辑:

很抱歉这个模糊的问题。我已经对其进行了一些修改。

4

1 回答 1

0

一个典型的 OpenFOAM 字典文件总是包含一个Foam::Istream名为FoamFile. 下面是一个典型system/controlDict文件的示例:

FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}

在构建字典标头期间,如果Istream不存在,OpenFOAM 会通过引发您遇到的错误消息来停止其操作:

First token could not be read or is not the keyword 'FoamFile'

标头的好处可能是贡献了 OpenFOAM 的抽象机制,否则这将是困难的。

正如评论中提到的,添加标题实体几乎总能解决这个问题。

于 2018-05-14T19:17:21.197 回答