Skip to content
  • 请教一个有关外流域网格划分的问题

    Meshy
    1
    0 赞同
    1 帖子
    4k 浏览
    H

    首先,把计算域特点介绍一下:本算例是为比较圆柱绕流问题与三维螺旋结构绕流的不同。
    本研究中的三维螺旋结构是由三个圆螺旋拉伸形成的结构,有点类似于麻花(但是麻花是两个圆柱缠绕的):
    0_1510012974209_p2.PNG
    将流体域与该结构做一个布尔运算,得到的流体域的结构如下图所示:
    0_1510013093878_p3.PNG
    其中左侧为速度入口,使用的是LES模型要求壁面的Y+=1
    ————————————————分界线——————————————————
    圆柱绕流的网格画分比较简单,可以通过O型网格得到较好的结果。
    但是对于新结构的网格可能不太适合,不能一通到底的使用O型剖分。
    下面是我尝试用workbench 中的Meshing画分的网格的俯视图:利用的是sweep方法。
    0_1510013238698_4.PNG
    现在想利用ICEM来画分,是想能得到更好的网格?请问大家有没有什么想法

  • levelset初始条件

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

    @fireztw 好的谢谢!

  • 0 赞同
    5 帖子
    10k 浏览
    W

    很有帮助。

  • 0 赞同
    9 帖子
    16k 浏览
    X

    @东岳 流沙老师的教程确实很良心

  • 0 赞同
    20 帖子
    31k 浏览
    2

    @potatocat 比较的结果如何?可以在fluent中直接设置层流模型吗?

  • PBM模型

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

    @李东岳 好的谢谢您,我再试试

  • 刚审了个英文

    CFD彩虹条
    1
    0 赞同
    1 帖子
    3k 浏览
    C

    我导收了一个湘潭大学的搅拌器的英文sci。实验+cfd,用openfoam搞的。我针对算例设置这一段提出了1个不痛不痒的问题,不能一个不提啊。目前已返回我导。估计明后天就返回编辑吧?哈哈。我导没有抵制,不过提了2页问题...anyway,问题不大。:sunglasses:

  • 顶刊CES:一个新的气泡破碎模型

    Algorithm
    3
    0 赞同
    3 帖子
    6k 浏览
    李东岳

    拉格朗日一般要从粒子碰撞的角度来考虑破碎聚丙啥的

  • 求助各位老师帮忙,谢谢

    Fluent
    2
    0 赞同
    2 帖子
    3k 浏览
    bestucanB

    那你先解释一下,为什么你认为这是个不可能事件

    C1和C2差异很大,但Q3和w3几乎相同,请问如何解释

    它违背了什么物理规律?和已有的什么结论相悖?

  • 当保安也需要硕士嘛

    CFD彩虹条
    2
    0 赞同
    2 帖子
    4k 浏览
    S

    @cfd-china 门槛啊,真高!

  • POST中批量导出出错

    Fluent
    3
    0 赞同
    3 帖子
    3k 浏览
    L

    @Yan 好的,谢谢你,我已经学会从命令面板里设置怎么输出数据了。
    再次感谢!

  • 圆柱相切的划分策略

    Meshy
    4
    0 赞同
    4 帖子
    7k 浏览
    I

    谢谢老师~~

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

    是的,我有的时候也会出现这个情况。点pre-Mesh,体网格丢失,不知道还有没有其他人遇到这个问题?

  • Vocab day day day :-)

    CFD彩虹条
    12
    0 赞同
    12 帖子
    17k 浏览
    C
    List 13 desolate
    荒凉的 despair n. vi. desperate adj.
    a feeling that you have no hope at all
    drive sb. to despair
    对某人感到绝望 despair of sb.
    My teacher began to despair of me dispatch
    formal 为了特定的目的send某人或某物到某地
    Dispatch several officers to Beijing despise
    蔑视
    I despise all cowards detain
    拘留 deteriorate
    恶化,变坏
    cause the leather to deteriorate deviate
    偏离
    deviate from the truth
    deviate from the original plan dictate dictation
    口述,使听写
    The boss dictate the plan to us
    She is dictating a plan to her secretary diminish
    reduce discern
    to notice or understand something by thinking about it carefully
    Officials were keen to discern how much public support there was
    I would discern what his heart and soul were like discourse
    演讲
    I felt at home in this kind of discourse
    a discourse on art discreet
    小心谨慎的
    I stood back at a discreet distance
    Reporters asked some discreet questions discrepancy
    a difference between two amounts, details, reports etc that should be the same
    Police found discrepancies in the two men's reports
  • 0 赞同
    3 帖子
    3k 浏览
    Z

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

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

    多谢老师

  • PBE中Liao-breakage 模型求助

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

    @CFD_xiaobai Luo破碎模型不是也是一个大公式么?

    破碎这面我没太看中文的书,跟你的描述可能对不上。据我了解,破碎模型有俩种:

    一种是breakge frequency(破碎频率)和daughtor size distribution (DSD)分开的, 一种是破碎频率+DSD写成一个大方程的;

    比如Laakkonen是第一种,Luo是第二种,Liao也是第二种。是这样么?

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

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

    这是我的.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

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

  • 网上一个管道小王哥

    Meshy
    16
    0 赞同
    16 帖子
    23k 浏览
    UPC_王骅钟U

    @下里巴人 你好,请问这个网格划分的文件你那里还有吗?能不能给我发一个呀,我最近也在画一个管道想相贯的网格,但是相关的地方一直处理不好

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

    我感觉有必要擦除流体与固体的试算结果,再进入下一个迭代步。固体好说,只有一个D,我令D=D.oldTime();就能把D的试算结果消去,但流体就很麻烦,因为有很多个变量,我试了半天也不知道该怎么把所有变量的值都擦除掉,恢复迭代前的值

    没太看明白

  • 搅拌反应器边界层网格划分

    Meshy
    8
    0 赞同
    8 帖子
    11k 浏览

    @alex 看到你的网格了,感谢分享,感觉划分的非常不错,好厉害!学习了!