CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    如何由UPrime2Mean获得RMS速度?

    OpenFOAM
    3
    5
    1846
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 羽之下
      羽之下 最后由 李东岳 编辑

      在OF2.4中,以前是通过编译以下代码 ,获得RMS速度,然而在OF6.0中wmake编译时提示没有找到calc.H文件,后来grep一下,发现OF6.0竟然没有calc.H了,对比了OF2.4和OF6.0发现,OF6.0没有了$(WM_PROJECT_DIR)/src/postProcessing/整个文件夹,请问怎么破?你们又是怎么获得RMS速度的,paraview通过定义变量也可以解决,但是感觉有点麻烦。菜鸟一枚,求赐教!

      \*---------------------------------------------------------------------------*/
      
      #include "calc.H"
      #include "fvc.H"
      
      // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
      
      void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
      {
          IOobject UPrime2Meanheader
          (
              "UPrime2Mean",
              runTime.timeName(),
              mesh,
              IOobject::MUST_READ
          );
      
          if (UPrime2Meanheader.headerOk())
          {
              Info<< "    Reading UPrime2Mean" << endl;
              volSymmTensorField UPrime2Mean(UPrime2Meanheader, mesh);
      	
              volScalarField UPrime2x
              (
                  IOobject
                  (
                      "UPrime2x",
                      runTime.timeName(),
                      mesh,
                      IOobject::NO_READ,
                      IOobject::NO_WRITE
                  ),
      
                pow((UPrime2Mean.component(0)*UPrime2Mean.component(0)),0.25)
              );
        
              Info << "    Writing UPrime2x" << endl;
              UPrime2x.write();
      
      	volScalarField UPrime2y
              (
                  IOobject
                  (
                      "UPrime2y",
                      runTime.timeName(),
                      mesh,
                      IOobject::NO_READ,
                      IOobject::NO_WRITE
                  ),
                pow((UPrime2Mean.component(3)*UPrime2Mean.component(3)),0.25)
              );
              
              Info << "    Writing UPrime2y" << endl;
              UPrime2y.write();
      
      	volScalarField UPrime2z
              (
                  IOobject
                  (
                      "UPrime2z",
                      runTime.timeName(),
                      mesh,
                      IOobject::NO_READ,
                      IOobject::NO_WRITE
                  ),
                pow(sqrt(UPrime2Mean.component(5)*UPrime2Mean.component(5)),0.25)
              );
             
              Info << "    Writing UPrime2z" << endl;
              UPrime2z.write();
          }
          else
          {
              Info<< "    No UPrime2Mean" << endl;
          }
      
          Info<< "\nEnd\n" << endl;
      }
      
      
      // ************************************************************************* //
      

      高速旋转机械/旋风分离器/气固分离

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        你直接把他改写成后处理程序,int main()不就可以了么 :ok2:

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

        CFD高性能服务器 http://dyfluid.com/servers.html

        羽之下 1 条回复 最后回复 回复 引用
        • 就
          就是个胖子 最后由 编辑

          请问在tecplot中不能通过自定义方程处理吗?

          羽之下 1 条回复 最后回复 回复 引用
          • 羽之下
            羽之下 @李东岳 最后由 编辑

            @东岳 我试试。

            高速旋转机械/旋风分离器/气固分离

            1 条回复 最后回复 回复 引用
            • 羽之下
              羽之下 @就是个胖子 最后由 编辑

              @就是个胖子 嗯,是,可以,只是感觉略微有点麻烦。

              高速旋转机械/旋风分离器/气固分离

              1 条回复 最后回复 回复 引用
              • First post
                Last post