Skip to content
  • 0 赞同
    2 帖子
    4k 浏览
    李东岳

    不是很清楚你说的那种涡脱落现象。不过用户指南中我记得有一章曾经表示,大体意思为:“如果用稳态求解器模拟比较强的非稳态问题会出现残差的震荡”。

    能否附稳态求解涡街的文献?谢谢。

  • 0 赞同
    2 帖子
    4k 浏览
    Q

    @yuan_neu 建议看看《张量分析》的相关课程
    二阶 【各向同性】的 【张量函数】 ( Dij(r) )
    只可能是上述 (6.25) 的表达形式

    所以,你首先要明白“张量”,其次再搞清楚“张量函数”的定义,然后需要理解“各向同性”的概念,最后才能明白 6.25 式是怎么推导出来的

    实际上,NS 方程的 Newton 本构关系,也是 “可以” 基于 【线性】和【各向同性】的假设直接写出来的 !

    推荐看看清华黄克智的《张量分析》教材

  • 0 赞同
    1 帖子
    3k 浏览
    Y

    无意间发现这个帖子,里面提到了normal turbulent model,
    https://www.cfd-online.com/Forums/openfoam/125473-low-reynolds-turbulence-models.html

  • 并行计算入门求解

    Algorithm
    6
    0 赞同
    6 帖子
    10k 浏览
    Q

    @Kingkong 搜如下教材

    高性能计算并行编程技术_MPI并行程序设计_[都志辉]:非常适合入门
    Using MPI :结合上一个教材一起看
    Iterative Methods for Sparse Linear Systems [ Yousef Saad ] :介绍 deomain decomposition 的数学理论

  • 0 赞同
    2 帖子
    4k 浏览
    李东岳

    If you dig deeper, 你会发现ThirdParty里面不是OpenFOAM基金会开发的。例如:paraFoam是paraview的插件,paraview属于Kitware,scotch属于法国的一个...看这里:链接文本。所以称作第三方包。

  • openfoam用到多少c++

    OpenFOAM
    2
    0 赞同
    2 帖子
    5k 浏览
    李东岳

    你好,

    这个问题OpenFOAM创始人Henry已经有过详细的阐述了:

    Henry:了解流体机理和计算流体力学更加重要。大多数CFD工程师并不需要经常编程,因为CFD代码已经非常成熟了,并且包含了非常多的功能。但是对于一个CFD工程师而言,很有必要了解到底什么是“物理”,什么是“边界条件”。这些都和流体动力学有关,而和编程关系不大。

    很好地了解CFD的概念在选择合适的数值方法、离散格式、时间步、松弛因子的时候非常有必要。这通常可以通过培训来达到目的,因为本质上其主要通过积累的经验来获得。

    使用CFD就像玩乐器,你不能捡起一把小提琴就弹“维尔瓦底”的曲子(CFD界注:著名小提琴演奏家),这需要很长的练习。

    然而,相对于GUI的点击型操作,OpenFOAM中CFD算例的自动运行VERY有用,因此如果会写脚本的话就更好了。脚本语言不重要,大家可以使用随便一个脚本语言,只要你熟悉就好。

    个人认为,依赖于你所需要的功能,如果只是企业级别的计算,不需要多少C++只是。如果是硕士进行简单的开发,C++熟悉相关的语法规则就好。对于博士如果需要写自己的算法,可能对面向对象编程需要有一定的认识

  • fluent 多节点并行

    Fluent
    2
    0 赞同
    2 帖子
    5k 浏览
    I

    写jou.
    设置并行

    比如CSDN 上提供的解决方案

    /define/user-defined/compiled-functions/compile
            libraryName
            yes
            sourcefilename.c

    /define/user-defined/compiled-functions/load
           libraryName

    ;#编译并载入UDF

    /file read-case
           yourcasename.cas
           /file read-data
           yourdatname.dat

    ;#读入调试好的case、data文件

    /define/user-defined/function-hooks/adjust "youradjustname::libraryName"""

    ;#hook像诸如init adjust这些需要hook的udf,不知道为何除了udf里定义的DEFINE_ADJUST(youradjustname,d)外,还会有一个名字""为空的,并且三个"要连写,两者之间不能有空格,不知道代表什么

    /solve/patch

    phase-2

    12

    mp

    1

    ;#我计算的是一个液面晃荡的问题,所以是两相流,要Patch一下,选择phase-2作为我们的domain,然后我要patch的zone的编号是12,然后要空格一下进入下一步,然后选择mp即体积分数,令其为1
           /file/auto-save/root-name yourrootname
           /file/auto-save/data-frequency 10000

    /file/auto-save/case-frequency 10000

    ;#自动保存data,case,每10000个时间步或是10000迭代步
           /solve/iterate
           200000

    ;#如果是稳态问题,迭代200000次

    /solve/set/time-step 0.0001
           /solve/dual-time-iterate 
           50000
           200

    ;#如果是非稳态问题,时间步为0.0001,时间步数50000,每步迭代200次
           /file/write-case-data
           yourfinalname.out
           exit
           yes

    ;#最后导出最后的case与data文件

    然后最后提交任务可以用lsf、pbs啥的,但是我不会,不过直接用命令提交貌似也麻烦不了多少。

    新建一个文件new

    然后文件里面写

    node9

    node9

    node9

    ....

    node9

    这样共n列代表你使用节点9,里面的n个核。

    nohup fluent 3d -t12 -cnf=new -g -i yourjouname.jou >&youroutname.out&

    其实-t12表示一共12个核,-cnf=new使用node9的12核,然后运行过程输出到youroutname.out中,这是使用一个节点的命令,使用多个节点只需对命令作些许修改如下 只需加入-pethernet 和 -ssh

    nohup fluent 3ddp -pethernet -cnf=myhosts -t36 -ssh -g -i f30.jou>&out.out &

    作者:aleigus
    来源:CSDN
    原文:https://blog.csdn.net/aleigus/article/details/77161181
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0 赞同
    5 帖子
    9k 浏览

    是用八叉树算法吗?设置part上的最大尺寸也需要是2的幂吗?对这方面有了解吗?我也有这方面的一个疑问呢,之前在论坛发帖子还没人回。帮助文档里面也没写清楚,网上查了一些也没查到

  • 0 赞同
    9 帖子
    14k 浏览
    R

    @xpqiu 感谢回复!
    现在把inlet,outlet和本体分开转换成stl文件 然后snappyHexMesh了一下
    0_1499148821716_屏幕快照 2017-07-04 下午3.07.55.png

    圆柱是r=18mm h=20mm inlet尺寸是r=1.5mm,h=3mm这样够不够大?现在想按您说的把空气区域和喷口区域网格如何变的密集?该添加哪些代码。。 求指导一下
    这个是我现在的snappyHexMeshDic

    FoamFile
    {
    version 2.0;
    format ascii;
    class dictionary;
    object snappyHexMeshDict;
    }

    castellatedMesh true; // make basic mesh ?
    snap true; // decide to snap back to surface ?
    addLayers true; // decide to add viscous layers ?

    geometry // Load in STL files here
    {
    inlet.stl {type triSurfaceMesh; name inlet;}
    outlet.stl {type triSurfaceMesh; name outlet;}
    wall.stl {type triSurfaceMesh; name wall;}
    volume.stl {type triSurfaceMesh; name volume;}
    refinementBox {type searchableBox; min (-0.03 -0.03 -0.03); max ( 0.03 0.3 0.3);}
    };

    castellatedMeshControls
    {
    maxLocalCells 1000000; //max cells per CPU core
    maxGlobalCells 2000000; //max cells to use before mesh deletion step
    minRefinementCells 10; //was 0 - zero means no bad cells are allowed during refinement stages
    maxLoadUnbalance 0.10;
    nCellsBetweenLevels 1; // expansion factor between each high & low refinement zone

    // Explicit feature edge refinement // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ features // taken from STL from each .eMesh file created by "SurfaceFeatureExtract" command ( {file "inlet.eMesh"; level 2;} {file "outlet.eMesh"; level 2;} {file "wall.eMesh"; level 2;} ); // Surface based refinement // ~~~~~~~~~~~~~~~~~~~~~~~~ refinementSurfaces // Surface-wise min and max refinement level { inlet {level (0 0);}

    outlet {level (0 0);}
    wall {level (3 3);}
    }

    resolveFeatureAngle 80; // Resolve sharp angles // Default 30 refinementRegions // In descending levels of fine-ness {volume {mode distance; levels ((0.0006 3) (0.002 2) (0.01 1));}} // was ((0.001 4) (0.003 3) (0.01 2)) locationInMesh (0.01 0 0); //to decide which side of mesh to keep ** allowFreeStandingZoneFaces true;

    }

    // Settings for the snapping.
    snapControls
    {
    nSmoothPatch 3;
    tolerance 4.0;
    nSolveIter 30;
    nRelaxIter 5;
    nFeatureSnapIter 15; // default is 10

    // New settings from openfoam 2.2 onwards for SHMesh

    implicitFeatureSnap false; // default is false - detects without doing surfaceFeatureExtract
    explicitFeatureSnap true; // default is true
    multiRegionFeatureSnap false; // deafault is false - detects features between multiple surfaces

    }

    // Settings for the layer addition.
    addLayersControls //add the PATCH names from inside the STL file so STLpatchName_insideSTLName
    {
    relativeSizes false; // was true
    layers
    {
    wall
    {nSurfaceLayers 3;} // was 3
    }

    expansionRatio 1.3; finalLayerThickness 0.00016; //was 0.00016 minThickness 0.00008; //was 0.00008 nGrow 0; // was 1 // Advanced settings featureAngle 80; // was 70 //- When not to extrude surface. 0 is flat, 90 is right angle. nRelaxIter 3; //- Max# of snapping relaxation iter. Should stop before upon reaching a correct mesh. nSmoothSurfaceNormals 1; // Number of smoothing iterations of surface normals nSmoothNormals 3; // Number of smoothing iterations of interior mesh movement direction nSmoothThickness 10; // Smooth layer thickness over surface patches maxFaceThicknessRatio 0.5; // Stop layer growth on highly warped cells maxThicknessToMedialRatio 0.3; // Reduce layer growth where ratio thickness to medial distance is large minMedianAxisAngle 130; // Angle used to pick up medial axis points nBufferCellsNoExtrude 0; // Create buffer region for new layer terminations nLayerIter 50; // Overall max number of layer addition iterations

    }

    // Generic mesh quality settings. At any undoable phase these determine
    // where to undo.
    meshQualityControls
    {
    maxNonOrtho 65;
    maxBoundarySkewness 20;
    maxInternalSkewness 4;
    maxConcave 80;
    minFlatness 0.5;
    minVol 1e-13;
    minTetQuality 1e-9;
    minArea -1;
    minTwist 0.02;
    minDeterminant 0.001;
    minFaceWeight 0.02;
    minVolRatio 0.01;
    minTriangleTwist -1;

    // Advanced nSmoothScale 4; errorReduction 0.75;

    }

    // Advanced

    debug 0;

    // Merge tolerance. Is fraction of overall bounding box of initial mesh.
    // Note: the write tolerance needs to be higher than this.
    mergeTolerance 1E-6;

    // ************************************************************************* //

  • icoFoam的公式推导是不是有点问题

    OpenFOAM
    4
    0 赞同
    4 帖子
    5k 浏览
    李东岳

    邱老师现在玩的大项目,都是上亿网格的工业级别 :cheeky:

  • 0 赞同
    14 帖子
    18k 浏览
    U

    前辈你好,我最经也遇到这个问题,请问有时间交流一下吗?

  • 0 赞同
    15 帖子
    20k 浏览
    C

    明白了,谢谢前辈

  • 0 赞同
    2 帖子
    7k 浏览
    李东岳

    周期性边界条件主要是这俩个边界的通量一正一负,速度相同。

    对称性边界主要是此边界通量为0,边界法向速度为0,只存在切向方向,对称性边界对于标量等于零法向梯度边界。

  • 0 赞同
    12 帖子
    19k 浏览
    A

    @东岳 在 DPMFoam求解器颗粒计算有颗粒跑出计算域外! 中说:

    粒速度持续

    假如设定反弹,颗粒轨迹与壁面有交叉,但还是跑出了计算域,正如之前碰到的情况,还是算法本身不够完善,openfoam5.0以经把颗粒追踪那一部分的算法完全更新了,颗粒追踪不会失效了

  • OpenFOAM怎么加载重力场?

    OpenFOAM
    5
    0 赞同
    5 帖子
    9k 浏览
    李东岳

    不写的话默认是yes

  • 通量分裂在多相流中的应用小测验

    OpenFOAM
    2
    0 赞同
    2 帖子
    3k 浏览

    比MULES更好的算法?看起来很尖锐啊,目前有没有完全尖锐的算法?好像教材里面说都有耗散性?
    发JFM啊岳哥,带我第9作者。

  • 0 赞同
    7 帖子
    14k 浏览
    R

    对于这个问题,作为一个重度OpenFOAM v4.1, 轻度OpenFOAM v1606+,和目前轻度但在不远未来的重度OpenFOAM extend-4.1的使用者,我很想去了解这其中的一些渊源。我想从一个最普通用户的角度,来谈谈这个问题。

    OpenFOAM v4.x 这个系列的最早的开创者是 Henry Weller. 来源 他在 1989年将FOAM,也就是OpenFOAM的前身创造成OpenFOAM,他被认为是OpenFOAM的创始者之一。目前这个系列的代码由 OpenFOAM Foundation 有限责任公司所推动。网站的页角列出了三名主要的董事会成员:

    Henry Weller Chris Greenshields Cristel de Rouvray

    OpenFOAM+ 系列的基地则对应这里。 它是由ESI公司的子公司OpenCFD有限责任公司所推动。

    OpenFOAM extend 对应的是一个“延展”计划,它的基地在这里 目前的管理员主要有 来源:

    Bernhard Gschaider Henrik Rusche Hrvoje Jasak Håkan Nilsson Martin Beaudoin Robert Keser

    以上是仅列举了一些主要三大分支的一些基本信息。

    ============================================================================================

    下面我想谈谈基于这些基本信息的个人感受:

    个人来讲,我使用OpenFOAM的最主要原因是Licence的问题。Fluent的费用是无法承担的。 可以这么说,如果研究组里能用钱能解决Licence的问题,我恐怕很难会像今天这么依赖OpenFOAM。

    Henry Weller对于我来说,一直是一个神秘一般的存在。作为OpenFOAM这样一款优秀的C++库的作者之一,我在互联网上很难找到有关他的个人信息。如果有一天,当面见到他,我恐怕都无法认出他。对Hrvoje Jasak 则是我在这个帖子中才听说的一个人,可能是由于我过分依赖OpenFOAM vx.x 系列。但是,我简单搜索就能找到关于Hrvoje Jasak的个人信息。我不想也不愿意做过多的猜测Henry Weller为什么如此“低调”。

    另外,我想谈谈自己对开源精神的理解。

    我觉得开源最核心的思想是这样:当一个东西被开源出来,它就不属于与任何一个人,而存在于人们共同的某种“想象”。人们觉得在自己力所能及的范围内,贡献出自己的东西,能够让这个“想象”更好,是推动这个“想象”不断前进的动力。至于推动的动机何在,不同的人有不同的理解。商业运作并没有被排斥在外。维基百科的理念,我个人觉得就是对开源精神的最好实现之一。但是人是复杂的,社会是复杂的。一个人的想法都会随着年龄段的不同而呈现不同想法,更何况千千万万人组成的社会呢?Linux各种各样的发行版,何尝不是这种对开源精神的不同解读而产生的结果。

    ============================================================================================

  • 这种特别长的公式一般怎么处理?

    OpenFOAM
    2
    0 赞同
    2 帖子
    2k 浏览
    Y

    以latex的经验是可以手动拆分的

  • 边界条件引起的震荡

    Algorithm
    2
    0 赞同
    2 帖子
    4k 浏览
    李东岳

    0_1497945059409_2017-06-20 15-50-42屏幕截图.png

    震荡已经非常非常小了,

  • 0 赞同
    5 帖子
    8k 浏览

    应该可以写udf输出吧

京ICP备15017992号-2