scalarIOList AUTO_WRITE 没有自动写文件
-
Dear FOAMers,
我用如下code创建的scalarIOList 对象并没有想一般的场(p、U)那样在该写的时候写文件,这是什么原因呢?
scalarIOList df ( IOobject ( "DF"+convert.str(), time_.time().timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ) )
Lianhua
-
感谢管理员,
这段代码是在一个函数里面写的,每一步演化这个函数都被调用一次。如果我在后面加一句df.write()就可以写了,但是这样会每一步都写一个时间目录,而不是由controlDict里面的参数控制。
这个问题可以由下面这段完整简单的代码重现,
#include "fvCFD.H" #include "scalarIOList.H" int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" scalarIOList df ( IOobject ( "DF", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ) ); while(runTime.run()) { runTime++; df = df + 1; } // df.write(); return 0; } system/controlDict 相关设置是,
startFrom startTime; startTime 0; stopAt endTime; endTime 0.5; deltaT 0.001; writeControl timeStep; writeInterval 10;
这个拟solver跑起来,并不会每10步输出一个时间目录底下带一个DF文件。
-
感谢管理员,
这个minimal example 不写文件确实是因为我忘了加上
runTime.write()
:cold_sweat: 。它并不能重现我原来solver里面的问题。我再找找原因。
2016年4月19日 01:06
1/5
2016年4月20日 04:41