Skip to content
  • FLUENT UDF怎么获取某个面液相的面积

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

    在做液滴撞击的模拟,因为要用到动态接触角所以需要获取三相点位置以及速度。目前是想用两步迭代的位移差来计算速度,但是现在不知道怎么去算这个三相点的位置。代码是这么写的

    Thread* thread = Lookup_Thread(domain, 9); Thread** pt = THREAD_SUB_THREADS(thread); cell_t cell; face_t f; real x[ND_ND], area[ND_ND]; double max_x = 0, f_Hoff_inverse, x_hoff, temp, Ca, volume; int n; sum = 0.0; begin_c_loop_all(cell, pt[1]) { if (C_VOF(cell, pt[1]) != 0) { C_CENTROID(x, cell, pt[1]); if (x[0] > max_x) max_x = x[0]; } sum += C_VOF(cell, pt[1]); } end_c_loop_all(cell, pt[1])

    我想问一下怎么把SUM变成面积啊

  • 0 赞同
    7 帖子
    13k 浏览
    李东岳
    今天上到了4.4G,也还行

    0_1528170382541_捕获.JPG

  • 群体平衡模型luo破碎模型求助

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

    这个是气泡破碎频率@cfd_xiaobai 12ca2624-7c44-4661-ab67-6e0e209782dc-image.png

  • CFD青年成长支持计划(2021)

    公告
    137
    0 赞同
    137 帖子
    165k 浏览
    F

    想问一下李老师这个计划还有吗!!很想要这本湍流模型:mianmo:

  • 论坛搜索功能缺失 sad

    CFD彩虹条
    3
    0 赞同
    3 帖子
    4k 浏览
    李东岳

    搜索功能可用了

  • ANSYS Fluent中QMOM的植入缺陷

    Algorithm
    4
    0 赞同
    4 帖子
    7k 浏览
    S

    @东岳 谢谢:baobao:

  • 湍流的尺度的计算

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

    是否是真实的流场中湍流长度尺度呢?

    Kolmogorov是一种假说:所有雷诺数足够高的湍流中,最小的尺度由一个普适性方程来决定,其参数为粘度和耗散率。这个假说建立在若干的假定基础之上,如各向同性。随后,有了Kolmogorov尺度。所以针对你的问题,至少各大教材都认为Kolmogorov尺度是最小尺度。

    这个泰勒湍流尺度能否代表RANS求解中的尺度信息呢?

    是的

    在大涡模拟中的湍流长度如何让计算?

    LES里面的湍流长度通过$\Delta$控制。大于$\Delta$被解析,小于$\Delta$被模化。不确定是否可以通过$\Delta$定义LES的湍流长度。

  • 高等数学的CFD相关问题

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

    页数按照pdf的页数,不是书上的页数

    上册:

    https://www.jianguoyun.com/p/DVcobNoQ9s3ZBhjejV8

    73页【直线运动的速度】:导数的直观描述,CFD方程这面全是导数,大部分为偏导数,后面会介绍 75页、76页【公式1-4】 138页【公式3-3】:泰勒公式,CFD很多方程都是基于泰勒公式推导出来的

    下册

    https://www.jianguoyun.com/p/DQnanmcQ9s3ZBhjijV8

    23页:流量计算公式 71-75页:偏导数,CFD这面都是偏导,重点看一下,理解一下 77页提到了个拉普拉斯方程,随便扫一眼 78页全微分,跟CFD的物质导数关联 79页3-3 81页有个例子 112页介绍了梯度,但是感觉描述的不是很简单,可以看看 141-144页 重积分,为之后理解有限体积法做准备 224-225页 曲面积分的定义,为之后理解有限体积法做准备。其中225页有个图,比较形象 230-231页,看高数中对通量的定义 243-245页,高数中明确的对速度散度的定义
  • 求一个ka4-70导管螺旋桨几何模型!

    Fluent
    5
    0 赞同
    5 帖子
    6k 浏览
    bestucanB

    @李东岳 :high:

  • Fluent中煤粉燃烧DPM burnout 问题

    Fluent
    3
    0 赞同
    3 帖子
    4k 浏览
    梦中飞翔的阿涛

    @bestucan 感谢大佬,我研究研究,后续有问题再请教您。

  • 湍流模型编译的问题

    OpenFOAM
    9
    0 赞同
    9 帖子
    10k 浏览
    S

    @李东岳 李老师,我看了应该是一样的,第一个是v2206,第二个是of9

    const volScalarField::Internal divU ( fvc::div(fvc::absolute(this->phi(), U))().v() ); tmp<volTensorField> tgradU = fvc::grad(U); const volScalarField::Internal GbyNu ( this->type() + ":GbyNu", tgradU().v() && dev(twoSymm(tgradU().v())) ); const volScalarField::Internal G(this->GName(), nut()*GbyNu); tgradU.clear() eddyViscosity<RASModel<BasicMomentumTransportModel>>::correct(); volScalarField::Internal divU ( fvc::div(fvc::absolute(this->phi(), U))() ); tmp<volTensorField> tgradU = fvc::grad(U); volScalarField::Internal G ( this->GName(), nut()*(dev(twoSymm(tgradU().v())) && tgradU().v()) ); tgradU.clear();
  • 0 赞同
    4 帖子
    6k 浏览

    请问您是怎么解决的

  • 非牛顿流体 质量扩散系数

    Fluent
    9
    0 赞同
    9 帖子
    8k 浏览

    @bestucan 前辈,谢谢您为我解惑,非常感谢!

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

    OpenFOAM
    3
    0 赞同
    3 帖子
    4k 浏览
    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

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

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

    额,自问自答?

  • openfoam Floating point exception

    OpenFOAM
    4
    0 赞同
    4 帖子
    5k 浏览
    S

    您好,询问一下在ALM的使用中你有没有考虑分布因子的设置,可以交流一下吗,感谢

  • gambit中建模的一个问题

    Meshy
    2
    0 赞同
    2 帖子
    4k 浏览

    这个似乎用UG很容易就画出来了,再导入到gambit中不可以吗

  • 非结构网格是如何实现循环壁面的呢?

    Meshy
    3
    0 赞同
    3 帖子
    4k 浏览
    Z

    @东岳 谢谢老师

  • MPPICFoam计算求解时的错误

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

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

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

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