第一个令牌无法读取或不是 OpenFOAM 中的关键字“FoamFile”
Posted
技术标签:
【中文标题】第一个令牌无法读取或不是 OpenFOAM 中的关键字“FoamFile”【英文标题】:First token could not be read or is not the keyword 'FoamFile' in OpenFOAM 【发布时间】:2018-05-13 20:10:07 【问题描述】:我是编程初学者。我正在尝试使用 reactingFoam 模拟燃烧室。
我已经修改了 counterflow2D 教程。
对于那些可能不了解 OpenFOAM 的人来说,它是一个用 C++ 构建的程序,但它不需要 C++ 编程,只需在所需文件中定义好变量即可。
在我的第一次尝试中,我制作了一个非常简单的模型,但由于我想很好地检查它,我将它设置为 60 秒,时间步长为 1e-6。
我的电脑不是很强大,所以我花了大约一天的时间。 (我的意思是我想找到一个解决方案,而不是重复模拟)。
我使用 4 个处理器并行执行求解器 reactingFOAM
mpirun -np 4 reactingFOAM -parallel > log
日志没有显示任何错误证据。
问题是,当我使用reconstructPar 时,它可以完美运行,但是我尝试使用paraFoam 观察结果,并显示此错误:
来自函数 bool Foam::IOobject::readHeader(Foam::Istream&)
在文件 db/IOobject/IOobjectReadHeader.C 的第 88 行
在第 1 行读取“mypath/constant/reactions”
第一个令牌无法读取或不是关键字“FoamFile”
我读到有些文件不应该是空的,但我没有发现这个问题。
我的“反应”文件没有从教程中修改过,并且一直有效。
编辑:
很抱歉这个含糊的问题。我稍微修改了一下。
【问题讨论】:
为了让想要帮助的读者能够重现此内容,他们还需要查看其他内容吗?例如,OpenFOAM 是否要求您编写代码?如果涉及代码,则可能值得将其添加到问题中。 (最好在任何问答平台上考虑读者需要看到什么,而不是添加“让我知道你需要什么”的包罗万象——读者肯定会问他们是否需要其他东西,但如果你能做出一个好的首先提供明显需要的东西,这很有帮助)。 “reactions”文件似乎不包含典型的“FoamFile”标头,例如,您可以在“controlDict”文件的顶部看到。不过,很难对这个模糊的问题发表评论。您能否改进您的问题,以便我们提供更好的帮助? 感谢您的回答并将我的问题更改为更好的格式。对不起,我的问题不清楚,我会改进的。否则,我已将 that 标头添加到“reactions”,并且该错误不再出现。即使我的解释不清楚,我也非常感谢您的帮助和您的时间。谢谢你俩!有没有什么方法可以让我通过感谢或名誉之类的方式感谢你? @edugius 如果您认为它对您的问题有益,您可以接受答案。开心。 【参考方案1】:一个典型的 OpenFOAM 字典文件总是包含一个名为 FoamFile
的 Foam::Istream
。下面是一个典型的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 的抽象机制,否则会很困难。
如 cmets 中所述,添加标头实体几乎总能解决此问题。
【讨论】:
以上是关于第一个令牌无法读取或不是 OpenFOAM 中的关键字“FoamFile”的主要内容,如果未能解决你的问题,请参考以下文章
Azure B2C - 无法从策略中的 JWT 客户端断言令牌读取“日期”声明
无法在 React.js 中读取 json,出现意外的令牌错误
令牌无效错误:指定的令牌无效:无法读取未定义的属性“替换”?