turbulence->divDevSigma(U),不可能完成的任务
-
首先,turbulence为一个指针,类型为
incompressible::momentumTransportModel(在createFields.H中):autoPtr<incompressible::momentumTransportModel> turbulence ( incompressible::momentumTransportModel::New(U, phi, laminarTransport) );为了能合理调用上述代码,需要在求解器中引入相应的类型,因此头文件中需要包含kinematicMomentumTransportModel.H。在这个文件以及上述高亮的代码中,
-
incompressible::momentumTransportModel中的incompressible为名称空间 -
momentumTransportModel为IncompressibleMomentumTransportModel<transportModel>,其中的transportModel在createFields.H中被定义为laminarTransport
所以
turbulence为一个autoPtr<incompressible::IncompressibleMomentumTransportModel<laminarTransport>>类型。这并不是一个具体的类型,因此需要New出来一个。同时,在IncompressibleMomentumTransportModel.H中定义的
IncompressibleMomentumTransportModel继承于MomentumTransportModel。MomentumTransportModel又继承与incompressibleMomentumTransportModel,incompressibleMomentumTransportModel又继承于momentumTransportModel。所以,在IncompressibleMomentumTransportModel被构造的时候,上述类型均被构造。整理一下,在对
IncompressibleMomentumTransportModel<transportModel>使用New函数的时候,需要顺次进行构造:
-> IncompressibleMomentumTransportModel
-> MomentumTransportModel
-> incompressibleMomentumTransportModel
-> momentumTransportModel(在这一步读取算例constant文件夹下的momentumTransport文件)这还没完,上述类型都是虚基类。比如,在构建
-

