Foam::tmp<Foam::Field<Type> > Foam::distanceSurface::interpolateField ( const interpolation<Type>& interpolator ) const { const fvMesh& fvm = static_cast<const fvMesh&>(mesh()); // Get fields to sample. Assume volPointInterpolation! const GeometricField<Type, fvPatchField, volMesh>& volFld = interpolator.psi(); tmp<GeometricField<Type, pointPatchField, pointMesh> > pointFld ( volPointInterpolation::New(fvm).interpolate(volFld) ); // Sample. if (cell_) { return isoSurfCellPtr_().interpolate ( ( average_ ? pointAverage(pointFld())() : volFld ), pointFld() ); } else { return isoSurfPtr_().interpolate ( ( average_ ? pointAverage(pointFld())() : volFld ), pointFld() ); } }
Foam::tmp<Foam::Field<Type> > Foam::distanceSurface::interpolateField ( const interpolation<Type>& interpolator ) const { const fvMesh& fvm = static_cast<const fvMesh&>(mesh()); // Get fields to sample. Assume volPointInterpolation! const GeometricField<Type, fvPatchField, volMesh>& volFld = interpolator.psi(); tmp<GeometricField<Type, pointPatchField, pointMesh> > pointFld ( volPointInterpolation::New(fvm).interpolate(volFld) ); // Sample. return surface().interpolate(volFld, pointFld()); }