使用turbulenceFields FunctionObject进行并行计算后重组网格发生的问题
-
各位老师同学们好,
我在OpenFOAMv2206上使用稳态RANS和标准ke模型计算了一个空计算域的大气边界层算例。为了获取计算域中的雷诺应力,我使用了openfoam自带的turbulenceFields functionObject,我对其设置如下所示:turbulenceFields1 { type turbulenceFields; libs ("libfieldFunctionObjects.so"); writeControl outputTime; writeInterval 1; fields (R devReff L); }
目前情况是,能够完成计算(计算至controlDict中指定的endTime),也能够在processor*文件夹中找到输出的turbulenceProperties:R场,但在执行reconstructPar -latestTime时会出现以下报错:
Reconstructing volSymmTensorFields turbulenceProperties:R --> FOAM FATAL IO ERROR: (openfoam-2206 patch=221104) Bad token - could not get word file: processor0/20/turbulenceProperties:R.boundaryField.inlet.name at line 0. From Foam::Istream& Foam::operator>>(Foam::Istream&, Foam::word&) in file primitives/strings/word/wordIO.C at line 71. FOAM exiting
经检查,发现turbulenceProperties:R的文件里面关于inlet的定义有一些奇怪:
inlet { type codedFixedValue; value nonuniform List<symmTensor> 0(); name ; }
可以发现,定义中name一项后面是空的,而且type是codedFixedValue。同时turbulenceProperties:L则没有这一问题,能够顺利通过reconstructPar,其文件中对inlet的定义如下所示:
inlet { type calculated; value nonuniform List<scalar> 0(); }
请问有遇到过相似情况的吗?能否提供一些指导以便我解决这个问题。
-
补充一下,devReff文件中对inlet的定义如下:
inlet { type calculated; value nonuniform List<symmTensor> 0(); }
-
@李东岳
谢谢李老师,我用以下脚本把inlet改正了过来,目前能够重组网格了。#!/bin/sh timestep=20 for processor in processor*; do sed -i 's/codedFixedValue/fixedValue/' $processor/$timestep/turbulenceProperties:R sed -i 's/name.*;/ /' $processor/$timestep/turbulenceProperties:R done
之后也能够在paraview中检查。