Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 如何修改并编译kOmegaSSTBase?

如何修改并编译kOmegaSSTBase?

已定时 已固定 已锁定 已移动 OpenFOAM
11 帖子 5 发布者 3.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 吴 离线
    吴 离线
    吴优
    写于 最后由 李东岳 编辑
    #1

    大家好,最近的研究中涉及到对kOmegaSST模型的自定义修改,kOmegaSST模型的结构非常特别,它的具体定义并不在kOmegaSST.C,而是在kOmegaSSTBase.C中,我需要修改的部分也在Base中。我希望实现的是从原模型复制一个副本,之后修改副本并编译,这样可以保留原模型。但是我在整个湍流模型的文件夹下的任何一个Make/flies文件中都找不到kOmegaSSTBase的相关信息,因此是不能直接通过在Make/flies中添加一行来编译的。我找到的一个相关的参考资料链接地址也是自定义了一个新的SST模型,但是他并没有修改过kOmegaSSTBase文件,因此我按照他的教程执行后,会遇到:

    fatal error: myKOmegaSSTBase.H: 没有那个文件或目录
    

    这应该还是Base文件没有正常编译引起的,似乎是需要先编译Base,有没有前辈可以赐教,十分感谢!

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    高版本的openfoam是通过宏来实现的湍流模型丁一。Base文件是直接通过"include"包含在kOmega模型中的,OpenFOAM的思路是做一个Base,然后衍生出不同的kOmega
    如果你要改Base的话,可以做个kOmegaSSTBase2.H等,然后再你的kOmegaSST2中把他们包含进去
    这块不是改一个文件,要改好多
    可以看看turbulentTransportModels.C

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    吴 1 条回复 最后回复
  • 吴 离线
    吴 离线
    吴优
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 谢谢老师的回复,我是按照在turbulentTransportModels.C加入了

    #include "kOmegaSST2.H"
    makeRASModel(kOmegaSST2);
    

    然后在kOmegaSST2.H中

    #include "kOmegaSST2Base.H"
    

    实现这一编译过程,但是还是会报错,似乎要增加一个新的Base需要修改的地方非常多。
    我目前暂时采取的解决方案是直接在修改原base,增加了一个Switch,在算例的constant/turbulenceProperties中设置true来启动新功能,这样也算保留了原模型,打算后面如果找到更好的方法我再改过来

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hyperLDK
    在 中回复了 吴优 最后由 编辑
    #4

    @吴优 请问您现在找到更好的方法了吗?我最近也准备原kOmegaSST模型基础上进行修改

    杜 1 条回复 最后回复
  • ShaneHEEES 离线
    ShaneHEEES 离线
    ShaneHEEE
    写于 最后由 编辑
    #5

    看看这个示例https://github.com/ancolli/kOmegaSSTCC/blob/master/kOmegaSSTCC/makeTurModel.C

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hyperLDK
    在 中回复了 ShaneHEEE 最后由 编辑
    #6

    @ShaneHEEE 多谢

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #7

    楼主好像是北航的,ID应该是真名,在疫情之前来参加过课,好像当时来了4 5个人,来了好多,我对他们印象深刻,因为他们D老师让我把无痛苦ns笔记写成pdf的,后来就变成了现在这个样子,300多页了。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • 杜 离线
    杜 离线
    杜浚平
    在 中回复了 hyperLDK 最后由 编辑
    #8

    @hyperLDK 您好,请问您实现了Base文件的修改了吗,我也遇到了同样的问题

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hyperLDK
    在 中回复了 杜浚平 最后由 编辑
    #9

    @杜浚平 不好意思,我目前也没有实现

    杜 1 条回复 最后回复
  • 杜 离线
    杜 离线
    杜浚平
    在 中回复了 hyperLDK 最后由 编辑
    #10

    @hyperLDK 您好,我刚刚实现了v2312版本下的编译,参考了这个case

    但目前我的makeTurbmodels.C文件会有一些waring还不知道该怎样修改,不过模型可以使用了

    makeTurbmodels.C文件为:

    /*---------------------------------------------------------------------------*\
      =========                 |
      \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
       \\    /   O peration     |
        \\  /    A nd           | www.openfoam.com
         \\/     M anipulation  |
    -------------------------------------------------------------------------------
        Copyright (C) 2013-2016 OpenFOAM Foundation
        Copyright (C) 2020 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 "IncompressibleTurbulenceModel.H"
    #include "incompressible/transportModel/transportModel.H"
    #include "addToRunTimeSelectionTable.H"
    #include "makeTurbulenceModel.H"
    
    #include "laminarModel.H"
    #include "RASModel.H"
    
    
    //- Define turbulence model typedefs, with EddyDiffusivity
    #define defineTurbulenceModelTypes(                                            \
        Alpha, Rho, baseModel, BaseModel, Transport)                               \
                                                                                   \
        namespace Foam                                                             \
        {                                                                          \
            typedef TurbulenceModel                                                \
            <                                                                      \
                Alpha,                                                             \
                Rho,                                                               \
                baseModel,                                                         \
                Transport                                                          \
            > Transport##baseModel;                                                \
                                                                                   \
            typedef BaseModel<Transport>                                           \
                Transport##BaseModel;                                              \
                                                                                   \
            typedef RASModel<Transport##BaseModel>                                 \
                RAS##Transport##BaseModel;                                         \
        }
    
    // Legacy name
    #define makeTurbulenceModelTypes(a, b, c, d, e) \
        defineTurbulenceModelTypes(a, b, c, d, e)
    
    
    #define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport)   \
        /* Turbulence typedefs */                                                  \
        defineTurbulenceModelTypes(Alpha, Rho, baseModel, BaseModel, Transport)    \
                                                                                   \
        namespace Foam                                                             \
        {                                                                          \
            /* Turbulence selection table */                                       \
            defineTemplateRunTimeSelectionTable                                    \
            (                                                                      \
                Transport##baseModel,                                              \
                dictionary                                                         \
            );                                                                     \
                                                                                   \
            /* RAS models */                                                       \
            defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0);     \
                                                                                   \
            defineTemplateRunTimeSelectionTable                                    \
            (RAS##Transport##BaseModel, dictionary);                               \
                                                                                   \
            addToRunTimeSelectionTable                                             \
            (                                                                      \
                Transport##baseModel,                                              \
                RAS##Transport##BaseModel,                                         \
                dictionary                                                         \
            );                                                                     \
        }
    
    
    #define makeTemplatedTurbulenceModel(BaseModel, SType, Type)                   \
        defineNamedTemplateTypeNameAndDebug                                        \
            (Foam::SType##Models::Type<Foam::BaseModel>, 0);                       \
                                                                                   \
        namespace Foam                                                             \
        {                                                                          \
            namespace SType##Models                                                \
            {                                                                      \
                typedef Type<BaseModel> Type##SType##BaseModel;                    \
                                                                                   \
                addToRunTimeSelectionTable                                         \
                (                                                                  \
                    SType##BaseModel,                                              \
                    Type##SType##BaseModel,                                        \
                    dictionary                                                     \
                );                                                                 \
            }                                                                      \
        }
    
    
    #define makeTurbulenceModel(BaseModel, SType, Type)                            \
        namespace Foam                                                             \
        {                                                                          \
            namespace SType##Models                                                \
            {                                                                      \
                defineTypeNameAndDebug(Type, 0);                                   \
                                                                                   \
                addToRunTimeSelectionTable                                         \
                (                                                                  \
                    SType##BaseModel,                                              \
                    Type,                                                          \
                    dictionary                                                     \
                );                                                                 \
            }                                                                      \
        }
        
    makeTurbulenceModelTypes
    (
        geometricOneField,
        geometricOneField,
        incompressibleTurbulenceModel,
        IncompressibleTurbulenceModel,
        transportModel
    );
    
    #define makeRASModel(Type)                                                     \
        makeTemplatedTurbulenceModel                                               \
        (transportModelIncompressibleTurbulenceModel, RAS, Type)
        
    makeBaseTurbulenceModel
    (
        geometricOneField,
        geometricOneField,
        incompressibleTurbulenceModel,
        IncompressibleTurbulenceModel,
        transportModel
    );
        
        
    // -------------------------------------------------------------------------- //
    // RAS models
    // -------------------------------------------------------------------------- //       
    
    #include "kOmegaSSTV.H"
    makeRASModel(kOmegaSSTV);
    
    // **************************************************************************** //
    
    
    // ************************************************************************* //
    
    

    问题如下:

    Making dependencies: makeTurbModel.C
    g++ -std=c++14 -m64 -pthread -DOPENFOAM=2312 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3  -DNoRepository -ftemplate-depth-100  -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/turbulenceModels/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/incompressible/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/transportModels -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/fvOptions/Ininclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/finiteVolume/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/meshTools/lnInclude  -iquote. -IlnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/OpenFOAM/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/OSspecific/POSIX/lnInclude   -fPIC -c makeTurbModel.C -o Make/linux64GccDPInt32Opt/makeTurbModel.o
    makeTurbModel.C:40:0: warning: "defineTurbulenceModelTypes" redefined
     #define defineTurbulenceModelTypes(                                            \
     
    In file included from makeTurbModel.C:33:0:
    /home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/turbulenceModels/lnInclude/makeTurbulenceModel.H:30:0: note: this is the location of the previous definition
     #define defineTurbulenceModelTypes(                                            \
     makeTurbModel.C:65:0: warning: "makeBaseTurbulenceModel" redefined
     #define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport)   \
     
    In file included from makeTurbModel.C:33:0:
    /home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/turbulenceModels/lnInclude/makeTurbulenceModel.H:61:0: note: this is the location of the previous definition
     #define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport)   \
     
    g++ -std=c++14 -m64 -pthread -DOPENFOAM=2312 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -Wno-unknown-pragmas -O3  -DNoRepository -ftemplate-depth-100  -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/turbulenceModels/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/TurbulenceModels/incompressible/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/transportModels -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/fvOptions/Ininclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/finiteVolume/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/meshTools/lnInclude  -iquote. -IlnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/OpenFOAM/lnInclude -I/home/ad/OpenFOAM/OpenFOAM-v2312/src/OSspecific/POSIX/lnInclude   -fPIC -shared -Xlinker --add-needed -Xlinker --no-as-needed  Make/linux64GccDPInt32Opt/makeTurbModel.o -L/home/ad/OpenFOAM/OpenFOAM-v2312/platforms/linux64GccDPInt32Opt/lib \
        -lturbulenceModels -lincompressibleTransportModels -lincompressibleTurbulenceModels -lfvOptions -lfiniteVolume -lmeshTools   -o /home/ad/OpenFOAM/ad-v2312/platforms/linux64GccDPInt32Opt/lib/libMyIncompressiblenceModels.so
    

    希望对你有帮助!

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hyperLDK
    在 中回复了 杜浚平 最后由 编辑
    #11

    @杜浚平 十分感谢!

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]