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

火

火山口玩泥巴

@火山口玩泥巴
关于
帖子
66
主题
15
群组
0
粉丝
2
关注
0

帖子

最新

  • compressibleInterDyMFoam计算近壁空化泡出现奇怪的结果
    火 火山口玩泥巴

    近期尝试使用compressibleInterDyMFoam计算近壁面空化泡的溃灭,但在计算一定时间后出现了一些与实际不符的现象。
    算例设置如下:
    初始气泡半径R0=0.1mm,距离壁面距离λ=2,原计算域大小为5mm5mm1mm,实际计算域取其1/4。草图如下:
    1265c60d-3e45-457e-84df-081f40874abd-image.png
    初始网格密度为Δx=Δy=Δz=0.025mm。后续用自适应网格进行加密,dynamicMeshDict:

    FoamFile
    {
    version 2.0;
    format ascii;
    class dictionary;
    location "constant";
    object dynamicMeshDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dynamicFvMesh dynamicRefineFvMesh;
    
    //dynamicFvMesh staticFvMesh;
    
    dynamicRefineFvMeshCoeffs
    {
    // How often to refine
    refineInterval 1;
    
    // Field to be refinement on
    field alpha.water;
    
    // Refine field inbetween lower..upper
    lowerRefineLevel 0;
    upperRefineLevel 0.999;
    
    // If value < unrefineLevel unrefine
    unrefineLevel 10;
    
    // Have slower than 2:1 refinement
    nBufferLayers 3;
    
    // Refine cells only up to maxRefinement levels
    maxRefinement 5;
    
    // Stop refinement if maxCells reached
    maxCells 6000000;
    
    // Flux field and corresponding velocity field. Fluxes on changed
    // faces get recalculated by interpolating the velocity. Use 'none'
    // on surfaceScalarFields that do not need to be reinterpolated.
    correctFluxes
    (
    (phi none)
    (nHatf none)
    (rhoPhi none)
    (alphaPhi none)
    (alphaPhiUn none)
    (alphaPhi10 none)
    (alphaPhi1Corr0 none)
    (ghf none)
    
    );
    
    // Write the refinement level as a volScalarField
    dumpLevel true;
    }  
    

    计算到10.2μs后,气泡突然从溃灭状重新开始增大,而并没有完全溃灭,如图所示。
    10.2μs:
    a833b3e2-ebc9-43b4-8363-d153ec8db0e0-10.2um.png
    10.4μs:
    e248f2ea-78d2-4100-a3a9-551f88c499e3-10.4um.png

    想问问大家这是什么原因所导致的,可能会是初始场设置不合理或是边界条件设置不合理?
    初始场由于初始网格较疏以及后续加密的缘故,几个时间步后会变成这样:
    170ce1d8-861d-4cfb-857b-2e2da4ed06eb-初始场.png

    边界条件如下所示:
    alpha.water:

    boundaryField
    {
        wall
        {
            type            zeroGradient;
        }
        outlet
        {
            type            zeroGradient;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    p:

    boundaryField
    {
        wall
        {
            type            calculated;
            value           uniform 100000;
        }
        outlet
        {
            type            calculated;
            value           uniform 100000;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    p_rgh:

    boundaryField
    {
        wall
        {
            type            fixedFluxPressure;
            gradient        uniform 0;
            value           uniform 100000;
        }
        outlet
        {
            type            fixedFluxPressure;
            gradient        uniform 0;
            value           uniform 100000;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    T:

    boundaryField
    {
        wall
        {
            type            zeroGradient;
        }
        outlet
        {
            type            zeroGradient;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    T.air:

    boundaryField
    {
        wall
        {
            type            zeroGradient;
        }
        outlet
        {
            type            zeroGradient;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    T.water:

    boundaryField
    {
        wall
        {
            type            zeroGradient;
        }
        outlet
        {
            type            zeroGradient;
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

    U:

    boundaryField
    {
        wall
        {
            type            noSlip;
        }
        outlet
        {
            type            zeroGradient;
            value           uniform (0 0 0);
        }
        symmetry
        {
            type            symmetry;
        }
    }
    

  • 使用cavitatingfoam模拟气泡溃灭
    火 火山口玩泥巴

    @李东岳 老师,请问我想算空化泡溃灭,但似乎compressibleInterFoam并不包含传质项?是要自己改成compressibleInterPhaseChangeFoam嘛?


  • surfaceScalarField可视化后处理方法?
    火 火山口玩泥巴

    @李东岳 过奖了老师:mianmo:


  • surfaceScalarField可视化后处理方法?
    火 火山口玩泥巴

    问题解决了:我之前一直忘记了一个事情,就是paraview是可以直接显示边界值的,即使是volScalarField。而我的surfacaScalarField的非0值也仅存在于边界上。所以最简单的办法就是将surfaceScalarFIeld输出文件里的

        class       surfaceScalarField;
    

    改成:

        class       volScalarField;
    

    让paraview将其识别为volScalarField即可。


  • surfaceScalarField可视化后处理方法?
    火 火山口玩泥巴

    @李东岳 但老师我看paraview里的面编号似乎和openfoam里的不一样啊?:135:


  • surfaceScalarField可视化后处理方法?
    火 火山口玩泥巴

    如题,计算过程中得到了一个仅在边界上有非0值的surfaceScalarField,想用后处理软件看一下这个标量场在边界上的分布情况,但似乎paraview没法直接处理面心场的?参考了CFD Online上的一些方法:用foamToVTK -surfaceField提取出来这个场,接着用paraview打开得到的vtp文件,再添加glyph过滤器。但这种方法得到的效果会很差,因为似乎是把这个标量场作为point data进行处理了,并不能得到平常的那种云图效果。效果如下:
    1e21233c-04a0-42c8-8bf9-84c2c09f891d-image.png
    请问各位大佬们有什么好的方法来解决这个问题呢?


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    @李东岳 好的老师,我再测试测试看看效果。也可能是因为我没有用OpenFOAM自己的ThirdParty来编译那部分库,而是使用的自己下的scotch对一部分进行编译导致的。


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    这个是我在MacOS上测试的,同时我也在Ubuntu24.04上测试了,会出现一样的问题(即前后两次划分区域不一致)。所用的scotch库的版本分别为7.0.7和7.0.4。


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    @李东岳 抱歉老师前两天在忙别的。是v2312版本。


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    @李东岳 老师,我没有采用不同的decompose方法,为了图方便均采用scotch,但前后两次划分结果竟然是不同的,这点让我很不解:136:


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    @李东岳 在 OpenFOAM并行计算不同进程数下获取场的积分值不同 中说:

    scalar meshVolume(0);
    forAll(mesh.V(),cellI)
    {
    meshVolume += mesh.V()[cellI];
    }

    Pout << "Mesh volume on this processor: " << meshVolume << endl;
    reduce(meshVolume, sumOp<scalar>());
    Info << "Total mesh volume on all processors: " << meshVolume << endl;

    老师,您的代码我测试了,结果如下:
    四核:

    [0] Mesh volume on this processor: 829.44
    [1] Mesh volume on this processor: 1320.32
    [2] Mesh volume on this processor: 718.72
    [3] Mesh volume on this processor: 1499.52
    Total mesh volume on all processors: 4368
    

    双核:

    [0] Mesh volume on this processor: 2177.28
    [1] Mesh volume on this processor: 2190.72
    Total mesh volume on all processors: 4368
    

    但是domainIntegrate这个函数的作用不就是为了整合各个计算域之间的结果吗:

    domainIntegrate(phi) = gSum(fvc::volumeIntegrate(phi));
    

    同时我测试了另一个网格,用24核和36核算了一段时间后发现两者相同时间下差距较小,感觉应该不是某一个核心的结果,而更像是误差?
    d35b8301-5575-4f3f-a069-39d31c3892dd-image.png 784bdb80-c837-439c-bf76-0c56f82b271e-image.png

    同时还想请教一个问题,就在刚刚我发现前后两次不改任何设置的情况下,进行decompose操作(scotch方法)得到计算域划分结果竟然是不同的:
    464b6812-f1ff-440b-91ae-e54c881f8d61-image.png
    进而导致一个计算正常进行,一个计算一段时间就发散了,这是什么原因?


  • OpenFOAM并行计算不同进程数下获取场的积分值不同
    火 火山口玩泥巴

    如题,我尝试使用如下方法获取alpha2在整个计算域上的积分值:

    scalar globalAlphaV = fvc::domainIntegrate(alpha2).value();
    

    但令我不解的是,当我分别尝试用单核、双核、4核进行计算,得到的globalAlphaV的结果却不同,这是为什么?
    单核:

    t           value
    0.00120482  0
    0.00265769  6.08302e-07
    0.00439595  1.09555e-06
    0.00647429  1.2463e-06
    0.0089355  1.33113e-06
    0.0118731  1.38863e-06
    0.0153981  1.38907e-06
    0.0196282  1.86323e-06
    0.0246515  2.1633e-06
    0.0304475  2.7274e-06
    0.0374028  3.00516e-06
    0.0452274  3.34962e-06
    

    双核:

    t           value
    0.00120482  0
    0.00265769  2.03837e-06
    0.00439595  1.92813e-06
    0.00647429  2.09112e-06
    0.0089355  2.13259e-06
    0.0118731  2.12188e-06
    0.0153981  2.22201e-06
    0.0196282  2.49843e-06
    0.0246515  2.58062e-06
    0.0304475  2.77294e-06
    0.0374028  2.95374e-06
    0.0452274  3.17708e-06
    

    四核:

    t           value
    0.00120482  0
    0.00265769  2.96666e-07
    0.00439595  1.55379e-07
    0.00647429  2.30832e-07
    0.0089355  4.49495e-07
    0.0118731  5.51889e-07
    0.0153981  6.1708e-07
    0.0196282  6.46681e-07
    0.0246515  7.35564e-07
    0.0304475  7.13041e-07
    0.0374028  8.00214e-07
    0.0452274  8.97498e-07
    

  • refineMesh加密网格出现错误
    火 火山口玩泥巴

    我尝试用refineMesh进行多层加密,第一层加密完成后,在其内部的一个子区域进行第二次加密时,出现useHexTopology specified but cell 5018638 on face 7394 of patch bottom is not a hex的问题,我检查发现5018638单元并不在我的第二次加密区域内,为什么仍然要检查他是否为hex?
    以下为refineMeshDict:

    set             expand7;
    
    coordinateSystem patchLocal;
    
    patchLocalCoeffs
    {
        patch           bottom;
        tan1            (0 0 1);
    }
    
    directions      ( tan1 tan2 );
    
    useHexTopology  yes;
    
    geometricCut    no;
    
    writeMesh       no;
    

    如果改用geometricCut会不会导致网格质量下降?


  • of中的多相流求解器
    火 火山口玩泥巴

    @dzw05 因为limitSum仅仅对anti diffusion flux进行限制,在限制完后再和低阶格式组装成总通量:134:


  • 大规模算例paraview看结果的一种方法
    火 火山口玩泥巴

    @xpqiu 好的谢谢:mianmo:


  • 大规模算例paraview看结果的一种方法
    火 火山口玩泥巴

    @火山口玩泥巴 因为准备申请个学校的云主机进行后处理,计算时用了128核,现在申请云主机的核数也需要至少128吗?


  • 大规模算例paraview看结果的一种方法
    火 火山口玩泥巴

    请问使用这个功能的时候,需要保证cpu核数大于等于并行时decompose的数吗?


  • 多相流计算中入口的速度过小导致计算结果不符
    火 火山口玩泥巴

    想尝试与一篇文献中实验结果作对比,但根据文中所提供的条件算出的入口速度很小(0.18m/s),以此作为入口的边界条件;同时入口边界的alpha.water也固定为1,计算一段时间后如图所示,发现入口处几乎没有水相的存在了。这是为什么?

    ae0a7d49-651d-4636-a27b-c8a0ff4b9334-image.png

    入口处的边界条件如下:

    U
    {
            type            fixedValue;
            value           uniform (0.18 0 0);
    }
    
    p_rgh
    {
            type            zeroGradient;
    }
    
    alpha.water
    {
            type            fixedValue;
            value           uniform 1;
    }
    
    alpha.air
    {
            type            zeroGradient;
    }
    

  • 三相空化计算明渠流动失败
    火 火山口玩泥巴

    @李东岳 LES和laminar都试过,只要把空化核数降一些就不会发散。


  • 三相空化计算明渠流动失败
    火 火山口玩泥巴

    @李东岳 是的老师,OF没提供三相空化的标准求解器,只能自己改着用,但又没啥经验,总怕自己改的这玩意稳定性太差。关键我对湍流模型了解的太浅了,k和omega越界这个东西我想改都无从下手。

  • 登录

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