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中文网

Z

zhendong

@zhendong
关于
帖子
4
主题
2
群组
0
粉丝
0
关注
0

帖子

最新

  • ..token, expected <int> or '(', found on line 0: word 'Z'
    Z zhendong

    老铁们,一般报这种错怎么解决?
    a01bec9b-dbe4-484b-a741-3611893c01d3-image.png

    在本地可以多算几步,但是超算就出问题了


  • OF中在有限的计算域中怎么消去边界对气泡的影响
    Z zhendong

    @李东岳

    @李东岳 在 OF中在有限的计算域中怎么消去边界对气泡的影响 中说:

    既用小的计算域同时又能消除边界的强影响,从而达到使用cyclic边界条件

    算法上倒是有一些。比如那些advection边界条件。但是扩大计算域是最稳妥的方法。你这个是空炮么?可以设置非均匀网格处理。外围网格非常非常稀疏,里面足够细,也不会太多的网格。

    锯齿网格可能开始会有,但随着计算,表面张力的作用会变平

    李老师你好,算例的确是计算空泡的;

    扩大计算域的话,可能没办法满足我的需求,原因如下:

    • 气泡的间距是算例的一个主要变量,很需要近距离的情况
    • 如果足够远的话,循环边界条件可能就没有作用了
    • 非均匀网格的话,一方面无法确保在流体中的压力、速度的正确捕捉;其次在网格密-疏位置处,是不是会使得结果误差比较大呢?
    • 如果一开始就是锯齿网格的话,那后续的计算精度感觉不能保证。原因是在高的内压驱动下,初始泡的大小决定之后的每步计算结果,所以一开始的边界捕捉及其重要

    所以还是想咨询下,能不能一开始在0文件中就能很好的捕捉相分数场,粗的背景网格+细气泡边界网格,之后就用自适应网格计算。

    其次还问下advection边界条件的使用方法或相关链接

    麻烦李老师了~


  • OF中在有限的计算域中怎么消去边界对气泡的影响
    Z zhendong

    @zhendong 3D_string_bubble.tar.xz


  • OF中在有限的计算域中怎么消去边界对气泡的影响
    Z zhendong

    各位老铁你们好,我想请教OpenFOAM的一些问题,主要内容是

    • 使用blockMesh内存不够问题
    • 计算域不大的算例,边界会对计算结果产生很大影响,怎样设置边条可以达到精确结果
    • dynamicRefineFvMesh相关

    以下问题均在v8版本运行得到的,求解器是用的compressibleInterFoam,问题主要和气泡有关。

    1. 关于blockMesh能否画超大网格

    我想在超算上画一个网格,尺寸是$500 \times 500 \times 500$的立方体网格,使用方法是直接blockMesh,但是问题是这样做的话会报错,目测是超算的内存不够(已经128G),ICEM好像也有限制,大概$400^3$左右;

    86f478b6-0d6e-49a7-9391-0bf671b1e223-image.png

    现在的问题是怎样用blockMesh画$500^3$或更大的网格,可以并行画吗?还是只能加内存?

    2. 对于及串气泡组,如何设置边界条件并消去边界对它的影响

    想要模拟的是这样子的(记算例A):

    a996403c-d709-4ab6-bec2-86ba37ccb82a-image.png

    它的网格是这样子的:

    convertToMeters 0.01;
    
    box_len     1;
    z_len       0.25;
    node        200;
    z_node      50;
    
    vertices
    (
        (0 0 0)
        ($box_len 0 0)
        ($box_len $box_len 0)
        (0 $box_len 0)
        (0 0 $z_len)
        ($box_len 0 $z_len)
        ($box_len $box_len $z_len)
        (0 $box_len $z_len)
    );
    
    blocks
    (
        hex (0 1 2 3 4 5 6 7) ($node $node $z_node) simpleGrading (1 1 1)
    );
    
    edges
    (
    );
    
    boundary
    (
        box_wall
        {
            type patch;
            faces
            (
                (0 4 7 3)//lift
                (2 6 5 1)//right
                (4 5 6 7)//frant
                (0 3 2 1)//back_xoy
            );
        }
        syclic_top
        {
            type                cyclic;
            neighbourPatch      syclic_bottom;
            faces
            (
                (3 7 6 2)//top
            );
        }
        syclic_bottom
        {
            type                cyclic;
            neighbourPatch      syclic_top;
            faces
            (
                (1 5 4 0)//bottom_xoz
            );
        }
    );
    
    mergePatchPairs
    (
    );
    

    (图中上下是cyclic的边界条件)

    其他边界条件类似:

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        box_wall
        {
            type            pressureInletOutletVelocity;
            value           $internalField;
        }
        "syclic_.*"
        {
            type            cyclic;
            value           $internalField;
        }
    }
    
    // ************************************************************************* //
    
    

    结果是这样子的:

    bc28ffa5-dcfb-4a0a-9577-a18915bc993d-image.png

    右图上下是cyclic边界条件,气泡接近计算边界了

    一开始感觉似乎应该是这个样子的,但是不太放心,后来把六个面都换成patch类型(记算例B),发现结果类似,都是慢慢变成椭圆泡。

    而当我用问题一中的网格($300^3$),边界设置同算例B(记这个算例为C),发现半径结果如下:

    847e9b63-884e-42a4-87e3-a04b1c757f63-image.png

    红色是理论解,绿色是算例C的结果,蓝色是算例B的结果,橙色是算例A的结果。对比A,B发现近边界对结果影响及其巨大,即使设置成流体自由出入的方法也不行。

    因此想咨询下有比较好的解决方法吗?既用小的计算域同时又能消除边界的强影响,从而达到使用cyclic边界条件

    3.自适应网格对初始网格较小的情况下似乎不太实用

    在dynamicFvMeshDict修改文件为:

    dynamicFvMesh   dynamicRefineFvMesh;
    refineInterval  1;
    field           alpha.water;//加密什么场
    lowerRefineLevel 0.001;
    upperRefineLevel 0.999;
    unrefineLevel   20;
    
    nBufferLayers   3;
    maxRefinement   4;
    maxCells        1000000;
    correctFluxes
    (
        (phi none)
        (nHatf none)
        (rhoPhi none)
        (alphaPhi0.water none)
        (ghf none)
    );
    dumpLevel       true;
    

    一般来说,我想用这样的自适应网格来处理背景网格不是那么密集的算例。理想结果是既能用不是太密的均匀背景网格算好液体中的压力、速度等物理量,又可以用自适应网格在边界进行加密达到好的捕捉效果。

    但是问题是在不密集的背景网格下使用setFields命令后,初始得到的气泡过于小,从而再局部加密就成为一个格子的方形气泡;除此之外,网格多了锯齿感比较明显,这个是不可避免的吗?

    7bd23c8e-8df6-481b-b9f7-63a8f1f9d39c-image.png

    这块的主要问题还是如标题所描述的,能不能让自适应网格捕捉0步的边界,在较粗的背景网格下,让第一步就有非常光滑、密集的边界呢?该怎么操作?

    感谢!

    暂时就三个问题,希望大佬们给点帮助~

    (另外还有个问题,如果一次性模拟多个气泡,能不能有捕捉每个气泡的方法,同时也需要考虑了气泡的运动)

  • 登录

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