Foam::tmp<GeoField> Foam::uniformInterpolate ( const HashPtrTable<GeoField, label, Hash<label>>& fields, const labelList& indices, const scalarField& weights ) { const GeoField& field0 = *(*fields.begin()); // Interpolate tmp<GeoField> tfld ( new GeoField ( IOobject ( "uniformInterpolate(" + field0.name() + ')', field0.time().timeName(), field0.db(), IOobject::NO_READ, IOobject::AUTO_WRITE ), weights[0]*(*fields[indices[0]]) ) ); GeoField& fld = tfld(); for (label i = 1; i < indices.size(); ++i) { fld += weights[i]*(*fields[indices[i]]); } return tfld; }
Foam::tmp<GeoField> Foam::uniformInterpolate ( const HashPtrTable<GeoField, label, Hash<label>>& fields, const labelList& indices, const scalarField& weights ) { const GeoField& field0 = *(*fields.begin()); // Interpolate tmp<GeoField> tfld ( GeoField::New ( "uniformInterpolate(" + field0.name() + ')', weights[0]*(*fields[indices[0]]) ) ); GeoField& fld = tfld(); for (label i = 1; i < indices.size(); ++i) { fld += weights[i]*(*fields[indices[i]]); } return tfld; }