OpenFOAM

4.5k 主题 26.4k 帖子
  • 怎么用ICEM画楔形体网格

    21 帖子
    3k 浏览

    最近也在折腾做旋转对称圆柱型计算域,找到个这:https://www.fangzhenxiu.com/post/1826059?code=031TTpFa1IW6xG0skbHa1OsJy23TTpFt&state=afterWeixin
    根据这个操作画出来的网格虽然是楔形块,但是楔面并不参照哪一坐标平面对称,依然不能用在OpenFOAM上。
    又找到一个这个:https://www.fangzhenxiu.com/post/1829359
    作者好像通过两次旋转实现了对称的楔面,但我没有复现出来。
    最后还是打算用blockMesh来画了。

  • 大气边界层迎风坡台阶地形的风场模拟

    13 帖子
    1k 浏览

    @ShaneHEEE 是的,和出口设置一样,就可以了

  • DSMC时间平均

    1 帖子
    139 浏览

    dsmc求解中,由于是使用统计学相关的算法进行求解,计算结果具有较大的统计噪音,使用时间平均法是降噪的一种有效方法.

    作者在学习相关软件时,发现tecplot具有pytceplot拓展模块,能够实现此功能.

    首先需要在系统中装python环境,并且安装pytecplot模块

    直接使用pip install pytecplot命令即可安装

    在官方github仓库中找到tputils.py, tpmath.py, TimeAverage.py3个文件,将其放到OpenFOAM的结果文件夹下

    使用tecplot打开contralDict文件,并且打开软件的PyTecplot Connections功能

    在终端使用python环境运行TimeAverage.py脚本,待程序运行完成,在zone style中将会出现时间平均后的计算结果

    以某微纳通道为例,进行时间平均,并做对比:

    时间平均前的结果:
    c03304cf-34df-40a0-b708-a63631857ecf-image.png

    时间平均后的结果:
    3247da89-b756-4a9c-a8ed-8bde44fd4f0c-image.png

    显然,时间平均起到了降噪的作用

  • 2 帖子
    279 浏览

    各位老师,我主要是想消除这种异常情况,然后刚刚测试了一下发现对于压力设置totalPressure等压力控制入口,速度与zeroGradient相关设置的边界都可能出现这个问题。想请问一下,这样的情况可能与什么有关呢?

  • 分享CFDEM+OpenFOAM+LIGGGHTS初次编译安装过程

    10 帖子
    7k 浏览
  • 18 帖子
    5k 浏览

    @HITSC30 你好,请问你这个问题解决了嘛?我也遇到了和你一样的报错。

  • 3 帖子
    292 浏览

    您能解释一下为什么会有rhoCpPhi=rhoPhi*(Cp1 - Cp2) + phi*rho2*Cp2吗?这个是什么物理意义?

  • 多线程这个错误怎么解决

    17 帖子
    4k 浏览

    类似的案例,我也遇到过,我的案例是在跑别人的代码时出错的,在出现的“No MRF models present/n No finite volume options present"报错,且后面出现了”Kill“字祥时,其中“Kill”字样很重要。
    到后面我发现:我的案例文件放错的位置,原先我放在与OF整体文件的所在的主文件夹内,我的解决是通过将案例放在OF的主文件夹内,而不是在OF主文件夹外,这成功。
    首先说我为什么这么做:

    出现MRF警告时,我也以为时MRF链接出了问题,但事实是其他案例是正常的,故排除MRF问题; 我看到所引用的案例包内有:platfrom文件且内部为”linux64GccDPint32Opt“,这与OF主文件一致,我猜测事路径出了问题,最终事实如此。
  • overset 小间隙-多浮体算例 计算结果明显有误

    8 帖子
    618 浏览

    @hachikoi 您好,能帮忙问一下做六自由度双浮箱的同学,他做的双浮箱涉及两个浮体之间的耦合吗,想交流一下。

  • chemkin

    4 帖子
    545 浏览

    @annchemkin 中说:

    在网上找到的C12H26化学反应机理文件,不管是直接运行还是通过chemkinToFoam转换都显示类似格式错误的问题

    因为OpenFOAM里chemisrtyReader和chemkinToFoam只会读transportProperties这个文件里的数据,类似下面这种。用在sutherland公式里。

    ".*" { transport { As 1.512e-06; Ts 120.; } } "H2" { transport { As 6.362e-07; Ts 72.; } } "CO2" { transport { As 1.572e-06; Ts 240.; } }

    @annchemkin 中说:

    我在网上找到的trans文件都长类似的样子

    chemkin软件的三个文件之一就是这个六列分子特性数据的trans.dat,这才是正确的。只是OpenFOAM因为用sutherland公式就不需要这个文件了。sutherland公式需要的是上面的As和Ts。
    使用OpenFOAM自带的chemkinToFoam命令:

    chemkinToFoam chem.inp therm.dat transportProperties reactions.dat thermo.dat
  • Lagrangian求解器模拟颗粒荷电运动

    1 帖子
    175 浏览

    大家好,我用 icoUncoupledKinematicParcelFoam求解器模拟静电除尘器中颗粒荷电运动轨迹,颗粒考虑曳力、重力和电场力,计算电场力需要电荷量q(通过方程计算,是动态变化的值)和场强E(矢量场,给定)两个参数,我在submodels/Kinematic/particleforces路径下添加了一个电场力子模型,怎么能做到q的实时读取和电场力的实时更新呢,求大神指点。
    0.png

  • porousGasificationFoam运行ODESolver报错

    9 帖子
    757 浏览

    @wangfei9088 邮箱联系您了!期待您的回复

  • 1 帖子
    145 浏览

    第一列为能量,第二列电离系数为关于能量的函数,能量由能量方程求解,第二列需要根据场中的能量数值插值计算当地的电离系数。
    e6d35e3b-505f-4342-ad41-cc3aa7905308-image.png
    22ee645c-9f2d-4540-84ef-84a11e942e6f-image.png

  • 1 帖子
    165 浏览

    @李东岳 东岳老师您好,我使用通过结合 waves2foam 和 overInterDyMFoam 的用overWaveDyMFoam求解器计算波浪与旋转模型相互作用的时候,重叠部分区域的流体不随时间改变,重叠的部分已经设置成overset边界条件了,想请教老师是否知道这个是什么原因导致的。
    113.png
    背景部分如图
    111.png
    重叠部分如图
    112.png
    boundary文件设置如下:
    /--------------------------------- C++ -----------------------------------
    | ========= | |
    | \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
    | \ / O peration | Version: v1912 |
    | \ / A nd | Website: www.openfoam.com |
    | \/ M anipulation | |
    *---------------------------------------------------------------------------*/
    FoamFile
    {
    version 2.0;
    format ascii;
    class polyBoundaryMesh;
    location "constant/polyMesh";
    object boundary;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

    8
    (
    oversetPatch
    {
    type overset;
    inGroups 1(overset);
    nFaces 56;
    startFace 222062;
    }
    inlet
    {
    type patch;
    nFaces 98;
    startFace 222118;
    }
    bottom
    {
    type wall;
    inGroups 1(wall);
    nFaces 1132;
    startFace 222216;
    }
    outlet
    {
    type patch;
    nFaces 98;
    startFace 223348;
    }
    atmosphere
    {
    type patch;
    nFaces 1132;
    startFace 223446;
    }
    frontBack
    {
    type empty;
    inGroups 1(empty);
    nFaces 221480;
    startFace 224578;
    }
    sides
    {
    type overset;
    inGroups 1(overset);
    nFaces 2000;
    startFace 446058;
    }
    cylinder
    {
    type wall;
    inGroups 1(wall);
    nFaces 80;
    startFace 448058;
    }
    )

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

  • fvMeshStitcher for changing mesh not found

    4 帖子
    310 浏览

    @李东岳 果然跑起来了!

  • bubble colume算例一个

    3 帖子
    816 浏览

    是的,大约20秒之后

  • 10 帖子
    2k 浏览

    @zhe 谢谢,我按照方法排查尝试了一下,发现并不是粒子的加入影响了液体速度场,二而是MPPICInterFoam对于setFields对于输入速度场就有问题。下图一个是MPPICInterFoam计算的,一个是interFoam计算的,同样设置的5m/s液体下落速度,但结果截然不同。@李东岳 也请麻烦李老师能否帮忙看一下,谢谢!
    2a82db74-6e61-43e1-a687-5a6ca08d9055-image.png
    7751b300-7c97-4692-97a7-48f19f694107-image.png
    96ee3830-8f39-4ffe-8986-3988a9d011df-image.png

  • Openfoam时间步长无关性

    7 帖子
    710 浏览

    @RQLI_CFD 一些涡量很杂乱的区域,导致Cd系数会在某些时刻突然蹦很高。

  • 编译overWaveDyMFoam后生成波浪出错

    3 帖子
    365 浏览

    已解决,基于interDyMFoam改waveDyMFoam的文件更改overInterDyMFoam就可以

  • open foam的参考压力

    6 帖子
    583 浏览

    @coolhhh 应该是平均值

  • 非0时间文件开始并行计算的问题

    6 帖子
    613 浏览

    我是openFoam10,如果只是删了processor没有改动constant的话,在更改controlDict起始时间后可直接输入decomposePar然后进行求解器求解。
    decomposePar命令会根据controlDict中的起始时间拷贝对应的U、p作为初始数据以及当前constant文件夹里的polymesh文件夹读取网格拓扑信息。

  • 重新编译热物理库

    7 帖子
    737 浏览

    @yuky 哪个问题呢,煤油还是穿透长度?

  • 3 帖子
    531 浏览

    请问题主解决此问题了吗?

  • 关于paraview画图

    16 帖子
    3k 浏览

    一眼望去,全是进步空间

    哈哈,幽默,有意思

  • OpenFOAM壁面y+验证:低雷诺数模型

    4 帖子
    955 浏览

    加密网格不能使用壁面函数,同时要使用低雷诺数湍流模型

  • paraView调整显示比例

    6 帖子
    2k 浏览

    @Samuel-Tu 请问这个功能在paraview的哪里可以找到呢

  • 关于LES的dynamicSmagorinsky一些问题

    12 帖子
    1k 浏览

    @李东岳 f084b820-6ac4-4a71-aa27-4cc598955778-image.png 李老师,这是我文献中看到的,这种是咋实现的,没什么思路现在

  • 在安装CFDEM时,安装不了LPP

    3 帖子
    413 浏览

    请问,就是改成下面这个解决的吗

  • bound 函数的实现方法

    6 帖子
    579 浏览

    bound 函数的实现到底为什么要这样。

    这个看起来是个很简单的数值操作。不是从物流守恒定律搞出来的。这就是Henry自己搞的。他很多东西都自己搞。

    average这个函数我最大的印象就是dynSmagorinsky模型,Henry搞这么个东西进去,整个场的动态Cs变成了一个标量,后来让alberto怼有bug,Henry直接给dynSmagorinsky模型给删了。到现在OpenFOAM也没有动态Smagorinsky模型。 https://bugs.openfoam.org/view.php?id=99

  • 如何人为将曲率给定为一个定值

    8 帖子
    748 浏览

    @李东岳 好的,东岳老师,我试试按照您说得这样算一下。

    另外我应该补充一下,100μm直径气泡的实验测得的浮升终速度大约是0.005~0.008m/s.

    e584ada7-1a05-4bb6-8cd8-f1e1997c43cc-image.png

    参考文献 Pawliszak, P., Ulaganathan, V., Bradshaw-Hajek, B.H., Manica, R., Beattie, D.A., Krasowska, M., 2019. Mobile or Immobile? Rise Velocity of Air Bubbles in High-Purity Water. J. Phys. Chem. C 123, 15131–15138.
  • 初始速度场给定

    10 帖子
    2k 浏览

    @fubianhanshu 你好可以加个联系方式吗,想请教一些问题

  • 虚拟机占用磁盘空间不断增大怎么破?

    20 帖子
    2k 浏览

    @Prometheus10

    期待期待

  • 质量入口边界

    3 帖子
    362 浏览

    @李东岳质量入口边界 中说:

    你考虑的是多相流还是单相流

    李老师您好,感谢您的回复我考虑的是多相流,但是入口处只有气体,也只有气体进入

  • 运行结束后输出密度rho

    11 帖子
    963 浏览

    @wangfei9088 了解了,感谢:142:

  • 82 帖子
    18k 浏览

    看到 cfd online 的后处理代码:compressibleyPlusLES,感觉修改下作为后处理工具,不失为一个更简单直接的方法。

    volScalarField yPlusTemp ( IOobject ( "yPlusTemp", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedScalar("yPlusTemp", dimless, 0.0) ); volVectorField uPlus ( IOobject ( "uPlus", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedVector("uPlus", dimless, vector::zero) ); volScalarField uTau ( IOobject ( "uTau", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedScalar("uTau", dimVelocity, 0.0) ); volScalarField yPlus ( IOobject ( "yPlus", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedScalar("yPlus", dimless, 0.0) ); Info<< "Reading field UMean\n" << endl; volVectorField UMean ( IOobject ( "UMean", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ), mesh ); Info<< "Reading field U\n" << endl; volVectorField U ( IOobject ( "U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ), mesh ); Info<< "Reading field rho\n" << endl; volScalarField rho ( IOobject ( "rho", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ), mesh ); # include "compressibleCreatePhi.H" Info<< "successs1\n" << endl; autoPtr<basicThermo> pThermo ( basicThermo::New(mesh) ); basicThermo& thermo = pThermo(); Info<< "successs2\n" << endl; autoPtr<compressible::LESModel> sgsModel ( compressible::LESModel::New(rho, UMean, phi, thermo) ); /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Application yPlusLES Description Calculates and reports yPlus and uPlus for all wall patches, for the specified times, for compressible LES. \*---------------------------------------------------------------------------*/ #include "fvCFD.H" //#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" //aali #include "compressible/LES/LESModel/LESModel.H" #include "basicThermo.H" //ali #include "wallFvPatch.H" #include "LESModel.H" #include "nearWallDist.H" #include "wallDist.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // int main(int argc, char *argv[]) { timeSelector::addOptions(); #include "setRootCase.H" # include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); # include "createMesh.H" forAll(timeDirs, timeI) { runTime.setTime(timeDirs[timeI], timeI); Info<< "Time = " << runTime.timeName() << endl; fvMesh::readUpdateState state = mesh.readUpdate(); // Wall distance wallDist y(mesh, true); if (timeI == 0 || state != fvMesh::UNCHANGED) { Info<< "Calculating wall distance\n" << endl; Info<< "Writing wall distance to field " << y.name() << nl << endl; y.write(); } #include "createFields.H" volScalarField::GeometricBoundaryField d = nearWallDist(mesh).y(); volScalarField muEff(sgsModel->muEff()); const fvPatchList& patches = mesh.boundary(); dimensionedScalar uTauAvg("uTauAvg", dimVelocity, 0); const volScalarField muLam(sgsModel->mu()); scalar nPatch = 0; Info<< "Summary: " << nl << endl; forAll(patches, patchi) { const fvPatch& currPatch = patches[patchi]; if (typeid(currPatch) == typeid(wallFvPatch))//isA<wallFvPatch>(currPatch)) { yPlusTemp.boundaryField()[patchi] = d[patchi] *sqrt ( muEff.boundaryField()[patchi]/rho.boundaryField()[patchi] *mag(UMean.boundaryField()[patchi].snGrad()) ) /muLam.boundaryField()[patchi]/rho.boundaryField()[patchi]; const scalarField& YpTemp = yPlusTemp.boundaryField()[patchi]; //effective viscosity used in the calculation of u* uTau.boundaryField()[patchi] = sqrt ( sgsModel->muEff() *mag(UMean.boundaryField()[patchi].snGrad()) /sgsModel->rho() ); const fvPatchScalarField& uTauWall = uTau.boundaryField()[patchi]; dimensionedScalar uTauTmp("uTauTmp", dimVelocity, average(uTauWall)); uTauAvg += uTauTmp; nPatch ++; Info<< "Patch " << patchi << " named " << currPatch.name() << " y+ : min: " << min(YpTemp) << " max: " << max(YpTemp) << " average: " << average(YpTemp) << " avgUGradWall: " << average(mag(U.boundaryField()[patchi].snGrad())) << nl << endl; } } uTauAvg /= nPatch; Info << " avg. friction velocity uTau is: " << uTauAvg.value() << " (averaged over " << nPatch << " wall(s))" << nl <<endl; //yPlus is = u* x y/nu yPlus = y.y() * uTauAvg / ((sgsModel->mu()) / (sgsModel->rho())); uPlus = UMean / uTauAvg; Info << "Writing yPlus and uPlus to corresponding fields." << nl <<endl; yPlus.write(); uPlus.write(); // Info<< "Writing yPlus to field " // << yPlus.name() << nl << endl; // // yPlus.write(); } Info<< "End\n" << endl; return 0; } // ************************************************************************* //
  • openfoam中添加新变量并输出

    3 帖子
    358 浏览

    我也不是很懂,从代码角度来看,貌似只有进入了if判断语句中才会进行变量的输出?是不是得把IO操作放在外层

  • 湍流模型中的湍动能输运方程源项

    5 帖子
    453 浏览

    @李东岳 好的,谢谢老师

  • 为什么流体尚未到达的地方有速度?

    5 帖子
    450 浏览

    空的是指真空还是空气?
    空气就两相流(入口是water,计算域本来是air),真空就知识盲区了。

  • 9 帖子
    2k 浏览

    @wsy11 那就是你的blockmesh 设置 把底面 ground 在设置低一些

  • scalarField和volScalarField

    6 帖子
    596 浏览

    @kcol 相当于volScalarField,但是只定义内部网格,在边界网格上没有定义

  • 多相流超声速计算出现负温度

    7 帖子
    772 浏览

    @yhdthu 好的 谢谢大佬

  • Wray-Agarwal湍流模型

    已移动
    16 帖子
    4k 浏览
    一个流弊的低雷诺数SA模型在CFD中文网于2023年11月27日诞生!
  • 9 帖子
    869 浏览

    @coolhhh 对,我使用这个命令:alias Anaconda3='PATH=/home/install/Anaconda3/bin:$PATH'时,还没有把anaconda的环境给注释掉,OpenFOAM也可以正常使用,但是并行命令不能使用。
    我大概懂大佬你的意思了,如果使用了alias命令,只要没有输入Anaconda3应该就不会激活anaconda环境。可能是因为我这边前人在给anaconda设置环境的时候,有点繁琐(具体我也没弄清楚),所以我可能只使用一条alias命令,不能完全把相应的anaconda环境给包含进去。所以才导致使用alias Anaconda3='PATH=/home/install/Anaconda3/bin:$PATH'命令还不能消除使用并行命令带来的报错。再次感谢您的回答,谢谢!

  • OpenFOAM 浮体铰接可以计算吗

    6 帖子
    599 浏览

    @hachikoi 就是说目前还没有实现需要自己修改源码是吗

  • SHM尖锐直角边界层添加

    4 帖子
    464 浏览

    @xpqiu 感谢大佬回复,问题已解决 请问大佬有遇到过多重overset计算错误的问题吗

  • mapField报错

    3 帖子
    353 浏览

    厉害啊老铁

  • OpenFOAM大涡模拟的滤波尺度

    4 帖子
    626 浏览

    @zhangxy 是一个网格的尺度

  • 三维圆柱绕流升力沿管长分布

    5 帖子
    970 浏览

    @xpqiu 谢谢您!我大致明白了,去试一试:xinxin:

  • function object里vorticity只执行一次是为什么?

    3 帖子
    331 浏览

    @coolhhh 发现问题了,因为我的是两相流,需要设定field 为U.water

  • 用较小的时间步长,结果反而出问题了

    7 帖子
    962 浏览

    @李东岳
    参考文献:
    Knacke, T. (2013).
    Potential effects of Rhie & Chow type interpolations in airframe
    noise simulations. In: Schram, C., Dénos, R., Lecomte E. (ed):
    Accurate and efficient aeroacoustic prediction approaches for
    airframe noise, VKI LS 2013-03.