Skip to content
  • 0 赞同
    3 帖子
    5k 浏览
    L

    @东岳 又出现了owner和neighbour的概念,以前还以为和i,j,k一样的概念,看来又有知识点需要补咯,谢谢东岳老师

  • 中国人太勤奋了

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

    在国外的时候我每天都去办公室,最近搬家之后,每天都做公交车去。

    因为我们所离市中心很远,我住的介于市中心和所之间,这个公交车的终点站就是我们所,因此只要我上车遇到的人,不管周几,大部分都是去上班的。

    工作日的时候,人还是很多的,当然不到北京那个程度,但是有时候也没有座位。除了工作日,我做的公交车里面有一半是中国人。

    今天德国万圣节,这面一旦过节,就是个死城。这个节和周六周日连起来,连着4天放假。这4天,我每天早上来上班,有一半是中国人..

    中国人都太勤奋了。按照这个发展速度,中国以后绝对世界第一。祝愿!!!

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

    公告
    87
    0 赞同
    87 帖子
    216k 浏览

    我是南京航空航天大学航空学院2022级硕士研究生吴祥清,跟随张老师链接文本从事CFD研究,本人的主要研究方向为高速出入水,初步学习商软入门CFD现在准备编程写算法。查找学习资料了解到CFD中文网以及老师,所以想申请2022CFD青年成长支持计划,我目前正在使用LS-DYNA软件进行垂直破冰仿真,开始着手发相关论文。在本科期间接触流体力学便想深入了解这个专业,也申请了这个方向的研究生,如果论文写作顺利,便会在研究生二年级申请硕博连读,为国家军事建设贡献自己的一份力量。目前在上课之余也开始着手C++入门。但是CFD学习之路道阻且长,希望可以得到老师资助来更好的学习CFD。

  • 膜拜下,4年50篇

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

    https://wo.cristin.no/as/WebObjects/cristin.woa/wa/fres?sort=ar&pnr=32148&action=sok

    并且,大部分是Top期刊。

  • 气动中心的NNW软件使用体验

    Fluent
    7
    0 赞同
    7 帖子
    13k 浏览

    @tinghaik 个人觉得Gridstar是十分值得学习的,虽有不少缺点也已十分优秀,而且免费不用考虑盗版问题,使用起来与pointwise比较接近。而flowstar主要面对高速气动方向,这个就要看个人的专业了复合性了。我认为这些国产软件是国家队的主流产品,已经在逐步推广,不会轻易虎头蛇尾,有基础的学起来难度也不大,如果专业对的上,何乐而不为。

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

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

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

  • 0 赞同
    3 帖子
    6k 浏览
    L

    谢谢李老师

  • ICEM边界层网格问题

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

    @悟空空 图片[6NEU$Q]_ID_9SL@`1VDIPI.png

  • 0 赞同
    15 帖子
    18k 浏览
    J

    @thegame 我看之前老师回答我的是要用splitMeshRegions命令将网格分开,请问你知道toposet命令的具体操作吗?我才接触这个openfoam,不是很熟练。

  • 0 赞同
    3 帖子
    6k 浏览

    实际上对于残差水平只是收敛的必要非充分条件,当松弛因子非常小时,残差水平很显然比较小;对于收敛判定应该主要依据:1、监测点的量基本随迭代不再变化,2、质量与热量要平衡

  • LES-WALE中Ksgs如何求解

    OpenFOAM
    3
    0 赞同
    3 帖子
    6k 浏览
    香柏树

    谢谢李老师,我参考您链接里的方法改了WALE.C和.H文件,编译过程都很顺利,但是还是没有输出的Ksgs。想请您帮我看一下,我改动的在图片中,也附上了全部的WALE.C和.H文件。fb6aa985-d914-4113-a866-b6466dea71ce-图片.png 0a7c6741-e37a-475f-99f8-4bef8b726e18-图片.png 4112bd23-202d-439a-8cc4-daf15f9d19af-图片.png ```
    WALE.C

    ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Copyright (C) 2015-2018 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/>. \*---------------------------------------------------------------------------*/ #include "WALE.H" #include "fvOptions.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { namespace LESModels { // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // template<class BasicTurbulenceModel> tmp<volSymmTensorField> WALE<BasicTurbulenceModel>::Sd ( const volTensorField& gradU ) const { return dev(symm(gradU & gradU)); } template<class BasicTurbulenceModel> tmp<volScalarField> WALE<BasicTurbulenceModel>::k ( const volTensorField& gradU ) const { volScalarField magSqrSd(magSqr(Sd(gradU))); return tmp<volScalarField> ( new volScalarField ( IOobject ( IOobject::groupName("k", this->alphaRhoPhi_.group()), this->runTime_.timeName(), this->mesh_ ), sqr(sqr(Cw_)*this->delta()/Ck_)* ( pow3(magSqrSd) /( sqr ( pow(magSqr(symm(gradU)), 5.0/2.0) + pow(magSqrSd, 5.0/4.0) ) + dimensionedScalar ( "small", dimensionSet(0, 0, -10, 0, 0), small ) ) ) ) ); } template<class BasicTurbulenceModel> void WALE<BasicTurbulenceModel>::correctNut() { k_ = (this->k(fvc::grad(this->U_))); this->nut_ = Ck_*this->delta()*sqrt(k_); this->nut_.correctBoundaryConditions(); fv::options::New(this->mesh_).correct(this->nut_); BasicTurbulenceModel::correctNut(); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class BasicTurbulenceModel> WALE<BasicTurbulenceModel>::WALE ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : LESeddyViscosity<BasicTurbulenceModel> ( type, alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), Ck_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ck", this->coeffDict_, 0.094 ) ), k_ ( IOobject ( IOobject::groupName("k", this->alphaRhoPhi_.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), Sd_ ( IOobject ( Cw_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cw", this->coeffDict_, 0.325 ) ) { if (type == typeName) { this->printCoeffs(type); } } // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class BasicTurbulenceModel> bool WALE<BasicTurbulenceModel>::read() { if (LESeddyViscosity<BasicTurbulenceModel>::read()) { Ck_.readIfPresent(this->coeffDict()); Cw_.readIfPresent(this->coeffDict()); return true; } else { return false; } } template<class BasicTurbulenceModel> tmp<volScalarField> WALE<BasicTurbulenceModel>::epsilon() const { volScalarField k(this->k(fvc::grad(this->U_))); return tmp<volScalarField> ( new volScalarField ( IOobject ( IOobject::groupName("epsilon", this->alphaRhoPhi_.group()), this->runTime_.timeName(), this->mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), this->Ce_*k*sqrt(k)/this->delta() ) ); } template<class BasicTurbulenceModel> void WALE<BasicTurbulenceModel>::correct() { LESeddyViscosity<BasicTurbulenceModel>::correct(); correctNut(); } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels } // End namespace Foam // ************************************************************************* //

    WALE.H
    /---------------------------------------------------------------------------\

    \ / F ield OpenFOAM: The Open Source CFD Toolbox \ / O peration Website: https://openfoam.org \ / A nd Copyright (C) 2015-2018 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/>.

    Class
    Foam::LESModels::WALE

    Description
    The Wall-adapting local eddy-viscosity (WALE) SGS model.

    Reference: \verbatim Nicoud, F., & Ducros, F. (1999). Subgrid-scale stress modelling based on the square of the velocity gradient tensor. Flow, Turbulence and Combustion, 62(3), 183-200. \endverbatim The default model coefficients are \verbatim WALECoeffs { Ck 0.094; Ce 1.048;e Cw 0.325; } \endverbatim

    See also
    Foam::LESModels::Smagorinsky

    SourceFiles
    WALE.C

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

    #ifndef WALE_H
    #define WALE_H

    #include "LESModel.H"
    #include "LESeddyViscosity.H"

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

    namespace Foam
    {
    namespace LESModels
    {

    /---------------------------------------------------------------------------
    Class WALE Declaration
    *---------------------------------------------------------------------------*/

    template<class BasicTurbulenceModel>
    class WALE
    :
    public LESeddyViscosity<BasicTurbulenceModel>
    {
    // Private Member Functions

    // Disallow default bitwise copy construct and assignment WALE(const WALE&); void operator=(const WALE&);

    protected:

    // Protected data dimensionedScalar Ck_; dimensionedScalar Cw_; volScalarField k_; // Protected Member Functions //- Return the deviatoric symmetric part of the square of the given // velocity gradient field tmp<volSymmTensorField> Sd(const volTensorField& gradU) const; //- Return SGS kinetic energy // calculated from the given velocity gradient tmp<volScalarField> k(const volTensorField& gradU) const; //- Update the SGS eddy-viscosity virtual void correctNut();

    public:

    typedef typename BasicTurbulenceModel::alphaField alphaField; typedef typename BasicTurbulenceModel::rhoField rhoField; typedef typename BasicTurbulenceModel::transportModel transportModel; //- Runtime type information TypeName("WALE"); // Constructors //- Construct from components WALE ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName = turbulenceModel::propertiesName, const word& type = typeName ); //- Destructor virtual ~WALE() {} // Member Functions //- Read model coefficients if they have changed virtual bool read(); //- Return SGS kinetic energy virtual tmp<volScalarField> k() const { return k(fvc::grad(this->U_)); } //- Return sub-grid disipation rate virtual tmp<volScalarField> epsilon() const; //- Correct Eddy-Viscosity and related properties virtual void correct();

    };

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

    } // End namespace LESModels
    } // End namespace Foam

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

    #ifdef NoRepository
    #include "WALE.C"
    #endif

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

    #endif

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

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

    @流动魅力 我比较好奇你的相间作用力的直径怎么给的

  • 外导的书半价了

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

    0_1510344430862_草图.png

    这本书我2015年买的,花了118欧,还让外导签了名。今天双11,琢磨亚马逊有没有什么书可以买,忽然发现这本书65欧了,便宜了一半啊!

    这几年买国外书估计都花了1000欧了 :angry: 因为喜欢写写画画,打印的话A4纸太重太厚。

  • 网格划分

    Meshy
    3
    0 赞同
    3 帖子
    5k 浏览

    看错了 你这个是icem吗

  • 网格与圆管层流

    Meshy
    17
    0 赞同
    17 帖子
    27k 浏览
    winsway_zeroW

    @东岳 谢谢东岳老师哈

  • tmux 窗口 快捷键

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

    prefix z
    整个panel放大缩小

    prefix pageDownUp
    翻页

    创立文件~/.tmux.conf,设置前缀为Ctrl + w

    set -g prefix C-w unbind C-b

    与此同时,取消默认的前缀按键:

    配置完以后,重启tmux起效.

    调节窗口大小:

    prefix + ctrl + 箭头

  • 一个 scalar 等于多少个字节?

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

    懂了。谢谢大佬

  • 0 赞同
    6 帖子
    10k 浏览
    C

    @liuxiaodong 如果不用周期性边界就可以用Fluent自带的那些入口了,为什么一定要用周期性边界呢?

  • 0 赞同
    6 帖子
    10k 浏览
    G

    可以通过TUI实现(在控制台窗口中输入文本命令)

    /mesh/modify-zones/copy-move-cell-zone

    缺点是先copy再move,可以再用

    /mesh/modify-zones/delete-cell-zone

    删去移动前的网格域

  • 0 赞同
    6 帖子
    10k 浏览
    H

    ef44221d-062f-4315-b9c1-50e96688d88e-image.png

    一个公式真是折腾死了。

    我看了好几个人讲关于von Neumann稳定性分析。

    12步入门Python这个女老师讲的。 MIT qiqi wang讲的PDE课程

    还是有些地方很模糊。