turbulence->divDevSigma(U),不可能完成的任务


  • 管理员

    首先,turbulence为一个指针,类型为incompressible::momentumTransportModel(在createFields.H中):

    autoPtr<incompressible::momentumTransportModel> turbulence
    (
        incompressible::momentumTransportModel::New(U, phi, laminarTransport)
    );
    

    为了能合理调用上述代码,需要在求解器中引入相应的类型,因此头文件中需要包含kinematicMomentumTransportModel.H。在这个文件以及上述高亮的代码中,

    • incompressible::momentumTransportModel中的incompressible为名称空间

    • momentumTransportModelIncompressibleMomentumTransportModel<transportModel>,其中的transportModel在createFields.H中被定义为laminarTransport

    所以turbulence为一个autoPtr<incompressible::IncompressibleMomentumTransportModel<laminarTransport>>类型。这并不是一个具体的类型,因此需要New出来一个。

    同时,在IncompressibleMomentumTransportModel.H中定义的IncompressibleMomentumTransportModel继承于MomentumTransportModelMomentumTransportModel又继承与incompressibleMomentumTransportModelincompressibleMomentumTransportModel又继承于momentumTransportModel。所以,在IncompressibleMomentumTransportModel被构造的时候,上述类型均被构造。

    整理一下,在对IncompressibleMomentumTransportModel<transportModel>使用New函数的时候,需要顺次进行构造:
    -> IncompressibleMomentumTransportModel
    -> MomentumTransportModel
    -> incompressibleMomentumTransportModel
    -> momentumTransportModel(在这一步读取算例constant文件夹下的momentumTransport文件)

    这还没完,上述类型都是虚基类。比如,在构建


  • 管理员

    I Quit



  • CFD原来也可以套娃吗,i了i了



  • 最近在看divDevSigma这个函数,请问老师标题指的“不可能完成的任务”是什么意思:jingya:


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1