如何拷贝/创建 volVectorField 在每一个时间步文件夹中



  • 在 "0" 文件夹中用自己写的utility 新建了一个 volVectorField 量 “HAG_BC”, 由于并行计算的需要,HAG_BC需要出现在之后的每一个时间步文件夹中,但是其场量值始终保持不变,怎么修改Solver实现这一过程啊?

    我在creatFields.H 中加入了以下内容:

    volVectorField HAG_BC
    (
    IOobject
    (
    "HAG_BC",
    runTime.timeName(),
    mesh,
    IOobject::MUST_READ,
    IOobject::AUTO_WRITE
    ),
    mesh
    );

    但是运行后仍然得到:

    --> FOAM FATAL IO ERROR:
    cannot find file

    file: /home/yhan/Desktop/PrecTest/1/HAG_BC at line 0.

    From function regIOobject::readStream()
    in file db/regIOobject/regIOobjectRead.C at line 73.
    

    FOAM exiting

    //========================================================================================================

    多谢各位前辈!



  • 你的0文件夹里面的"HAG_BC" 文件是用自己的utility 创建的, 是不是没有这个文件呢?
    或者你并行计算时的processorX 目录里面没有这个文件?



  • @lhzhu
    HAG_BC 是在运行前就已经创建好了,如同“U”,“T”等等,

    并行时,在下一个时间步文件夹中没有建立这个HAG_BC , 所以找不到,

    不知道该如何解决?



  • 只要0目录里面有一个场文件,decomposePar 都会在processorX里面生成子区域的场文件。是不是你写的0/HAG_BC 的file header 里面的object 不是 HAG_BC ?

    FoamFile
    {
    version 2.0;
    format ascii;
    class volScalarField;
    location "0";
    object HAG_BC; ######### LOOK HERE ################
    }



  • @lhzhu如何拷贝/创建 volVectorField 在每一个时间步文件夹中 中说:

    只要0目录里面有一个场文件,decomposePar 都会在processorX里面生成子区域的场文件。是不是你写的0/HAG_BC 的file header 里面的object 不是 HAG_BC ?

    decomposePar 后 在“processorX” 中的 "0" 目录里有这个HAG_BC, 问题是下一时间步的时候没法创建这个HAG_BC啊,
    所以会有那个error.
    不知道怎么解决


Log in to reply