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

火

火山口玩泥巴

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

帖子

最新

  • 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越界这个东西我想改都无从下手。


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

    @李东岳 不是完全自己写的老师,是在interPhaseChangeFoam基础上改的,加了一个空气相进去。
    在粗网格下面,用interFoam来算,使用komegaSST,在一定的k和omega的边界条件下不会出现发散的情况;但用自己的求解器去算即使把相变系数调到0,k和omega的边条初条怎么调都还是会发散。


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

    直接先用upwind处理相方程了。然后尝试使用LES的话可以正常计算粗网格,前提是得把空化核密度降低两个数量级,否则出口处会出现奇怪的低压区,这里不懂为什么会这样。:134:

  • 登录

  • 没有帐号? 注册

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