Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. OF如何创建内部面,该面不影响流场,但可以监测流量

OF如何创建内部面,该面不影响流场,但可以监测流量

已定时 已固定 已锁定 已移动 OpenFOAM
18 帖子 4 发布者 12.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W 离线
    W 离线
    wwj
    写于 最后由 编辑
    #1

    c0915a77-4ddc-45d8-ac9d-e5db2b95812b-image.png

    1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    写于 最后由 编辑
    #2

    创建一个 faceZone 就可以了。可以在画完网格之后用 topoSet 来创建,如果用snappyHexMesh 画网格,也可以直接在生成网格阶段就把 faceZone 生成出来。
    然后,用surfaceFieldValue 这个functionObject,设置位监控指定 faceZone 上面的流量

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #3

    @xpqiu 非常感谢,我试试😄

    1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    写于 最后由 编辑
    #4

    简化模型---> 目的是监测中间面trans的流量 5b2ea749-7642-4918-b2e8-e00f0f33e612-image.png
    snappyHexMesh怎么生成trans这个监测面呢(面的几何信息,坐标大小)。还是在triSurface文件夹下stl文件中创建。
    580a4f70-b98b-4e90-b058-74789fd7fa40-image.png
    controlDict文件
    9c78d542-f3f1-4f8f-813a-bc085eeb7f1e-image.png
    按照您说的思路来的但是有些具体问题我还是不怎么明白,刚用snappyhexmesh很多不太懂,您看看怎么修改才能实现我想要的功能呢,能具体一点吗,万分感谢!

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 wwj 最后由 编辑
    #5

    @wwj

    首先,把你的监控面单独保存到一个 stl 里面
    然后,snappyHexMesh 里面按照你上面图片那样,定义faceZone,比如定义为 faceZone trans; ,这个trans 就是你的faceZone 名字了。

    functionObject里面,regionType 改为 faceZone,name 就是 trans,应该就可以了。

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #6

    @xpqiu我这样设置了,网格就变成inlet tube trans这三个了,outlet就消失了,边界条件里面也不显示,我再试试。

    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 wwj 最后由 编辑
    #7

    @wwj

    你需要把 trans 单独拿出来作为一个单独的 stl文件,而不要让它是 test 文件的一部分。

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 wwj 编辑
    #8

    @xpqiu,我分开试了也不行,您看看还有其他问题吗

    
    //-----------------------------------------------------------
    geometry
    {
        geo1.stl    //文件名
        {
            type triSurfaceMesh;
            name test1; 
            regions
            {                  			
                tube
                {name tube;}	
                outlet
                {name outlet;}
                inlet
                {name inlet;}
            }
        }
        geo2.stl    //文件名
        {
            type triSurfaceMesh;
            name test2; 
            regions
            {                  			               
               trans
               {name trans;}	
            } 
        }      
    }
    
    castellatedMeshControls
    {
        maxLocalCells 100000;                   //单核最大网格量
        maxGlobalCells 2000000;                 //全局最大网格量
        minRefinementCells 0;                   //最小细化单元数
        maxLoadUnbalance 0.10;                  //最大负载平衡参数(0-1)
        nCellsBetweenLevels 2;                  //缓冲层数(1表示不过渡)
        resolveFeatureAngle 60;		            //自动检测角.值越小,锐利边缘的分辨率越好。	
        planarAngle 30;                         //如果未指定,则与resolveFeatureAngle相同
        allowFreeStandingZoneFaces true;        //允许有独立面
        locationInMesh (10 0 0);               //网格域控制点
    
        //-----------------------------------------------------------
        features     //特征的细化参数.允许显式的特征边缘细化,并为由其边缘相交的任何像元选择一个级别。
        (
            {
                file "geo1.eMesh";   //surfaceFeatures命令自动创建在triSurface/下,注意名称/surfaceFeaturesDict一致.
                level 0;
            }
            {
                file "geo2.eMesh";   
                level 0;
            }
         
        );   
        //-----------------------------------------------------------
        refinementSurfaces  //Surface based refinement
        {
           test1
           {
               level (0 0);	               
                regions
                {
                    tube
                    {level (1 1); patchInfo {type wall;}}	                
                    inlet
                    {level (1 1); patchInfo {type patch;}}
                    outlet
                    {level (1 1); patchInfo {type patch;}}	
     	                        
                }       
            } 
            test2
            {
                level (0 0);	               
                 regions
                 {         
                    trans
                    {level (1 1); faceZone trans;  }                              
                 }       
             }                                      
        }
        //-----------------------------------------------------------
        refinementRegions   //Region-wise refinement
        {
      
        }
        //-----------------------------------------------------------  
    }
    
    
    
    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 wwj 最后由 编辑
    #9

    @wwj 在 OF如何创建内部面,该面不影响流场,但可以监测流量 中说:
    改成这样:

            test2
             {
                 level (0 0);	               
                  regions
                  {         
                     trans
                     {level (1 1);  }                              
                  } 
               faceZone trans;      
             }                           
    
    
    W 2 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #10

    @xpqiu 成功啦,困扰我好几天了,谢谢您了😁

    1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #11

    @xpqiu
    snppyhexmesh 用您说的方法可以监测内部面,但有个新的问题是,生成边界层网格后内部面边缘就被边界层挤掉了,造成监测面面积变小。加密内部面边缘后,也存在面积偏小,并且影响边界层。这里为了显示该面,增加了faceType baffle。具体如下图所示:
    590f0107-fba1-423e-b93e-a7ed45d7360e-image.png

    后来又想到您说的第一个方法,用topoSet,但不知道sourceInfo怎么写,卡到了这里

    actions
    (
        {
            name   trans; // 给所生成的集合命名
            type    faceZoneSet;   // 需要生成的集合类型,有pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet
            action  new;      // 操作类型,new/add/delete/subset/clear/invert/remove
            source  setToFaceZone; // 操作对象, pointToCell/boxToCell等
            sourceInfo  // 操作对象的信息
            {
               //不知福怎么描述trans这个面
            }
        }
    );
    
    
    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 wwj 最后由 编辑
    #12

    @wwj

    给你一个格式参考一下

        {
            name    samplingFace;
            type    faceSet;
            action  new;
            source  boxToFace;
            box     (2.6 0.75 0)(2.64 0.8 0.1);
        }
        {
            name    samplingFace;
            type    faceZoneSet;
            action  new;
            source  setToFaceZone;
            faceSet    samplingFace;
        }
    

    要创建 faceZone 得先创建 faceSet,上面第一部分是创建 faceSet,第二部分是根据 faceSet 创建 faceZone。
    创建faceSet 的时候,你需要仔细设置 box 坐标,保证这个 box 只会框选到你需要的面(面心在这个box的face都会提取到faceSet中)。

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #13

    @xpqiu采用这种方法解决了边界层挤掉面的问题,但生成的faceZone如图1所示,如果选取的box比较薄的话,生成的面不全。
    e62cc17a-4a4f-46ad-81b4-e8a90424b28c-image.png
    box比较厚的话,生成的面是这样,监测的流量也不对。
    35115d21-5abb-474d-9b1d-7a24f91e4577-image.png

    topoSetDict文件

    actions
    (
        {
            name   preTrans; 
            type    faceSet;   
            action  new;       
            source  boxToFace;
            sourceInfo
            {
                box (20 -15 -15)(20.5 15 15);
            }       
        }
    
        {
            name    trans;
            type    faceZoneSet;
            action  new;
            source  setToFaceZone;
            sourceInfo
            {
                faceSet preTrans;
            }
            
        }
    );
    
    X 1 条回复 最后回复
  • X 在线
    X 在线
    xpqiu 超神
    在 中回复了 wwj 最后由 编辑
    #14

    @wwj
    所以说这个坐标你要精心地选择,从你的图看,显然你的x方向坐标选择不合理。
    假设有一层网格,x 坐标是 0.123456
    那么你的 toposet 里面, x 最小值设置为 0.123455,最大值设置为0.123457 ,这样就能保证只选到一层了。

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwj
    在 中回复了 xpqiu 最后由 编辑
    #15

    @xpqiu 调小坐标范围,问题解决了^_^

    1 条回复 最后回复
  • J 离线
    J 离线
    jinlinna
    写于 最后由 编辑
    #16

    你好,请问如果创建了一个faceZone,无法用surfaceFieldValue,怎么解决呢?
    163384c9-2aa4-4195-b9e8-6ac866b0d06e-image.png
    topoSet如下:
    c7845988-5ed4-4c22-80b3-57a94ff54342-image.png
    controlDict如下
    24bbebb0-a0cb-4f12-9508-33204306746f-image.png

    1 条回复 最后回复
  • 范准范 离线
    范准范 离线
    范准
    写于 最后由 编辑
    #17

    感谢两位的讨论,请问平面的stl文件应该怎么生成呢?我只会生成3D的stl

    范准范 1 条回复 最后回复
  • 范准范 离线
    范准范 离线
    范准
    在 中回复了 范准 最后由 编辑
    #18

    @范准 已解决

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]