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中文网

吴

吴优

@吴优
关于
帖子
13
主题
4
群组
0
粉丝
1
关注
1

帖子

最新

  • 关于omega_和omega_()中的括号
    吴 吴优

    @李东岳 东岳老师还记得我哈哈,我现在已经毕业了,现在虽然还在搞相关工作但不是专门做算法的,这几年搞的方向也比较杂,但主要还是围绕openfoam做流固耦合相关的


  • 基于Fluent 中的UDF做双向流固耦合。
    吴 吴优

    @csfine 讨论的话可以直接在帖子里,有问题大家都能看到


  • 关于omega_和omega_()中的括号
    吴 吴优

    @xpqiu 谢谢您的回复,我把 omega_ 换成omega_() ,报了类型不匹配的错误,看了一下错误提示确实omega_() 是Internal的,但是omega_() 的相关定义在哪里可以找到呢?我看这个类里面没有,是在父类中吗?还是定义在volScalarField中呢?我看到GeometricField里面有一个重载:

    inline const Internal& operator()() const;
    

    不知道实现的是不是就是这个返回Internal信息的功能


  • declareRunTimeSelectionTable在基类中可否同时调用两个?
    吴 吴优

    各位前辈好,我最近准备从其他版本移植一个动网格功能时发现新旧版本之间motionSolver类在调用declareRunTimeSelectionTable函数时存在不同,旧版本中argList使用了Istream,新版本改为了Iodictionary。这导致旧版本的派生类移植到新版本遇到问题,如果直接改新版本的话又会导致其他派生类出现问题。因此可否在基类motionSolver中调用两次declareRunTimeSelectionTable,argList分别使用Istream和Iodictionary?
    事实上我在polyPatch.H中看到了调用两个declareRunTimeSelectionTable的例子:

    TypeName("patch");
    
        //- Debug switch to disallow the use of genericPolyPatch
        static int disallowGenericPolyPatch;
    
    
        // Declare run-time constructor selection tables
    
            declareRunTimeSelectionTable
            (
                autoPtr,
                polyPatch,
                word,
                (
                    const word& name,
                    const label size,
                    const label start,
                    const label index,
                    const polyBoundaryMesh& bm,
                    const word& patchType
                ),
                (name, size, start, index, bm, patchType)
            );
    
            declareRunTimeSelectionTable
            (
                autoPtr,
                polyPatch,
                dictionary,
                (
                    const word& name,
                    const dictionary& dict,
                    const label index,
                    const polyBoundaryMesh& bm,
                    const word& patchType
                ),
                (name, dict, index, bm, patchType)
            );
    

    但是不清楚是否是为了实现上述的功能?


  • 超算上并行计算问题
    吴 吴优

    你可以试一下这里面的方法链接文本,这个报错一般就是指你的算例发散了,这个方法有可能会让你多算几步,但如果计算本身是发散的,你检查log文件时还是会看到发散的结果。这种发散有可能是超算本身的问题,我之前用超算算过一个算例的不同工况,但是总有一些特定的工况在超算上会报fork error,但是在我的台式机里就没有问题。你最好先在自己的设备里完整运行一遍,确定是不是发散的问题。


  • 关于omega_和omega_()中的括号
    吴 吴优

    各位好!
    我看到了东岳老师之前在CFD online上的一篇post:call a tmp formal value without a parentheses?,我最近在研究k-omega SST模型时也发现了类似的问题。
    例如在定义epsilonByk时,用到的是有括号的omega_():

    
    template<class BasicEddyViscosityModel>
    tmp<volScalarField::Internal>
    kOmegaSSTBase<BasicEddyViscosityModel>::epsilonByk
    (
        const volScalarField& F1,
        const volTensorField& gradU
    ) const
    {
        return betaStar_*omega_();
    }
    

    而在定义分段函数F2时用到的是omega_:

    template<class BasicEddyViscosityModel>
    tmp<volScalarField> kOmegaSSTBase<BasicEddyViscosityModel>::F2() const
    {
        tmp<volScalarField> arg2 = min
        (
            max
            (
                (scalar(2)/betaStar_)*sqrt(k_)/(omega_*y_),
                scalar(500)*(this->mu()/this->rho_)/(sqr(y_)*omega_)
            ),
            scalar(100)
        );
        return tanh(sqr(arg2));
    }
    

    我试着用Info将omega_和omega_()都输出到log文件中,得到的是完全一样的体标量场。但是有时如果删去原有的括号或是加上括号会引起报错。说明omega_和omega_()具有同样的值,但是类型不同。不知道这个括号是否也是由于<tmp>类所引起的?


  • 关于《无痛苦N-S方程笔记》中动量方程的封闭问题
    吴 吴优

    你可以参考《The finite volume method in computational fluid dynamics: An advanced introduction with OpenFOAM and MATLAB》的第17.3章,以及该章节中引用的部分文献,应该可以解答你的问题


  • 如何修改并编译kOmegaSSTBase?
    吴 吴优

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

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

    然后在kOmegaSST2.H中

    #include "kOmegaSST2Base.H"
    

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


  • 如何修改并编译kOmegaSSTBase?
    吴 吴优

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

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

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


  • 基于Fluent 中的UDF做双向流固耦合。
    吴 吴优

    弱耦合是可以实现的,如果你做的是刚体运动,就用DEFINE_CG_MOTION,如果你做的是非刚体的变形(比如弯曲变形之类的),你就要用DEFINE_GRID_MOTION,你自己定义的结构求解模块放入这两个宏内,就会随着时间推进每一步求解一次。从FLUENT中读取节点、面气动力的方法手册里都可以查到。


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

    各位foamer大家好,最近在做一个翼型的运动控制的算例,想实现一个翼型柔性运动与俯仰运动的耦合。现在在编写俯仰运动时遇到了问题。首先我用localPoints函数分别读取了翼型的x,y坐标,命令如下:

    scalarField x = patch().localPoints().component(vector::X);
    scalarField y = patch().localPoints().component(vector::Y);
    

    然后在operator里面乘以旋转矩阵,这里减去x,y是因为要求位移增量:

      amplitudex_*((x)*cos(theta)-(y)*sin(theta)-x)
    + amplitudey_*((x)*sin(theta)+(y)*cos(theta)-y)
    

    这个theta是一个时间变化的角度,例如:

    scalar theta = 20*sin(20*t.value());
    

    现在出现的问题是翼型在旋转过程中会边转边向旋转中心缩短,这个是什么原因?我个人感觉是我对localPoints函数读取点坐标理解有问题,不知道有没有人试过。


  • sixDoFRigidBodyMotion问题求助
    吴 吴优

    @一步西龙 你可以大致描述一下你是怎么给的这个柔性运动吗


  • rhoCentralFoam求解器的问题
    吴 吴优

    @zhangdong 如果mu随温度变化,transport就不选const而是sutherland,然后在transport中规定As,Ts取值

  • 登录

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