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<scalar, GeoMesh> > atan2 ( const DimensionedField<scalar, GeoMesh>& dsf1, const DimensionedField<scalar, GeoMesh>& dsf2 ) { tmp<DimensionedField<scalar, GeoMesh> > tAtan2 ( new DimensionedField<scalar, GeoMesh> ( IOobject ( "atan2(" + dsf1.name() + ',' + dsf2.name() + ')', dsf1.instance(), dsf1.db() ), dsf1.mesh(), atan2(dsf1.dimensions(), dsf2.dimensions()) ) ); atan2(tAtan2().getField(), dsf1.getField(), dsf2.getField()); return tAtan2; }
Foam::tmp<Foam::fvMatrix<Type> > Foam::fvm::SuSp ( const DimensionedField<scalar, volMesh>& susp, const GeometricField<Type, fvPatchField, volMesh>& vf ) { const fvMesh& mesh = vf.mesh(); tmp<fvMatrix<Type> > tfvm ( new fvMatrix<Type> ( vf, dimVol*susp.dimensions()*vf.dimensions() ) ); fvMatrix<Type>& fvm = tfvm(); fvm.diag() += mesh.V().getField()*max(susp.getField(), scalar(0)); fvm.source() -= mesh.V().getField()*min(susp.getField(), scalar(0)) *vf.internalField(); return tfvm; }
tmp<DimensionedField<scalar, GeoMesh> > atan2 ( const dimensionedScalar& ds, const DimensionedField<scalar, GeoMesh>& dsf ) { tmp<DimensionedField<scalar, GeoMesh> > tAtan2 ( new DimensionedField<scalar, GeoMesh> ( IOobject ( "atan2(" + ds.name() + ',' + dsf.name() + ')', dsf.instance(), dsf.db() ), dsf.mesh(), atan2(ds, dsf.dimensions()) ) ); atan2(tAtan2().getField(), ds.value(), dsf.getField()); return tAtan2; }
tmp<DimensionedField<scalar, GeoMesh> > stabilise ( const DimensionedField<scalar, GeoMesh>& dsf, const dimensioned<scalar>& ds ) { tmp<DimensionedField<scalar, GeoMesh> > tRes ( new DimensionedField<scalar, GeoMesh> ( IOobject ( "stabilise(" + dsf.name() + ',' + ds.name() + ')', dsf.instance(), dsf.db() ), dsf.mesh(), dsf.dimensions() + ds.dimensions() ) ); stabilise(tRes().getField(), dsf.getField(), ds.value()); return tRes; }
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 tmp<DimensionedField<scalar, GeoMesh> >& tdsf2 ) { const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2(); tmp<DimensionedField<scalar, GeoMesh> > tPow = reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New ( tdsf2, "pow(" + dsf1.name() + ',' + dsf2.name() + ')', pow ( dsf1.dimensions(), dimensionedScalar("1", 1.0, dsf2.dimensions()) ) ); pow(tPow().getField(), dsf1.getField(), dsf2.getField()); reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf2); return tPow; }
tmp<DimensionedField<scalar, GeoMesh> > atan2 ( const DimensionedField<scalar, GeoMesh>& dsf1, const tmp<DimensionedField<scalar, GeoMesh> >& tdsf2 ) { const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2(); tmp<DimensionedField<scalar, GeoMesh> > tAtan2 = reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New ( tdsf2, "atan2(" + dsf1.name() + ',' + dsf2.name() + ')', atan2(dsf1.dimensions(), dsf2.dimensions()) ); atan2(tAtan2().getField(), dsf1.getField(), dsf2.getField()); reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf2); return tAtan2; }
Foam::tmp<Foam::fvMatrix<Type> > Foam::fvm::Sp ( const DimensionedField<scalar, volMesh>& sp, const GeometricField<Type, fvPatchField, volMesh>& vf ) { const fvMesh& mesh = vf.mesh(); tmp<fvMatrix<Type> > tfvm ( new fvMatrix<Type> ( vf, dimVol*sp.dimensions()*vf.dimensions() ) ); fvMatrix<Type>& fvm = tfvm(); fvm.diag() += mesh.V().getField()*sp.getField(); return tfvm; }
Foam::tmp<Foam::fvMatrix<Type> > Foam::fvm::Su ( const DimensionedField<Type, volMesh>& su, const GeometricField<Type, fvPatchField, volMesh>& vf ) { const fvMesh& mesh = vf.mesh(); tmp<fvMatrix<Type> > tfvm ( new fvMatrix<Type> ( vf, dimVol*su.dimensions() ) ); fvMatrix<Type>& fvm = tfvm(); fvm.source() -= mesh.V().getField()*su.getField(); return tfvm; }