tmp<DimensionedField<typename powProduct<Type, r>::type, GeoMesh> > pow ( const DimensionedField<Type, GeoMesh>& df, typename powProduct<Type, r>::type ) { typedef typename powProduct<Type, r>::type powProductType; tmp<DimensionedField<powProductType, GeoMesh> > tPow ( new DimensionedField<powProductType, GeoMesh> ( IOobject ( "pow(" + df.name() + ',' + name(r) + ')', df.instance(), df.db() ), df.mesh(), pow(df.dimensions(), r) ) ); pow<Type, r, GeoMesh>(tPow().field(), df.field()); return tPow; }
tmp<DimensionedField<scalar, GeoMesh> > pow ( const dimensionedScalar& ds, const DimensionedField<scalar, GeoMesh>& dsf ) { tmp<DimensionedField<scalar, GeoMesh> > tPow ( new DimensionedField<scalar, GeoMesh> ( IOobject ( "pow(" + ds.name() + ',' + dsf.name() + ')', dsf.instance(), dsf.db() ), dsf.mesh(), pow(ds, dsf.dimensions()) ) ); pow(tPow().getField(), ds.value(), dsf.getField()); return tPow; }
tmp<DimensionedField<scalar, GeoMesh> > pow ( const DimensionedField<scalar, GeoMesh>& dsf1, const DimensionedField<scalar, GeoMesh>& dsf2 ) { tmp<DimensionedField<scalar, GeoMesh> > tPow ( new DimensionedField<scalar, GeoMesh> ( IOobject ( "pow(" + dsf1.name() + ',' + dsf2.name() + ')', dsf1.instance(), dsf1.db() ), dsf1.mesh(), pow ( dsf1.dimensions(), dimensionedScalar("1", 1.0, dsf2.dimensions()) ) ) ); pow(tPow().getField(), dsf1.getField(), dsf2.getField()); return tPow; }
tmp<DimensionedField<typename powProduct<Type, r>::type, GeoMesh> > pow ( const tmp<DimensionedField<Type, GeoMesh> >& tdf, typename powProduct<Type, r>::type ) { typedef typename powProduct<Type, r>::type powProductType; const DimensionedField<Type, GeoMesh>& df = tdf(); tmp<DimensionedField<powProductType, GeoMesh> > tPow = reuseTmpDimensionedField<powProductType, Type, GeoMesh>::New ( tdf, "pow(" + df.name() + ',' + name(r) + ')', pow(df.dimensions(), r) ); pow<Type, r, GeoMesh>(tPow().field(), df.field()); reuseTmpDimensionedField<powProductType, Type, GeoMesh>::clear(tdf); return tPow; }
tmp<DimensionedField<scalar, GeoMesh> > pow ( const tmp<DimensionedField<scalar, GeoMesh> >& tdsf1, const tmp<DimensionedField<scalar, GeoMesh> >& tdsf2 ) { const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1(); const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2(); tmp<DimensionedField<scalar, GeoMesh> > tPow = reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>:: New ( tdsf1, tdsf2, "pow(" + dsf1.name() + ',' + dsf2.name() + ')', pow ( dsf1.dimensions(), dimensionedScalar("1", 1.0, dsf2.dimensions()) ) ); pow(tPow().getField(), dsf1.getField(), dsf2.getField()); reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>::clear ( tdsf1, tdsf2 ); return tPow; }
tmp<DimensionedField<scalar, GeoMesh> > pow ( const dimensionedScalar& ds, const tmp<DimensionedField<scalar, GeoMesh> >& tdsf ) { const DimensionedField<scalar, GeoMesh>& dsf = tdsf(); tmp<DimensionedField<scalar, GeoMesh> > tPow = reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New ( tdsf, "pow(" + ds.name() + ',' + dsf.name() + ')', pow(ds, dsf.dimensions()) ); pow(tPow().getField(), ds.value(), dsf.getField()); reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf); return tPow; }