CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OF计算域中设置圆形相区域时出错

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

      想请教各位,我在OF自带的溃坝算例上进行了修改,试图将原来矩形相区域改为圆形,我使用了cylinderToCell给圆柱区域添加相分数,但是在setFields这一步出错,错误提示是说在cylinderToCell中没有找到定义的半径radius,可是我分明定义了半径大小。请各位指正问题,感谢。
      下面是错误提示:

      --> FOAM FATAL IO ERROR: (openfoam-2012)
      Entry 'radius' not found in dictionary "cylinderToCell"
      
      
      file: cylinderToCell at line 29 to 36.
      
          From bool Foam::dictionary::readCheck(const Foam::word&, T&, const Predicate&, Foam::keyType::option, bool) const [with T = double; Predicate = Foam::MinMax<double>]
          in file /home/pawan/OpenFOAM/OpenFOAM/OpenFOAM-v2012/src/OpenFOAM/lnInclude/dictionaryTemplates.C at line 372.
      
      FOAM exiting
      

      下面是我的setFieldsDict文件内容:

      defaultFieldValues
      (
          volScalarFieldValue alpha.water 0
      );
      
      regions
      (
          cylinderToCell
          {
              sourceInfo
      		{
      			p1 (0.5 0 0.85);
      			p2 (0.5 0.1 0.85);
      			radius 0.15;
      		}
              fieldValues
              (
                  volScalarFieldValue alpha.water 1
              );
          }
      );
      
      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        你把radius放在{}外面试试

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

        A 1 条回复 最后回复 回复 引用
        • A
          AXY 0 @李东岳 最后由 编辑

          @李东岳 感谢东岳老师回复,这个问题解决了,把sourceInfo和大括号删掉就好了。现在setFields可以正常运行,不过程序运计算完成后有另一个问题就是结果中相区域无法显示。请问这是否是由于整体的计算域网格是矩形的,不能在网格上划出圆形区域,进而设置不同的相分数呢?
          可以正常运行:

          Create time
          
          Create mesh for time = 0
          
          Reading setFieldsDict
          
          Setting field default values
              Setting internal values of volScalarField alpha.water
          
          Setting field region values
              Adding cells with centre within cylinder, with p1 = (0.5 0.85 0), p2 = (0.5 0.85 0.1), radius = 0.15
              Setting internal values of volScalarField alpha.water
          
          End
          

          但是结果里显示不出设置的圆形相区域
          d2522547-e849-4466-b0ed-72aed25f9cbf-uTools_1655713375946.png

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

            1. 看一下你0文件夹的alpha是不是非均一的场
            2. 如果是非均一的,可能paraview没读取出来没关系
            3. 如果alpha是均一的,估计你写的区域有问题

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

            A 2 条回复 最后回复 回复 引用
            • A
              AXY 0 @李东岳 最后由 编辑

              @李东岳 感谢李老师回复,这个问题已经解决,是场设置的问题。

              1 条回复 最后回复 回复 引用
              • A
                AXY 0 @李东岳 最后由 编辑

                @李东岳 李老师,顺便想请教一下,of里面允许不同的液相拥有不同的重力加速度g值么?我想设置整体液体场处于失重状态,而setfields确定的相区域拥有正常的g值。

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

                  @axy-0 没有,g是一个均一的值。如果你要这么弄,需要在代码上处理一下。不过我不确定你是否可以设置某一相一个非常小的密度来实现。可能需要试试

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

                  A 1 条回复 最后回复 回复 引用
                  • A
                    AXY 0 @李东岳 最后由 编辑

                    @李东岳 再次感谢李老师回复,我后续按照您的指导试一下,另外再查阅一下其他资料学习学习

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