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

Number44N

Number44

@Number44
关于
帖子
34
主题
4
群组
0
粉丝
1
关注
0

帖子

最新

  • 如何直接在linux下安装of
    Number44N Number44

    @MingfengWang 报什么错了?


  • multiphaseEulerFoam计算多相反应流发散(类似鼓泡床反应器)
    Number44N Number44

    OpenFOAM版本:OpenFOAM v9
    求解器 :multiphaseEulerFoam
    模拟对象:圆柱状鼓泡床反应器,多相流,液相反应,无液相进出,气相不反应,底部进气,顶部出气。
    算例来源:在tutorials的bubbleColumnEvaporatingReacting算例基础上修改而来,各相初始分布由setFields控制。

    问题:即使关掉反应,从数值迭代上看,多相流计算第一个时间步的PIMPLE循环的相分数计算发散,见下日志。存下第一个PIMPLE迭代结果看,气相和液相的基础相莫名其妙地在原本该是0的地方,变成了1,见下图。
    确认过setFields正确地初始化了相分布,上半部气相,下半部液相。由于第一次做多相流的算例,无法定位发散的原因是边界设置?constant的多相参数?相分数求解?还是别的问题?求各位大神指点一二,不胜感激。

    尝试过的操作:

    • 加松弛
    • 改矩阵迭代求解器,GAMG换PCG,smoothSolver换PBiCGStab
    • 调整气相液相和压力的出口边界类型为zeroGradient
    • 关掉反应
    • 加压力限制limitPressure
    • 将气相从multiComponentMixture改成pureMixture

    /*------------------------------------------------------------------------------
    算例:
    运行meshGen脚本生成网格,allrun脚本运行。
    f21a20e8-830b-41ca-8175-7667fab9ab9b-p2.tar.gz

    /*------------------------------------------------------------------------------
    计算日志,第一个时间步

    PIMPLE: Iteration 1
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    gas fraction, min, max = 0.4999984327 0.009998944 0.990001056
    liquid fraction, min, max = 0.5000016007 0.01 0.990001056
    Phase-sum volume fraction, min, max = 1.000000033 1 1.000001067
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    gas fraction, min, max = 0.4999968323 0.009997888113 0.9900010559
    liquid fraction, min, max = 0.500003201 0.01 0.9900021119
    Phase-sum volume fraction, min, max = 1.000000033 1 1.000001067
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    gas fraction, min, max = 0.499995232 0.009996832338 0.9900010559
    liquid fraction, min, max = 0.5000048013 0.01 0.9900031677
    Phase-sum volume fraction, min, max = 1.000000033 1 1.000001067
    smoothSolver:  Solving for NH4+.liquid, Initial residual = 1.484075337e-05, Final residual = 1.159761323e-16, No Iterations 2
    smoothSolver:  Solving for NO3-.liquid, Initial residual = 0, Final residual = 0, No Iterations 1
    smoothSolver:  Solving for O2.liquid, Initial residual = 0.2795617027, Final residual = 6.228131728e-16, No Iterations 2
    smoothSolver:  Solving for H+.liquid, Initial residual = 0, Final residual = 0, No Iterations 1
    Constructing momentum equations
    Tf.gasAndLiquid: min = 299.9947355, mean = 300.0339633, max = 300.0732112
    DILUPBiCGStab:  Solving for e.gas, Initial residual = 0.9999999986, Final residual = 7.01286441e-16, No Iterations 1
    DILUPBiCGStab:  Solving for e.liquid, Initial residual = 0.1121489206, Final residual = 1.679510257e-16, No Iterations 1
    gas min/max T 299.9857036 - 300.0249711
    liquid min/max T 299.9714439 - 300.032703
    DICPCG:  Solving for p_rgh, Initial residual = 0.9950749712, Final residual = 0.0007476549794, No Iterations 58
    DICPCG:  Solving for p_rgh, Initial residual = 0.01716581647, Final residual = 1.54813425e-05, No Iterations 40
    DICPCG:  Solving for p_rgh, Initial residual = 0.977211124, Final residual = 0.0007350869486, No Iterations 58
    DICPCG:  Solving for p_rgh, Initial residual = 0.01014511789, Final residual = 6.818727967e-12, No Iterations 107
    PIMPLE: Iteration 2
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    DICPBiCGStab:  Solving for alpha.gas, Initial residual = 5.821421844e-17, Final residual = 8.934357652e-34, No Iterations 1
    DICPBiCGStab:  Solving for alpha.liquid, Initial residual = 4.308481516e-17, Final residual = 7.155231175e-34, No Iterations 1
    gas fraction, min, max = 0.4310004415 -8.01486001 2.514951181
    liquid fraction, min, max = 0.571470277 -0.01414169716 9.01486001
    Phase-sum volume fraction, min, max = 1.002470718 0.9165471615 2.502164998
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    DICPBiCGStab:  Solving for alpha.gas, Initial residual = 4.38709213e-17, Final residual = 6.868609435e-34, No Iterations 1
    DICPBiCGStab:  Solving for alpha.liquid, Initial residual = 4.105585202e-17, Final residual = 6.57320396e-34, No Iterations 1
    gas fraction, min, max = 0.3970086899 -84.20635147 74.29030785
    liquid fraction, min, max = 0.632777971 -73.29030785 85.20635147
    Phase-sum volume fraction, min, max = 1.029786661 0.9005093894 99.99686523
    MULES: Solving for alpha.gas
    MULES: Solving for alpha.liquid
    DICPBiCGStab:  Solving for alpha.gas, Initial residual = 2.799140256e-17, Final residual = 4.373723282e-34, No Iterations 1
    DICPBiCGStab:  Solving for alpha.liquid, Initial residual = 3.729944455e-17, Final residual = 5.877805245e-34, No Iterations 1
    gas fraction, min, max = -7.192486694 -84273.15366 35913.14461
    liquid fraction, min, max = 0.7041286022 -35912.14461 84274.15366
    Phase-sum volume fraction, min, max = -6.488358091 -37604.99677 580.9315927
    smoothSolver:  Solving for NH4+.liquid, Initial residual = 0.0112574308, Final residual = 4.168831596e-13, No Iterations 13
    smoothSolver:  Solving for NO3-.liquid, Initial residual = 0, Final residual = 0, No Iterations 1
    smoothSolver:  Solving for O2.liquid, Initial residual = 0.2270999707, Final residual = 5.714438306e-13, No Iterations 12
    smoothSolver:  Solving for H+.liquid, Initial residual = 0, Final residual = 0, No Iterations 1
    Constructing momentum equations
    Tf.gasAndLiquid: min = 299.9711527, mean = 299.9985045, max = 300.0301728
    

    强行存下的第一次PIMPLE循环的结果,下半部应该全都0。
    5e042630-92c4-4ba5-ba00-ba9f28ba6b20-1653619214(1).png


  • WSL2 AMDR9 5950X 安装OPENFOAM 没有成功
    Number44N Number44

    @yupeng
    我在WSL2 Ubuntu20.04上装成功过paraview,apt那种装法的,后来崩了重装,装不上了,数据还丢失了。
    现在学聪明了,把WSL2当成一个程序,数据放在Windows下,在Windows下开paraview看,不容易出错和崩溃。就算WSL2崩溃了,重装也不会丢失数据。


  • 如何直接在linux下安装of
    Number44N Number44

    @韬智tz
    /----------------------分割线-------------------------/

    1. 前言
      适用场景:物理脱网工作站/集群,没root权限等场合。
      脚本环境:sh
      需要权限:无
      测试环境:Windows WSL2 Ubuntu20.04/计算集群
      OpenFOAM版本:OpenFOAM v6/v9
      一点小说明:源码编译报错很正常!不要慌!都是技术性调整! 调整心态,学会处理一些简单的编译错误,一般Bing/Google都能解决。这一点非常重要。不同的安装环境会出现五花八门的错误,淡定。
      前排提示:个人水平有限,以下文档肯定一定会有错以及不适合的地方,发现了再改,其余自行斟酌。

    2. 准备工作——GCC/MPI/Cmake
      这三个安装过程略过,下载tar.gz看README。
      安装前务必检查GCC版本是否适配,特别是安装OpenFOAM-extend,部分编译问题是版本的问题。
      2.1 MPI
      OpenFOAM提供丰富的MPI支持,一般使用OpenMPI和MPICH。
      对于集群使用者(非root),如果集群提供MPI,使用集群MPI,只需要确定MPI的类型和路径:which mpicc
      对于工作站使用者,在此强烈建议单独编译安装MPI,不要在Thirdparty中编译安装,方便多版本复用。
      在此,以path_to_mpi代表MPI路径。
      在你喜欢的位置新建一个sh脚本文件,把MPI路径和OpenFOAM的source命令写进去,例如:

    echo Loading OpenFOAM9 env
    export PATH=/home/otocolobus/software/mpich3.4.3-gcc9.4.0/bin:$PATH
    
    export MPI_ROOT=/home/otocolobus/software/mpich3.4.3-gcc9.4.0
    export MPI_ARCH_FLAGS="-DOMPI_SKIP_MPICXX"
    export MPI_ARCH_INC="-isystem $MPI_ROOT/include"
    export MPI_ARCH_LIBS="-L$MPI_ROOT/lib -lmpi"
    
    source $HOME/OpenFOAM/OpenFOAM-9/etc/bashrc
    

    然后再在根目录的.bashrc文件alias一个命令source这个文件,例如:

    alias of9='source $HOME/of9.sh'
    
    1. 编译参数设置
      OpenFOAM及Thirdparty的编译参数设置由etc下的文件控制,编译规则由wmake/rules控制。一般只要修改etc下的参数,部分集群可能需要修改编译规则。
      3.1 etc/bashrc
      修改WM_MPLIB的值,SYSTEMOPENMPI会自动检索系统上的OpenMPI参数(用得少,可能有误),MPICH需要修改etc/config.sh/mpi中的参数,SYSTEMMPI是调用系统中的其他MPI,一般集群管理员会知道怎么处理。其他MPI没用过,就不说了。
      3.2 etc/config.sh/mpi
      config.sh是OpenFOAM调用的设置,包括编译器、scotch、paraview、mpi等。
      对于MPICH,找到MPICH),修改MPI_HOME和MPI_ARCH_PATH的值为path_to_mpi,例如
    MPICH)
        export FOAM_MPI=mpich2-1.1.1p1
        export MPI_HOME=/home/otocolobus/software/mpich3.4.3-gcc9.4.0
    #$WM_THIRD_PARTY_DIR/$FOAM_MPI
        export MPI_ARCH_PATH=/home/otocolobus/software/mpich3.4.3-gcc9.4.0
    #$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
    
    1. Thirdparty编译
      Thirdparty是OpenFOAM可能用到的第三方库,但并不是所以都是必须的。
      在此建议:
      a) 只安装Scotch/Metis。
      b) GCC和MPI单独处理
      c) CGAL装不上就别装了。不装就把foamHexMesh的Allwmake全部注释掉。(不知道在哪里?报错的时候就知道了)
      d) paraView的依赖包比较多,别装了,计算集群打不开,工作站就导出数据换个地方处理。
      在Thirdparty目录下,运行Allwmake脚本编译安装
    ./Allwmake -j 4 >log.allwmake.log
    

    正常编译完再运行一次Allwmake脚本可以看的第三方库的安装情况,例如

    ========================================
    Start ThirdParty Allwmake
    ========================================
    
    ========================================
    Build MPI libraries if required
    
        have MPICH shared library (mpich2-1.1.1p1)
    
    
    ========================================
    Build Scotch decomposition library scotch_6.0.9
        /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/scotch_6.0.9
        scotch header in /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/scotch_6.0.9/include    scotch libs   in /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/lib
    
    ========================================
    Build PTScotch decomposition library scotch_6.0.9 (uses MPI)
        /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/scotch_6.0.9
    
        ptscotch header in /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/scotch_6.0.9/include/mpich2-1.1.1p1
        ptscotch libs   in /home/otocolobus/OpenFOAM/ThirdParty-9/platforms/linux64GccDPInt32/lib/mpich2-1.1.1p1
    ========================================
    Build Metis decomposition
        optional component Metis was not found
    
    ========================================
    Done ThirdParty Allwmake
    ========================================
    
    1. OpenFOAM编译
      OpenFOAM目录下运行Allwmake脚本编译安装
    ./Allwmake -j 4 >log.allwmake.log
    

    正常编译完再运行一次Allwmake脚本也可以看到各个库的安装情况。

    1. 测试
      全都编译通过后,找个算例检查一下blockMesh、串行、并行等功能是否正常。计算集群可能还要关注一下并行效率是否合理。

    Q&A:

    1. 在WSL2 Ubuntu20.04下安装时提示scotch缺zlib库,装上zlib后顺利安装。

  • 如何直接在linux下安装of
    Number44N Number44

    @韬智tz 我简单说一下吧。后续有需要我有空可以写个详细的教程。

    1. 检查集群/工作站的GCC、MPI版本以及路径;
    2. 下载解压两个源码包OpenFOAM和Thirdparty;
    3. 修改etc/bashrc和etc/config/mpi的mpi设置;
    4. 在Thirdparty/Allwmake里面关掉不必要/安装失败的库,例如MPI和CGAL(CGAL我长期装不上,不过这个库就一个我用不上的功能才会用到,关掉没所谓。)
      建议MPI单独安装,方便以后多版本共存复用。
    5. 编译Thirdparty,确保MPI和Scotch/metis装上了。
    6. 编译OpenFOAM本体,不装CGAL会有个库装不上,也一样关掉不编译就好,除非你要用那个库。
    7. 不要怕报错,学会看报错信息,慢慢改。

    (难道大家都不用源码编译的吗?!!!:135: )


  • 如何直接在linux下安装of
    Number44N Number44

    @韬智tz 为什么不直接源码编译呢。源码包的下载地址在Allwmake文件里面都有,下载下来,改一下路径就好了。
    因为一些特殊原因,我都是源码编译安装的,从来不需求联网。


  • openFoam interface 怎样设置?
    Number44N Number44

    检查一下constant/ployMesh/boundary里面的边界类型,应该是boundary里面类型是wall,和物理场的cyclicGgi边界类型不匹配。


  • 集群上并行测试OpenFOAM,并行效率并没有比单节点提升
    Number44N Number44

    @sjlouie91
    硬盘的读写只有刚开始和写结果的时候进行,迭代过程是不做硬盘读写的,除非频繁大量进行结果的存储,不然一般硬盘不太影响计算性能,更多受CPU的cache和内存影响。
    至于GAMG的参数,我选择抄
    PETSc4FOAM: a library to plug-in PETSc into the OpenFOAM framework
    里面提到的。


  • 集群上并行测试OpenFOAM,并行效率并没有比单节点提升
    Number44N Number44

    @sjlouie91
    从你这个结果看,scaling看上去还算线性,线性区间应该在256核前一点,峰值点在5万+网格/核,不算好,也不算特别差,峰值点和集群本身的性能有关,CPU,内存之类的,但至强系列的CPU应该没那么差。
    另外,不同的矩阵迭代算法的scaling不一样,CG类的scaling看上去很好,但绝对速度就那样,AMG类的scaling一般,但是真的快。


  • fsiFoam自带算例 ./Allrun 报错
    Number44N Number44

    没网格。看看是不是没有blockMesh或者blockMesh出错了。
    这个算例应该是有两句blockMesh命令了。

    blockMesh -case fluid
    blockMesh -case solid
    

  • 算例太大导致用paraview打开后加图层会自动关闭怎么办?
    Number44N Number44

    按理说不应该,我读过千万网格算例都没问题,就是操作的时候会卡顿。不过我是512核跑完之后reconstruct成一个时间点读的,没试过以processor形式读。
    另外,paraview读算例应该是吃内存和显存比较严重吧。我这边垃圾PC,显卡还是GT720而已,但是我插了24G内存。


  • fsiFoam 在 OpenFoam 2106 版本上编译的问题
    Number44N Number44

    @李子橙 不知道你用fsiFoam干嘛,但是fsiFoam的替代品还是有的,例如solids4Foam。


  • ICEM画的网格转到OpenFOAM,checkMesh非正交网格数量较多
    Number44N Number44

    经验之谈,如果是复杂翼型这种网格的话,用RANS算的问题应该不大,我算过挺多的了,开非正交修正,能算。
    不过还是想想法,尽量提高网格质量吧。


  • fsiFoam 在 OpenFoam 2106 版本上编译的问题
    Number44N Number44

    个人建议,水平不够,别折腾fsiFoam移植问题。
    我曾经搞过一段时间foam-extend-4.0上这个fsiFoam,foam-extend-4.0的基础库和基金会/ESI的OpenFOAM都有很大差别,移植需要改动的地方很多的。还不如overInterDyMFoam 反向移植过去foam-extend-4.0上。
    另外,fsiFoam调用的固体求解器存在严重的并行瓶颈问题,并行度刚过50,效率就插水了。


  • 请教OpenFOAM边界条件:如果出口的速度和压力未知如何设置
    Number44N Number44

    试试zeroGradient


  • 关于dyfluid.com上reactingTwoPhaseEulerFoam的验证算例
    Number44N Number44

    @李东岳
    没错就好。
    标尺调到0.1也不太行。话说张图算到什么时间点的,100s也没有出现图上两侧壁上清晰的分离气泡吖。


  • 关于dyfluid.com上reactingTwoPhaseEulerFoam的验证算例
    Number44N Number44

    dyfluid.com上提供了reactingTwoPhaseEulerFoam的较低相分数的气-液鼓泡床算例。 鼓泡床算例
    算完发现和网页提供的结果对不上,按我理解,网页上提供的CFD结果应该是气体的相分数吧。

    这是网页提供的结果
    11.png

    这是我下载网页提供的算例直接Allrun的结果
    22.png

    另外,我打算搞个生物反应器的模拟,主体和这个鼓泡床算例类似,但是还要加入溶液成分的输运,全域生物反应、全域化学反应和局部的物理吸附。全域化学反应这个求解器本身就支持,生物反应和局部物理吸附没有明确的公式描述,打算搞成源项弄进溶液成分的输运方程里面。请各位大佬指教一下,这个思路有没有毛病?


  • openfoam画上亿的网格
    Number44N Number44

    @李东岳 在 openfoam画上亿的网格 中说:

    各位大佬算出结果之后发来看看 :140:

    已经跑路在找下家,交接给别人了,看不到结果了。:xinlei:

    @氕氘-川 在 openfoam画上亿的网格 中说:

    @李东岳 两种方法,一种是用胖节点可以一次性画好,另一种是先画差网格(千万级别),之后多次refine就可以。我的总共用时3个小时,总共网格是2.6亿

    你这边节点内存是不是更大一点?


  • openfoam画上亿的网格
    Number44N Number44

    刚搞完这方面的测试,给点结果你参考一下。
    2T内存的FAT节点串行blockMesh至少可以生成10亿,即1024立方的网格,划分8192个processors,生成网格耗时2-3天左右,划分网格时间比较长,3-4天吧。
    snappyHexMesh那种加密背景网格的方法,64G内存的节点连1亿的网格生成都会爆内存,snappyHexMesh生成过程中,大量数据会集中在master节点,爆内存,其他slave节点消耗内存很小。
    既然在超算上,找超算要个FAT节点串行生成是比较有搞头的。毕竟2亿不算多。


  • 用rhoPimpleFoam计算飞机外流,为什么iteration为0
    Number44N Number44

    @好好科研 在 用rhoPimpleFoam计算飞机外流,为什么iteration为0 中说:

    @number44 我这个p和U的tolerance分别设置的是1e-8和1e-9,感觉挺小的,还要调的更小嘛

    通常来讲,够有多了,我一般就是1E-6到1E-8而已。

  • 登录

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