OF如何输出header
-
我想把一个scalarField规范输出到文本文件里面,以便下次计算直接可以读取。但是由于IO读取的时候似乎要检查header,例如下面这样。如何规范地输出scalarField呢?
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1806 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportProperties; }
-
如何把表头也输出到文件里面呢,或者能不能IO的时候直接write好这个scalarField呢
-
又是搜索的一晚上,还好查出来了。通过scalarIOField来定义想输出的scalarField,在scalarFiled里面用IOobject来初始化。最后用write()来输出到指定文件夹。这样输出的文件就有header了。以后OF也可以读取了,很棒!!
不过有个问题是,我在IOobject里面设置的路径是runTime.path()/“postProcessing”,发现结果却没有输出到postProcessing这个文件夹里面。而是输出到了runTime.timeName()文件夹里。不知道是怎么回事。
看起来像是不能识别postProcessing文件夹路径,而默认到了runTime.timeName()路径里面去。不知道怎么解决这个问题 -
另外并行计算的mesh.constant()路径是processor里面的constant文件夹。有没有命令能够直接得到processor外面的那个constant文件路径呢
-
感谢分享
试试runTime.path()/"postProcessing"/"sets"/name()
? seestreamlines.C
-
@Samuel-Tu 在 OF如何输出header 中说:
scalarIOField
OF1806对应的是IOField<scalar> -
@东岳 还是不行,首先是没有name()这个函数,去掉name()后识别不出来postProcessing,还是输出到runTime.timeName()里面了
-
此贴终结,完美输出方式被我找到了!!!!!!
IOField<scalar> utau ( IOobject ( "utau", runTime.constant(), "../postProcessing", mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), scalarField(totalFSize,0.0) );
这样就可以输出到想要的文件夹(此处是postProcessing)了
-
感谢分享!!!收录在此 https://www.cfd-china.com/topic/3499/openfoam小代码