CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    请问Openfoam怎么分别修改输出文件的频率?

    OpenFOAM
    4
    4
    1021
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zhangxc0223 最后由 编辑

      比如我在跑颗粒两相流,想实现颗粒场的 U 和 positions 在每100个timestep输出一次,而颗粒场的其他文件和流体场都是每1000个timestep输出一次。

      比如说修改DPMFoam,想请问一下大家相关的代码在哪个文件里,是否可以通过再添加一个变量与 controlDict 里的 writtenInterval 区分开来来实现?

      1 条回复 最后回复 回复 引用
      • tower
        tower 最后由 编辑

        我认为可以输出频率高一点,然后在数据处理的时候再根据需要选择数据不就好了吗?

        1 条回复 最后回复 回复 引用
        • 浪
          浪迹天大 最后由 编辑

          functions
          {
              writeFields // name of the function object
              {
                  type writeObjects;
                  libs ( "libutilityFunctionObjects.so" );
           
                  objects
                  (
          	    T U rho // list of fields/variables to be written
                  );
           
                  // E.g. write every 1e-5 seconds of simulation time only the specified fields
                  writeControl runTime;
                  writeInterval 1e-5; // write every 1e-5 seconds
              }
          }
          

          OpenFOAM 学习交流:https://openfoam.top

          C 1 条回复 最后回复 回复 引用
          • C
            cxzhmg @浪迹天大 最后由 编辑

            @浪迹天大 ControlDict里面的writeControl和writeInterval似乎会覆盖前面的?

            
            application     twoPhaseEulerFoam;
            
            startFrom       latestTime;
            
            startTime       0;
            
            stopAt          endTime;
            
            endTime         2;
            
            deltaT          1e-4;
            
            writeControl    timeStep;
            
            writeInterval   100;
            
            purgeWrite      0;
            
            writeFormat     ascii;
            
            writePrecision  6;
            
            writeCompression off;
            
            timeFormat      general;
            
            timePrecision   6;
            
            runTimeModifiable on;
            
            adjustTimeStep  no;
            
            maxCo           0.9;
            
            maxDeltaT       1e-04;
            
            functions
            {
                
               volFieldValue1
               {
                   type            volFieldValue;
                   libs            ("libfieldFunctionObjects.so");
            
                   log             true;
                   //writeControl    writeTime;
                    writeControl    timeStep;  
                    writeInterval   1;   //"这里的writeInterval 1 似乎会覆盖前面的100导致所有的输出都是每个时间步都输出?"
                   
                   writeFields     true;
            
                   regionType      all;
                   operation       volAverage;
            
                   //weightField     alpha1;
            
                   fields
                   (
                       alpha.particles   
                       U.air
                       U.particles  
                       p
                       p_rgh
                   );
               }
            }
            
            
            
            1 条回复 最后回复 回复 引用
            • First post
              Last post