Foam::tmp<Foam::Field >和Foam::tmp<Foam::GeometricField这两个有什么区别呢?
我在使用ddt()的时候提示我的错误是这个:
我认为应该是ddt的处理的数据类别有问题,我的数据类型是Foam::tmp<Foam::Field >,我如何把这个数据转换成ddt能够处理的数据类型呢?不知道想法对不对,希望能得到大家的帮助,谢谢
Foam::tmp<Foam::Field >和Foam::tmp<Foam::GeometricField这两个有什么区别呢?
我在使用ddt()的时候提示我的错误是这个:
对于Foam::Field
和Foam::GeometricField
是继承的关系啊。
GeometricField -> DimensionedField -> Field
这一块可以参考:OpenFOAM GeometricField详解
对于tmp其是OpenFOAM中的智能指针,可以参考:OpenFOAM内存管理
你应该代码写的有问题,
tmp<volScalarField> trho = thermo.rho();
const volScalarField& rho = trho(); //********
fvScalarMatrix hEqn (fvm::ddt(rho, h)