OpenFOAM

4.5k 主题 26.4k 帖子
  • 2 帖子
    2k 浏览

    添加这个在你的PIMPLE括号里面:

    pRefValue 0; pRefCell 0;
  • 基金会那个造波的怎么样?

    6 帖子
    4k 浏览

    @maoyanjun_dut 我写了一个推板造波的solver,也写了主动消波,阻尼区什么的,目前正在做质量源造波,这样就可以算浮体了

  • 1 帖子
    1k 浏览

    @李东岳 在东岳流体上看到了关于pimpleDyMFoam中mesh.update()函数的一点简单解释,但还是不是很清楚,我最近正在用sixdof求解,想要明白其中的调用关系。看了好久,还是没理清,不知道sixdof是怎么被mesh.updata()调用的。希望东岳兄可以发个帖子,详细的指点一二。路过的各位大神也欢迎多多指导小弟。

  • 聊一聊同位网格的速度压力解耦

    4 帖子
    4k 浏览

    foam-extend 有修正的版本。看了一下,是分项松弛的,只对压力项有松弛,别的体力(非定常其实就是惯性力体力)项没有动。

  • 1 帖子
    1k 浏览

    查看源程序PatchInjectionBase.C,发现了指定颗粒由面入射时,颗粒并不是分布在指定的发射面上,而是距离发射面竖直方向一定距离范围内,作为后续颗粒追踪过程的起始位置。

    问题在于 程序首先根据发射面的位置预先确定了颗粒所在的四面体网格编号,而颗粒在位置追踪前的初始位置是上述方式确定的,有可能颗粒的实际位置在记录的网格外,甚至是计算域外,这样就需要后续的“Tracking Rescue”算法来修正(暂且不提),也就是说这种颗粒发射方式有可能造成“particle lost”
    那么如何将这种方式入射的颗粒起始位置(下图的position变量,0时刻,轨迹追踪前)写进计算案例的0文件夹内呢?(本人刚接触openfoam程序,对程序的输入、输出系统结构不懂,您若能提供任何有用的建议或意见,将不胜感激!)
    0_1500885637991_捕获.PNG

  • AETKv1移植到OF41

    7 帖子
    4k 浏览

    @Qing
    无非代码感觉脏点儿,BLAS等库其实也是把小矩阵直接展开的。无所谓啦。

  • 3 帖子
    2k 浏览

    @程迪 AETK 是啥?。。。。。我对 OpenFOAM 不太熟。。。

  • HbyA,phiHbyA,fvc::div(phiHbyA)计算错误问题

    16 帖子
    7k 浏览

    @李东岳 前辈,解决了,原来是输出精度不够导致的,我的锅:lol:

  • 1 帖子
    1k 浏览

    OpenFOAM-3.0.x/src/lagrangian/basic/particle文件夹下particleTemplates.C中line 202——line 530描述了trackToFace函数,即对颗粒在欧拉网格下的追踪过程。对lambdaMin小于0或者大于1的情况出现的原因不是很清楚,这种情况下记录的颗粒所在的网格id号和颗粒真实的位置不一致,对应于源程序中501——506行The particle can be 'outside' the tet. This will yield a lambda larger than 1, or smaller than 0. For values < 0 ...............,程序下面给出了解决方案
    但是究竟是什么原因导致的The particle can be 'outside' the tet?希望大神能够给些建议。

    目前个人对程序理解到的程度是:

    1)在一个拉格朗日时间步长内,需要对颗粒运动路径通过的每一个欧拉网格的id号以及颗粒在那个网格中的停留时间进行识别和计算;

    2)颗粒下一时步所在的网格id号是通过时间逐步推进来获取相邻网格id号的办法实现,这里最重要的是判断颗粒穿透了网格的哪一个面以及那个面对应的相邻网格;

    3)通过颗粒当前所在网格(实际应用的时候是将颗粒所在网格划分为符合一定质量要求的四面体网格,细化颗粒追踪过程)面信息,颗粒当前位置,四面体网格中心点位置,颗粒一个时步内终点位置来计算lambdaMin的值(并记录了此值对应的网格面编号),个人理解程序通过lambdaMin的值是否在0与1之间来判断出颗粒是否“真正”穿过了那个网格面,对于此范围之外的lambdaMin的值,对应于颗粒实际位置在它所记录的网格之外,可以认为是颗粒跟踪失败,程序给出了“补救措施”

    简而言之,lambdaMin小于0或者大于1的情况从程序的角度是如何产生的?如何通过输出有关的变量来进行验证(同时也为了解决这样一个疑惑:颗粒仿真时有时会有颗粒穿透边界而落到计算域的外部,个人感觉和这个过程很相关)

  • 2 帖子
    2k 浏览

    parcel间以及与壁面碰撞的时候,修正时目前可以考虑useEquivalentSize,即对应于nParticle>1情况下的 等效粒径

  • Foam4.0编译出错请教

    5 帖子
    3k 浏览

    @队长别开枪 就是单独编译后,paraview也正常了。不提示有错是不是就算可以了?

  • swak4Foam 和 OpenFOAM4.1

    3 帖子
    3k 浏览

    多谢指点!

  • 不同的物性参数材料如何制定?

    12 帖子
    7k 浏览

    @piteqiu
    还有就是那个扩散物性用inverse插值比线性插值准确。

  • 按照随机顺序对计算结果进行采样

    7 帖子
    5k 浏览

    @程迪 厉害。确实有一些计算机方面的方法可以搞,不过用vtk解决了,多谢!

  • 未定义的引用,undefined reference

    1 帖子
    1k 浏览

    对‘Foam::twoPhase::Sp()’未定义的引用
    collect2: error: ld returned 1 exit status

    undefined reference

    类可能编译成功,在对接求解器的时候可能会提示此错误。问题在于类。检查virtual函数后面是否=0。

  • 9 帖子
    6k 浏览

    @程迪 很有用,多谢大佬指点!

  • 求助,关于wallHeatFlux功能在OF4.0内的使用

    1 帖子
    1k 浏览

    大家好,用buoyantSimpleFoam求解自带的算例buoyantCavity,该如何使用wallHeatFlux功能来计算加热面的壁面热流,是想sample一样,在system内加入一个sample文件,然后在controlDict内添加加入functions{#includeFunc sample}吗,本人还是个OF小白,麻烦大家有空能解答一下,谢谢!

  • 关于postProcess probe的问题

    5 帖子
    4k 浏览

    @范春永 成了!非常感谢!!

  • 3 帖子
    2k 浏览

    最近看了几个extend的问题,暂时没用过extend的求解器...

  • 9 帖子
    5k 浏览

    @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;

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

  • 判断alpha==零点几的语句怎么编写

    9 帖子
    4k 浏览

    ForAll 是一个宏,定义如下

    #define forAll (list, i ) for (Foam::label i=0; i<(list).size(); ++i)
  • 如何获得cell信息?

    10 帖子
    7k 浏览

    @程迪 good stuff, thanks

  • 关于数值模拟离心泵过程中发散的一些问题

    15 帖子
    7k 浏览

    明白了,谢谢前辈

  • 3 帖子
    2k 浏览

    @赵一铭 画完网格之后 输入paraFoam命令,点击apply闪退。现在已经没问题了,之前p和U边界没有改。感谢!

  • DPM和流体耦合的时候是否考虑了压力?

    4 帖子
    3k 浏览

    0_1498740892208_oie_291452346Q7QP69q.png

    谢谢,今天还真遇到一个无压力的NS方程,有意思
    http://epubs.siam.org/doi/pdf/10.1137/S0036142901398040

  • C++中if语句效率问题

    2 帖子
    2k 浏览

    @cfd-china 这个不太好说,可以测试一下。但是gcc编译器的话应该优化的很好,这可能并不会是主要瓶颈,毕竟矩阵求解才是最耗时的

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

    2 帖子
    2k 浏览

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

  • 关于MRFSimpleFoam求解离心泵的一些问题

    6 帖子
    4k 浏览

    多谢前辈,我正在用probes监测

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

    2 帖子
    1k 浏览

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

  • 请教各位大神关于动网格的问题

    2 帖子
    2k 浏览

    @lv1995 不知道是否正确,innerdistance的意思是随着动边界一起运动的网格厚度,不变形,outerdistance是网格变形域的范围。仅供参考。

  • 8 帖子
    4k 浏览

    0_1498032046222_2017-06-21 15-59-41屏幕截图.png

    我的一生,都在和震荡作斗争。

  • OpenFOAM后处理问题?

    4 帖子
    3k 浏览

    @小龙 openfoam后处理forcesIncompressible可以用吗?因为我没有找到这个的详细解释,可以给我说一下这个后处理计算指定patch上压力的原理是什么吗?

  • adjustPhi的作用是检查边界条件?

    9 帖子
    10k 浏览

    @cfd-china
    我觉得你这个问题解释得有问题。

    pRef是解决双Neumann条件无法确定$C_2$的问题
    而adjustPhi解决的是$C_1=\alpha=k-\beta$的问题,因为$\alpha+\beta=k$,所以两个Neumann条件不独立,并不是任意设置$\alpha$和$\beta$都能得到解的。这个关系数学上叫相容性关系。

    参考http://cfd-china.com/topic/501/%E5%85%B3%E4%BA%8Ecorrectphi-h%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0/9

    p.s. 其实不调用adjustPhi应该也能得到线性代数问题的解。只是这个解不对。

  • 9 帖子
    7k 浏览

    @yhdthu

    调解后的时间步进的长度delta_t都要小于设置的delta_T

    调节后的时间步大小取决于controlDict中的maxCo值,maxCo的默认值为1。代码见src/finiteVolume/cfdTools/general/include/createTimeControls.H 以及
    src/finiteVolume/cfdTools/general/include/readTimeControls.H。

    在每个delta_t中都要跑一遍nOuterCorrectors(50)和nCorrectors (2)对不?

    没错。

    干吗不用piso算法自己手动调节时间步长

    可以通过增大maxCo来增大自动调节的时间步长,据说PIMPLE算法的Co数可以达到10以上,不过对于用DES或LES计算的湍流问题另当别论。

    如何给定nOuterCorrctors 的值呢?

    这个只能靠经验了,不过一般肯定用不着50。

    这句话怎么理解?什么叫high turbulent flow??

    当simulationType设置为RAS或LES时,求解的是考虑湍流粘度($\nu_t$)影响的RANS/LES方程,而湍流粘度取决于求解湍流输运方程后得到的各湍流系数。

    turbOnFinalIterOnly为false代表每个PIMPLE循环内求解多次湍流输运方程,每次PIMPLE循环求解RANS/LES方程时的湍流系数都用的是上个PIMPLE循环内得到的湍流系数。

    turbOnFinalIterOnly为true则代表每个PIMPLE循环内只求解一次湍流输运方程,每次PIMPLE循环求解RANS/LES方程时的湍流系数都用的是上个时间步得到的湍流系数。

    高雷诺数流动为了精确得到速度压力场,需要每个PIMPLE循环内都求解多次湍流输运方程。

  • interior

    已移动
  • DPMFoam 能不能处理颗粒的沉积

    已移动
    2 帖子
    2k 浏览

    似乎可以,用stick壁面?

  • 基于直接数值模拟的新曳力系数

    已移动
    3 帖子
    3k 浏览

    话说,这个作者我在CFB11的时候还见过,和她还有张合影。

  • 湍流模型是否需要考虑空隙率

    已移动
    8 帖子
    6k 浏览

    OpenFOAM 里面,比如DPMFoam 需要重新编译湍流模型,是这个意思么?

  • 6 帖子
    3k 浏览

    @李东岳 了解,感谢李老师:happy:

  • OpenFOAM后处理flowRatePatch?

    11 帖子
    6k 浏览

    @爬行的蜗牛 postProcess 是OpenFOAM-4.0以上的版本才有的命令。

  • 如何解释计算喷嘴缩口处的负压问题?

    10 帖子
    6k 浏览

    @mohui 感谢你的解释

  • openfoam中有动态层铺网格的算例吗

    19 帖子
    9k 浏览

    @wwzhaoopenfoam中有动态层铺网格的算例吗 中说:

    @李东岳 2017年是第五届,你记错了。两个的思路不太一样,这个思路跟我们的类似:http://2016.oversetgridsymposium.org/assets/presentations/session11/ogs2016-sideroff-ACCM.pdf

    这个实现了6DOF + 重叠网格!可惜这个Open-source but not free...
    不知道有没有free的。。。

  • 想请教一个wallfunction的y_plus的一个问题

    4 帖子
    4k 浏览

    @硫酸亚铜想请教一个wallfunction的y_plus的一个问题 中说:

    30

    $\k$-$\omega$要求在1吗?我在a introduction to cfd 那本书里面看到,都是采用壁面函数的方法啊,而且omega也有相应的壁面模型,如果全解析到1不是LES了吗?

  • Linux下的paraview怎么启动比较方便?

    12 帖子
    9k 浏览

    就我所知,至少3种方法:1.别名;2.将paraview的路径添加到PATH;3.创建快捷方式

  • compressilbeinterfoam质量守恒问题?

    10 帖子
    5k 浏览

    @李东岳
    好的,谢谢东岳老师。

  • toposet的设定?

    1 帖子
    1k 浏览

    0_1495693485604_upload-f68f59bc-d32a-4cba-93cb-7d5862ab8826 如图箭头所指的面,想用toposet设置为边界,该用什么命令实现呢?几何文件上传失败了。

  • 密度基耦合求解器

    9 帖子
    6k 浏览

    笑死我了,

  • Commutation error一直再升是什么错误

    2 帖子
    1k 浏览

    这个主要是监控连续性误差,累积的连续性误差。你这个结果没有守恒。这个不是发散的原因,而是发散的表象。应该其他量也存在问题。

  • 6 帖子
    5k 浏览

    目前问题解决了么?

  • 运行出错

    8 帖子
    5k 浏览

    @lv1995 网格这块我不太懂,应该是六面体网格。checkMesh检查出来的非正交性大概50-60,我把非正交修正次数从“0”改为“1”就不发散了,没试过更大的非正交修正系数。看教程上也说一般设置为“0”或“1”。