OpenFOAM

4.5k 主题 26.2k 帖子
  • 2 帖子
    179 浏览

    这个看起来是边界条件设置的问题,正常用的话不会这样,网格少的话发在论坛我给你看看

  • OpenFOAM网格尺寸缩放问题

    7 帖子
    557 浏览

    @coolhhh 感谢您的回复,应该就是求解器中那些非线性模型导致的。感觉openfoam做无量纲化有不少trick。。

  • Ubuntu 20.04 安装 OpenFOAM-v1712

    22 帖子
    7k 浏览

    @李东岳 已解决,谢谢!

  • 关于openfoam新手的一些提问与注意事项

    4 帖子
    345 浏览

    centos7能装openfoamv2212,但比ubantu费点劲,并且centos7也不再更新了,能用ubantu就用ubantu

  • 请问UprimeMean是如何计算的

    7 帖子
    2k 浏览

    @李东岳请问UprimeMean是如何计算的 中说:

    所以你要计算得是$\overline{{\bfU '}^2}=\overline{\bfU^2}-{\overline{\bfU}}^2$?$\bfU '$是脉动速度,$\bfU$是速度,$\overline{\bfU}$是平均速度

    老师,请问openFoam中可压缩求解器(rhoreactingFoam)使用Les模型,使用uprimemean计算的是favre平均的值吗还是雷诺平均的值,如果想要分别计算favre平均和雷诺平均可以做到吗

  • waves2Foam安装 2024年更新版本

    6 帖子
    830 浏览

    @李东岳waves2Foam安装 2024年更新版本 中说:

    @liujm 老教程需要用老版本的ubuntu,客户用新版本的ubuntu就失败了

    :145:

  • 1 帖子
    118 浏览

    请问采用openfoam致动盘模型进行风力机流场仿真,风机的输出功率是怎么计算得到的?

  • 5 帖子
    142 浏览

    解决办法一:关闭3d加速,但会卡成ppt,其它办法暂未发现

  • window下的paraview如何读取拉格朗日场?

    5 帖子
    1k 浏览

    foamToVTK

  • MPPICFoam计算求解时的错误

    4 帖子
    277 浏览

    @sxz0823 再回应一下李老师,我上面的修改应该是错误的,应该在求解器下面重新定义phi

  • OpenFOAM小代码

    39 帖子
    15k 浏览
    本帖之前写的代码,挑主要的都更新到这里的

    http://dyfluid.com/code.html

  • OpenFOAM控制方程植入代码讨论

    4 帖子
    511 浏览

    首先谢谢李老师的回复,我的计算模型长这个样子
    5afa5f9625cb27a2605306540053ba79_720.png
    最常见的报错信息是这个样子:

    --> FOAM FATAL ERROR: (openfoam-2306) Maximum number of iterations exceeded: 100 when starting from T0:300 old T:18296.6 new T:3283.45 f:1.71386e+07 p:100000 tol:0.03

    简言之就是发散了。
    上面这个是二维网格,计算结果长这个样子(都给把计算结果对称了):速度云图
    173f8291-4eb9-4b3e-b747-c217feb14b65-96160786c562205c6777481adb0f4773.png
    温度云图:
    a6b8fdee-f871-42ce-843c-faf5a097e561-603ff8fd332322579632f68434ccd8c6.png
    感觉计算结果就是错的,因为在Cathode是wall类型,从Inlet附近到Cathode附近流线应该有弯曲的表现。

    阴极我设定的边界条件3500K,它最高温度才3800K,磁场产生的源项作用效果十分小。

    谢谢李老师提的reconstruct方法,我研究试试。

  • 关于turbinesfoam中pitching直接运行产生的错误

    3 帖子
    120 浏览

    好的,谢谢李老师,我研究一下

  • 2 帖子
    213 浏览

    目前打算从稍微简单的kEpsilon或kOmage湍流模型进行修改

  • 借助localPoints实现网格运动控制的问题

    4 帖子
    1k 浏览

    也遇到相同的问题

  • 求推荐OpenFOAM编程方面的资料或课程

    2 帖子
    489 浏览

    同样求推荐资料或者书籍,比如介绍OpenFOAM数据类型,场的类型,遍历边界,遍历内部场,将数学公式转化为OpenFOAM代码,等等。

  • openFOAM中耦合风力机致动线模型

    7 帖子
    2k 浏览

    是里面的pitching吗,但是好像需要修改吗,我感觉计算出来结果不正确

  • openfoam中的重叠网格浮体位移的提取

    1 帖子
    121 浏览

    用拉伸网格的时候,用这个函数可以提取浮体的位移
    9f53dc45-ac8a-43db-8913-d58e82e9aa08-image.png
    但是在用重叠网格的时候,每一个时间步文件里面有浮体的位移信息
    a6208896-f500-4ed3-bc64-94d0ffe9333b-image.png
    但是用上上面提取位移信息的函数的时候,就会出现报错
    6a8cd875-a2cf-483c-8c0f-c778b4dfbc05-image.png
    想问一下是怎么回事,拉伸网格提取位移没问题,但是重叠网格就会报错

  • OpenFOAM中编译新的湍流模型报错

    3 帖子
    237 浏览

    这是我的.C文件```
    /---------------------------------------------------------------------------\

    \ / F ield OpenFOAM: The Open Source CFD Toolbox \ / O peration \ / A nd www.openfoam.com \/ M anipulation Copyright (C) 2011-2017 OpenFOAM Foundation Copyright (C) 2019 OpenCFD Ltd.

    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/>.

    *---------------------------------------------------------------------------*/

    #include "kEpsilonNNQuadraticTrain.H"
    #include "bound.H"
    #include "wallFvPatch.H"
    #include "nutkWallFunctionFvPatchScalarField.H"
    #include "addToRunTimeSelectionTable.H"

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

    namespace Foam
    {
    namespace incompressible
    {
    namespace RASModels
    {

    // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

    defineTypeNameAndDebug(kEpsilonNNQuadraticTrain, 0);
    addToRunTimeSelectionTable(RASModel, kEpsilonNNQuadraticTrain, dictionary);

    // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //

    void kEpsilonNNQuadraticTrain::correctNut()
    {
    correctNonlinearStress(fvc::grad(U_));
    }

    void kEpsilonNNQuadraticTrain::correctNonlinearStress(const volTensorField& gradU)
    {
    timeScale_=k_/epsilon_;

    // Linear (nut) nut_ = -g1_*k_*timeScale_; nut_.correctBoundaryConditions(); // Quadratic (tau_NL) volSymmTensorField S(timeScale_*symm(gradU)); volTensorField W(timeScale_*skew(gradU)); nonlinearStress_ = 2*k_ *( g2_ * twoSymm(S&W) + g3_ * dev(innerSqr(S)) + g4_ * dev(symm(W&W)) );

    }

    // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

    kEpsilonNNQuadraticTrain::kEpsilonNNQuadraticTrain
    (
    const geometricOneField& alpha,
    const geometricOneField& rho,
    const volVectorField& U,
    const surfaceScalarField& alphaRhoPhi,
    const surfaceScalarField& phi,
    const transportModel& transport,
    const word& propertiesName,
    const word& type
    )
    :
    nonlinearEddyViscosityincompressible::RASModel
    (
    type,
    alpha,
    rho,
    U,
    alphaRhoPhi,
    phi,
    transport,
    propertiesName
    ),

    Ceps1_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ceps1", coeffDict_, 1.44 ) ), Ceps2_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ceps2", coeffDict_, 1.92 ) ), sigmak_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmak", coeffDict_, 1.0 ) ), sigmaEps_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaEps", coeffDict_, 1.3 ) ), k_ ( IOobject ( IOobject::groupName("k", alphaRhoPhi.group()), runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), epsilon_ ( IOobject ( IOobject::groupName("epsilon", alphaRhoPhi.group()), runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), g1_ ( IOobject ( "g1", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), g2_ ( IOobject ( "g2", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), g3_ ( IOobject ( "g3", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), g4_ ( IOobject ( "g4", runTime_.timeName(), mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh_ ), timeScale_ ( IOobject ( "timeScale", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh_, dimensionedScalar("timeScale", dimTime, scalar(0.0)) )

    {
    bound(k_, kMin_);
    bound(epsilon_, epsilonMin_);

    if (type == typeName) { printCoeffs(type); }

    }

    // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

    bool kEpsilonNNQuadraticTrain::read()
    {
    if (nonlinearEddyViscosityincompressible::RASModel::read())
    {
    Ceps1_.readIfPresent(coeffDict());
    Ceps2_.readIfPresent(coeffDict());
    sigmak_.readIfPresent(coeffDict());
    sigmaEps_.readIfPresent(coeffDict());

    return true; } return false;

    }

    void kEpsilonNNQuadraticTrain::correct()
    {
    if (!turbulence_)
    {
    return;
    }

    nonlinearEddyViscosity<incompressible::RASModel>::correct(); tmp<volTensorField> tgradU = fvc::grad(U_); const volTensorField& gradU = tgradU(); volScalarField G ( GName(), (nut_*twoSymm(gradU) - nonlinearStress_) && gradU ); // Update epsilon and G at the wall epsilon_.boundaryFieldRef().updateCoeffs(); // Dissipation equation tmp<fvScalarMatrix> epsEqn ( fvm::ddt(epsilon_) + fvm::div(phi_, epsilon_) - fvm::laplacian(DepsilonEff(), epsilon_) == Ceps1_*G*epsilon_/k_ - fvm::Sp(Ceps2_*epsilon_/k_, epsilon_) ); epsEqn.ref().relax(); epsEqn.ref().boundaryManipulate(epsilon_.boundaryFieldRef()); solve(epsEqn); bound(epsilon_, epsilonMin_); // Turbulent kinetic energy equation tmp<fvScalarMatrix> kEqn ( fvm::ddt(k_) + fvm::div(phi_, k_) - fvm::laplacian(DkEff(), k_) == G - fvm::Sp(epsilon_/k_, k_) ); kEqn.ref().relax(); solve(kEqn); bound(k_, kMin_); // Re-calculate viscosity and non-linear stress correctNonlinearStress(gradU);

    }

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

    } // End namespace RASModels
    } // End namespace incompressible
    } // End namespace Foam

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

  • OpenFOAM中实现结果的转移

    2 帖子
    189 浏览

    可以,请查找mapFields命令

  • 1 帖子
    102 浏览

    我用LEMOS中的湍流入流为入流边界湍流模型采用LES做大气边界层仿真,但是入口和出口处湍流波动差距很大,在出口区几乎没有波动,请问各位大佬这个应该怎么办
    这里是入口边界处生成的速度结果:
    2c5cc383-747d-420b-990d-1c5a33977235-146bb4d9c73c73787867cf697c142ef.png
    这里是入口边界处生成的速度结果:
    ae723d96-8a6d-42fd-9809-ecacfa7db1a9-ecc2b878b5346cf4f27bea8ecb763cf.png

  • 风力机致动线模型

    1 帖子
    130 浏览

    准备学习风力机致动线模型,但是在of10中并没有找到相关案例,应该如何下手去学习,github中的文件似乎并不能适用于这个版本,不知道如何运行,还请各位大佬给予相关建议,非常感谢

  • 13 帖子
    2k 浏览

    时至今日,我是刚刚接触这方面小白,问下风力机致动线模型是否有相关算例可以学习,如有打扰,非常抱歉

  • 3 帖子
    253 浏览

    @李东岳非结构化网格如何加显式滤波 中说:

    OpenFOAM有一些LES模型需要调用显示滤波。比如动态k模型。OpenFOAM已经处理好了。你可以看看源代码。在我那个笔记里面也写的非常详细,不管是理论,还是方程方面。

    多谢老师

  • 4 帖子
    378 浏览

    @李东岳 谢谢李老师,也谢谢楼上几位。目前找到一些问题所在了。在fluent中进出口的温度不是周期性的而流场是,每个周期都会重置入口温度(之前用fluent的人不清楚),所以这一点是我们自己的问题所在。另外还有一个问题就是在计算之前fluent进行初始化为300K,但是计算一段时间后会发现有小于300K的,这个问题就不知道是什么原因了。目前计划是对温度场T+、y+了。和实验的验证结果如下图所示,个人感觉能凑合用吧。
    9a7bebfa-8bf1-450e-8768-5e386dd453a2-微信截图_20240115155859.png

  • OpenFOAM循环壁面生成

    2 帖子
    181 浏览

    感谢分享!!:146: :146: :146:

  • parafoam打开加密网格

    3 帖子
    251 浏览

    @cresendo 但是我每次运行前都会allclean。是在什么时候删除时间步呢,toposet之前还是refinemesh之后呢?

  • 不可压缩多相流计算出现负压

    5 帖子
    435 浏览

    谢谢大佬,我的Courant数设置的是0.5,时间步长使用的自适应时间步长。我的想法是可不可能是因为alpha.water场某个单元计算出来比较小,导致得到该单元的U特别大,然后求解压力方程后在该单元附近出现负压?

  • 1 帖子
    95 浏览

    使用OpenFOAM-v2006版本的setExprBoundaryFieldsDict在设置某个坐标方向上边界值符合分段函数分布规律的初值时,比如z方向上再0<z<11000m 时符合T = 288.15 - 0.0065*z,在z>11000m时T = 216.65,分段函数如下:
    7332c5a5-eb8a-48b7-b4d0-b2effae3bbdc-image.png
    这样的边界条件设置我一开始模仿了setExprFields的语法,使用condition语法限定分段区域,但是查看0/T文件发现后面的函数值会覆盖前面的赋值,也就是说condition语句在这里被忽略了,tutorials仅给出了2个示例,都比较简单。请问各位道友怎么实现这种功能??

  • levelset初始条件

    3 帖子
    270 浏览

    @fireztw 好的谢谢!

  • tecplot加载OpenFOAM文件报错且速度特别慢

    10 帖子
    1k 浏览

    @myheart 好的,谢谢您

  • Floating point exception

    8 帖子
    4k 浏览

    @Alvin 请问前辈最后有没有找到解决方法??

  • 液体与固体表面的接触角怎么定义和操作?

    4 帖子
    2k 浏览

    @wwzhao液体与固体表面的接触角怎么定义和操作? 中说:

    接触角是指气-液界面的切线穿过液体与固-液交界线之间的夹角θ。θ小于90°代表固体表面亲水,大于90°代表固体表面疏水。

    可以通过对wall类型的边界设置alpha边界条件来设置接触角。

    参考constantAlphaContactAngle、dynamicAlphaContactAngle以及timeVaryingAlphaContactAngle。

    想请教一下,如果像定义个类似于timeVaryingAlphaContactAngle的边界条件,只是把时间换成坐标x,y或者z,该如何创建新的边界条件呢?

  • 1 帖子
    115 浏览

    Openfoam中的多相流问题,如果考虑壁面润湿性,需要将alpha.water的wall设置为接触角边界条件,最常用的就是constantAlphaContactAngle和dynamicAlphaContactAngle。特别地,如果接触角随时间变化,有一个对应的timeVaryingAlphaContactAngle;现在想做一个接触角对空间位置变化的,如θ=θ1+(θ2-θ1)*x。也就是将timeVaryingAlphaContactAngle中的time改为x,该如何创建这一新的边界条件呢?求赐教

  • 高压下费托合成反应发散

    3 帖子
    256 浏览

    @bestucan 感谢您的指导,我去试着改一下

  • matllab数据导入paraview

    1 帖子
    119 浏览

    如何在matlab中将二维流场写入vtk文件,找了一圈都只有三维的,有大佬知道吗

  • 3 帖子
    252 浏览

    @李东岳OpenFOAM-dev 支持二维AMR吗?测试计算一直报错。 中说:

    不支持2维AMR,但是可以把z方向处理为slip

    原来如此,多谢李老师

  • Openfoam 远程并行计算问题

    4 帖子
    383 浏览

    可以试试screen,tmux,byobu

  • MPPICInterFoam支持自适应网格技术吗?

    1 帖子
    101 浏览

    各位大佬好!在MPPICInterFoam的源代码中没看到关于动网格的源文件,所以MPPICInterFoam求解器支持自适应网格技术吗?

  • 关于fvSchemes字典中wallDist的疑问

    4 帖子
    2k 浏览

    @tidedrinker关于fvSchemes字典中wallDist的疑问 中说:

    哪些模型最简单的方法是空置这一项,或者故意填个错的,然后报错的时候会提示你有那些可选
    确实k-omega SST需要,没有就会报错

  • 浮点数例外 (核心已转储)问题

    3 帖子
    284 浏览

    加密前网格由blockMesh生成blockMeshDict

    FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // scale 1; vertices ( (-0.15242 0 -0.005) ( 0 0 -0.005) ( 0.3048 0.081670913853 -0.005) (-0.15242 0.1524 -0.005) ( 0 0.1524 -0.005) ( 0.3048 0.1524 -0.005) (-0.15242 0 0.005) ( 0 0 0.005) ( 0.3048 0.081670913853 0.005) (-0.15242 0.1524 0.005) ( 0 0.1524 0.005) ( 0.3048 0.1524 0.005) ); blocks ( hex (0 1 4 3 6 7 10 9 ) (80 80 1) simpleGrading (1 1 1) hex (1 2 5 4 7 8 11 10) (160 80 1) simpleGrading (1 1 1) ); edges ( ); boundary ( inlet { type patch; faces ( (0 6 9 3) ); } outlet { type patch; faces ( (2 5 11 8) ); } bottom { type symmetryPlane; faces ( (0 1 7 6) ); } top { type symmetryPlane; faces ( (3 9 10 4) (4 10 11 5) ); } obstacle { type patch; faces ( (1 2 8 7) ); } ); mergePatchPairs ( ); // ************************************************************************* //

    加密后是由fluent.msh转换的fluent.msh
    加密前:controlDict
    加密后:controlDict
    其他设置基本是一样的
    物性参数:thermophysicalProperties
    湍流模型laminarturbulenceProperties
    离散格式:fvSchemes
    求解器控制:fvSolution
    来流条件:p T U

  • OpenFOAM中的sphereDrag相关参数修改

    3 帖子
    279 浏览

    @李东岳 谢谢李老师

  • paraview处理试验数据

    2 帖子
    234 浏览

    能否根据一些散点的坐标xyz,即这些散点的风压值,生成paraview可以读取的格式让其能插值显示曲面风压?

  • 关于setFields工具设置的一些疑问

    17 帖子
    4k 浏览

    @wangwang 谢谢前辈,是的发现问题了

  • OpenFOAM温度越界

    2 帖子
    213 浏览

    温度越界这个问题在可压缩那面出现的太多了。没有一个普适性的答案。这就是发散了。

  • openfoam波浪与结构相互作用,结构受力发散

    1 帖子
    146 浏览

    使用waves2foam造波,interfoam求解器。运行到后面时间步变得无限小,结构受力无限大。我这里有十多个构件单独输出受力,每个构件的受力全都变得很大。我觉得可能是网格质量不好的原因(网格用snappy生成),但是调整了很多参数,依旧会发散。以下是log文件、snappy文件(由于杆件太多,只展示部分杆件,所有杆件设置一致)以及网格局部图片,请问大家有没有调整的建议或者除了网格导致发散的其他原因。86a8b480-7d79-4850-86d4-6140dfede200-image.png 3db69d5e-0327-426e-a358-54a61e4a5a3a-image.png 25c1ee00-0922-4a62-bf33-b7c3741cc376-image.png f112809c-4b63-43d3-b173-d40aca264e39-image.png 22f99966-bf52-4050-8b3e-271e6bcfcb07-image.png db211ec2-f12a-4897-85af-b21f259fd754-image.png 6601262c-29d1-4f28-aaa7-ffd719e3f306-image.png 1287beb0-7bab-4333-b0af-a96fe9381bb0-image.png b6ae8373-35bf-4f95-b812-caa392da8516-image.png 65fcf0a7-e5cf-4748-8487-0d9cdfbeb344-image.png

  • OpenFOAM的两个燃烧求解器

    11 帖子
    4k 浏览

    @cccrrryyy 大佬,请教个问题,最近这两个求解器也困惑了我许久,拜读这个帖子后仍有疑问。
    问题1:按照李老师所说,声速较大会导致rhoReactingFoam中采用的压力方程无法求解,那是不是意味着reactingFoam适用于声速可能无穷大也就是低马赫数时密度不随压力改变的情况?
    问题2:同时由于rhoReactingFoam采用rhoPimpleFoam的压力方程,其为压力基求解器,捕捉激波的能力没有rhoCentralFoam强,所以其实际上也不适用于高马赫数流动?
    问题3:既然这俩都不能计算高速可压流,那基于psi和基于rho的热物性带来的差异主要体现在哪?

  • OF 中 颗粒的 sizedistribution models 问题?

    7 帖子
    4k 浏览

    @chpjz0391 请问这个multiNormal的文件在哪个tutorials里面?

  • openfoam set fields

    12 帖子
    9k 浏览

    关于应用setFields和codestream的组合定义初始场,可以参考大神的一个贴,https://www.topcfd.cn/12245/

  • rhoPimpleFoam在大网格下的发散问题

    8 帖子
    579 浏览

    绘图1.png
    李老师,上面算的算例因为网格问题要重新计算了,我参照您发我的算例在ICEM中画网格。如图所示A的严格对称点应该是B点,您画在了C点,所以要在openfoam里面用cyclicAMI来周期上下两个面。出现了面不匹配的老问题,我尝试在ICEM中设定周期,但是好像这种叶珊上下面应该没法设置节点的周期把?随后我仔细观察了您的算例,发现在boundary文件中的cyclicAMI的容差设置为1,随后我在createPatchDict采用了相同的容差。这一步算是可以通过了,但是在decomposePar中采用scotch方法进行分块时,还是在cyclicAMI这里报错了,麻烦李老师给看看我上述的操作是漏了什么嘛?
    另附一下 网格处理命令:
    fluentMeshToFoam ICEM.mesh
    autoPatch 45 -overwrite
    createPatch -overwrite

    屏幕截图 2023-12-30 235244.png