OpenFOAM重叠网格



  • 请问OpenFOAM中如何将2套网格合在一起,并且保留原来的特征,但不是像mergeMesh那样将boundary合并。我先用snappyHexMesh做了移动的网格,之后用blockMesh做背景网格,发现之前的网格被覆盖了;如果先用blockMesh做2套网格,再用snappyHexMesh,发现2套网格合并在一起。我用的版本是OpenFOAM-v1706。



  • OpenFOAM中如何将2套网格合在一起,并且保留原来的特征,

    你是说单独两个不相关,不重叠的网格放在一起,用一个求解器求解?



  • 背景网格和组件网格分别生成,重叠区域的边界设置成overset,边界处求解,中间重叠的部分插值。我对求解器内部求解过程不是很清楚。之前用blockMesh生成2个重叠的block,重叠区域的边界设置成overset,可以求解。



  • 哦,用重叠网格设置算例?这个我没尝试过。
    @wwzhao 是重叠网格专家,有请 :big_mouth:


  • OpenFOAM教授

    没看明白问题是什么。。。



  • 我想用snappyHexMesh做一个导入stl几何形体的组件网格,用blockMesh做背景网格,之后设置重叠网格算例。
    但如果先用snappyHexMesh,后用blockMesh,组件网格就被背景网格覆盖了;如果先做背景网格,后做组件网格,用snappyHexMesh后两套网格合在一起,也不能进行后续求解。


  • OpenFOAM教授

    @stergopilot 哦,那你应该在两个目录分别生成两套网格,然后用mergeMesh命令把两套网格合并起来。



  • 好的,多谢,我试一试。



  • @stergopilot 您好,有一些重叠网格的问题想请教一下,能不能加下我qq或者微信呀541658583,谢谢!



  • @wwzhao 你好,请问mergeMesh具体怎么用呢?需要添加那些信息或者有没有算例啊?


  • OpenFOAM教授

    @lv1995 OpenFOAM v1706之后的版本提供了重叠网格的示例算例,里面有mergeMesh的用法。



  • @wwzhao 您好,我在用overset网格做仿真,在背景网格通过边界条件生成波浪,但是当波浪到子网格中的时候就会出现锯齿形状甚至出现很乱的流动,明明波浪还未碰到物体。请问是不是overset本身的问题,还是我网格没配置好?背景网格和子网格的网格密度要什么关系 呢?搜狗截图20190625152710.png

    谢谢您的解答。


  • OpenFOAM教授

    @kennyadapter 应该是算例设置问题。能否看下你的网格、速度和压力场?



  • @wwzhao 非常感谢您的回复。
    我的两套网格是都是通过blockMesh建立的方形区域,配置文件如下:
    背景网格:

    vertices
    (
        (0 0.09 -1.5)
        (2.5 0.09 -1.5)
        (2.5 0.11 -1.5)
        (0 0.11 -1.5)
        (0 0.09 1)
        (2.5 0.09 1)
        (2.5 0.11 1)
        (0 0.11 1)
    );
    
    blocks
    (
        hex (0 1 2 3 4 5 6 7) (500 1 500) simpleGrading (1 1 1)
    );
    
    edges
    (
    );
    
    boundary
    (
        // Dummy patch to trigger overset interpolation before any other
        // bcs
        oversetPatch
        {
            type overset;
            faces ();
        }
        stationaryWalls
        {
            type wall;
            faces
            (
                (0 3 2 1)
            );
        }
    
        inlet
        {
            type patch;
            faces
            (
                (0 4 7 3)
            );
        }
        outlet
        {
            type patch;
            faces
            (
         (2 6 5 1)
            );
        }
    
        frontAndBack
        {
            type empty;
            faces
            (
                (1 5 4 0)
                (3 7 6 2)
             
            );
        }
    
    
        atmosphere
        {
            type patch;
            faces
            (
                (4 5 6 7)
            );
        }
    );
    
    mergePatchPairs
    (
    );
    
    

    子网格:

    convertToMeters 1;
    
    vertices
    (
        (0.275 0.09 -0.1)
        (0.875 0.09 -0.1)
        (0.875 0.11 -0.1)
        (0.275 0.11 -0.1)
        (0.275 0.09 0.4)
        (0.875 0.09 0.4)
        (0.875 0.11 0.4)
        (0.275 0.11 0.4)
    );
    
    blocks
    (
        hex (0 1 2 3 4 5 6 7) inletChannel (230 1 100) simpleGrading (1 1 1)
    );
    
    edges
    (
    );
    
    boundary
    (
            sides
        {
            type overset;
            faces
            (
                (0 3 2 1)
                (2 6 5 1)         
                (0 4 7 3)
                (4 5 6 7)
            );
        }
    
        frontAndBack
        {
            type empty;
            faces
            (
                (1 5 4 0)
                (3 7 6 2)
            );
        }
    
        floatingObject
        {
            type wall;
            faces ();
        }
    );
    
    

    在子网格用snappyHexMesh生成楔形:
    c1bc526e-c2ae-4da1-8b2b-9c997df5c9bd-image.png
    将两套网格结合起来:
    656482db-19ad-455a-b5a1-a345bd1487d6-image.png
    速度边界条件:

    boundaryField
    {
        #includeEtc "caseDicts/setConstraintTypes"
    
        inlet
        {
            type            waveVelocity;
            value           uniform (0 0 0);
        }
    
        outlet
        {
            type            waveVelocity;
            value           uniform (0 0 0);
        }
        stationaryWalls
        {
            type            fixedValue;
            value           uniform (0 0 0);
        }
        atmosphere
        {
            type            pressureInletOutletVelocity;
            value           uniform (0 0 0);
        }
        floatingObject
        {
            type            movingWallVelocity;
            value           uniform (0 0 0);
        }
    }
    
    

    压力:

    boundaryField
    {
        inlet
        {
            type            fixedFluxPressure;
            value           uniform 0;
        }
    
        outlet
        {
            type            fixedFluxPressure;
            value           uniform 0;
        }
    
        oversetPatch
        {
            type            overset;
        }
        stationaryWalls
        {
            type            fixedFluxPressure;
        }
        atmosphere
        {
            type            totalPressure;
            p0              uniform 0;
            U               U;
            phi             phi;
            rho             rho;
            psi             none;
            gamma           1;
            value           uniform 0;
        }
        floatingObject
        {
            type            fixedFluxPressure;
        }
        overset
        {
            patchType       overset;
            type            fixedFluxPressure;
        }
    }
    
    

    速度场:
    08204e9b-b51b-4157-a093-c7a9a84d66a0-image.png
    压力场:
    26234d4e-e006-4793-a11a-d3eca75c1f66-image.png



  • @wwzhao 打扰您了!
    alphawater:

    4a112c1f-7c10-4f68-8d0f-1b4ecc117f4d-image.png



  • @wwzhao 老师方便的话能加一下QQ讨论么,我的QQ号码:1219854212,非常感谢您


  • OpenFOAM教授

    @kennyadapter

    我不用QQ。建议你做后处理的时候把洞单元过滤掉。

    你可以试下用同样的算例、边界条件,不用重叠网格,看看波浪会不会出现这种情况。



  • @wwzhao 谢谢您的回复!



  • @kennyadapter 您好,您用的是2D overset网格吗?
    是的话,SNAPPY之后不是要extrudemesh一下,这个有什么要注意的问题吗?
    因为我merge之后,两套网格不在一个平面上。。



  • @VamosZhi 如果是2D的话是要extrudemesh一下,不过要注意下方向和起始面。我一开始也遇到过这个问题,试着改一下

    flipNormals true;
    

    这个参数,这个跟方向有关系,如果不行

    sourcePatches (front);
    exposedPatchName Back;
    

    尝试改一下这两个,,换一下顺序



  • @VamosZhi 请问怎么去掉洞单元和后面的背景单元?paraview做了slice后背景单元的初始自由面总是存在,想把它去掉。



  • @netbuger 哥,目前我还没有到后处理的那一步,到了跟你继续交流!



  • @netbuger 在clip中clip type选择scalar然后在下面选择CELLtype,,调整为1就行


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2