sampledDistanceSurface Class Reference

A sampledSurface defined by a distance to a surface - resolved using an iso-surface (algorithm: cell, point, topo) More...

Inheritance diagram for sampledDistanceSurface:
[legend]
Collaboration diagram for sampledDistanceSurface:
[legend]

Public Member Functions

 TypeName ("sampledDistanceSurface")
 Runtime type information. More...
 
 sampledDistanceSurface (const word &name, const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
 sampledDistanceSurface (const word name, const polyMesh &mesh, const bool interpolate, autoPtr< searchableSurface > &&surface, const scalar distance, const bool useSignedDistance)
 
virtual ~sampledDistanceSurface ()=default
 Destructor. More...
 
virtual bool needsUpdate () const
 Does the surface need an update? More...
 
virtual bool expire ()
 Mark the surface as needing an update. More...
 
virtual bool update ()
 Update the surface as required. More...
 
virtual const pointFieldpoints () const
 Points of surface. More...
 
virtual const faceListfaces () const
 Faces of surface. More...
 
virtual const labelListzoneIds () const
 Per-face zone/region information. More...
 
virtual const vectorFieldSf () const
 Face area vectors. More...
 
virtual const scalarFieldmagSf () const
 Face area magnitudes. More...
 
virtual const vectorFieldCf () const
 Face centres. More...
 
virtual tmp< scalarFieldsample (const interpolation< scalar > &sampler) const
 Sample volume field onto surface faces. More...
 
virtual tmp< vectorFieldsample (const interpolation< vector > &sampler) const
 Sample volume field onto surface faces. More...
 
virtual tmp< sphericalTensorFieldsample (const interpolation< sphericalTensor > &sampler) const
 Sample volume field onto surface faces. More...
 
virtual tmp< symmTensorFieldsample (const interpolation< symmTensor > &sampler) const
 Sample volume field onto surface faces. More...
 
virtual tmp< tensorFieldsample (const interpolation< tensor > &sampler) const
 Sample volume field onto surface faces. More...
 
virtual tmp< scalarFieldinterpolate (const interpolation< scalar > &interpolator) const
 Interpolate volume field onto surface points. More...
 
virtual tmp< vectorFieldinterpolate (const interpolation< vector > &interpolator) const
 Interpolate volume field onto surface points. More...
 
virtual tmp< sphericalTensorFieldinterpolate (const interpolation< sphericalTensor > &interpolator) const
 Interpolate volume field onto surface points. More...
 
virtual tmp< symmTensorFieldinterpolate (const interpolation< symmTensor > &interpolator) const
 Interpolate volume field onto surface points. More...
 
virtual tmp< tensorFieldinterpolate (const interpolation< tensor > &interpolator) const
 Interpolate volume field onto surface points. More...
 
virtual void print (Ostream &os, int level=0) const
 Print information. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > sampleOnFaces (const interpolation< Type > &sampler) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > sampleOnPoints (const interpolation< Type > &interpolator) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > sampleOnIsoSurfacePoints (const interpolation< Type > &interpolator) const
 
- Public Member Functions inherited from sampledSurface
 TypeName ("sampledSurface")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, sampledSurface, word,(const word &name, const polyMesh &mesh, const dictionary &dict),(name, mesh, dict))
 Declare run-time constructor selection table. More...
 
 sampledSurface (const word &name, const polyMesh &mesh, const bool interpolateToPoints=false)
 Construct from name, mesh. More...
 
 sampledSurface (const word &name, const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
autoPtr< sampledSurfaceclone () const
 Clone. More...
 
virtual ~sampledSurface ()
 Destructor - calls clearGeom() More...
 
const polyMeshmesh () const noexcept
 Access to the underlying mesh. More...
 
const wordname () const noexcept
 Name of surface. More...
 
bool enabled () const noexcept
 Surface is enabled. More...
 
bool invariant () const noexcept
 Surface is invariant with geometry change (caution) More...
 
bool isPointData () const noexcept
 Using interpolation to surface points. More...
 
virtual bool isPointData (const bool on)
 Change point/cell representation, may trigger an expire(). More...
 
scalar area () const
 The total surface area. More...
 
virtual bool hasFaceIds () const
 If element ids/order of the original surface are available. More...
 
polySurfacegetRegistrySurface (const objectRegistry &obr, word lookupName="") const
 Get surface from registry if available. More...
 
polySurfacestoreRegistrySurface (objectRegistry &obr, word lookupName="") const
 Copy surface into registry. More...
 
bool removeRegistrySurface (objectRegistry &obr, word lookupName="") const
 Remove surface from registry. More...
 
template<class Type , class GeoMeshType >
bool storeRegistryField (const objectRegistry &obr, const word &fieldName, const dimensionSet &dims, const Field< Type > &values, word lookupName="") const
 Copy/store sampled field onto registered surface (if it exists) More...
 
template<class Type , class GeoMeshType >
bool storeRegistryField (const objectRegistry &obr, const word &fieldName, const dimensionSet &dims, Field< Type > &&values, word lookupName="") const
 Move/store sampled field onto registered surface (if it exists) More...
 
surfMeshgetSurfMesh (word lookupName="") const
 Get surface from registry if available. More...
 
surfMeshstoreSurfMesh (word lookupName="") const
 Copy surface into registry. More...
 
bool removeSurfMesh (word lookupName="") const
 Remove surface from registry. More...
 
template<class Type , class GeoMeshType >
bool storeSurfMeshField (const word &fieldName, const dimensionSet &dims, const Field< Type > &values, word lookupName="") const
 Copy/store sampled Face field onto surfMesh (if it exists) More...
 
template<class Type , class GeoMeshType >
bool storeSurfMeshField (const word &fieldName, const dimensionSet &dims, Field< Type > &&values, word lookupName="") const
 Move/store sampled Face field onto surfMesh (if it exists) More...
 
virtual bool withSurfaceFields () const
 Can it sample surface-fields? More...
 
virtual tmp< scalarFieldsample (const surfaceScalarField &sField) const
 Sample surface field onto surface. More...
 
virtual tmp< vectorFieldsample (const surfaceVectorField &sField) const
 Sample surface field onto surface. More...
 
virtual tmp< sphericalTensorFieldsample (const surfaceSphericalTensorField &sField) const
 Sample surface field onto surface. More...
 
virtual tmp< symmTensorFieldsample (const surfaceSymmTensorField &sField) const
 Sample surface field onto surface. More...
 
virtual tmp< tensorFieldsample (const surfaceTensorField &sField) const
 Sample surface field onto surface. More...
 
virtual void rename (const word &newName)
 Rename. More...
 
bool interpolate () const noexcept
 Same as isPointData() More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > sampleOnFaces (const interpolation< Type > &sampler, const labelUList &elements, const faceList &fcs, const pointField &pts, const Type &defaultValue)
 
template<class Type >
Foam::tmp< Foam::Field< Type > > sampleOnPoints (const interpolation< Type > &interpolator, const labelUList &elements, const faceList &fcs, const pointField &pts)
 
template<class Type >
Foam::tmp< Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > > pointAverage (const GeometricField< Type, pointPatchField, pointMesh > &pfld)
 
- Public Member Functions inherited from meshedSurf
constexpr meshedSurf () noexcept=default
 Default construct. More...
 
virtual ~meshedSurf ()=default
 Destructor. More...
 
virtual const labelListfaceIds () const
 Per-face identifier (eg, element Id) More...
 
- Public Member Functions inherited from distanceSurface
 TypeName ("distanceSurface")
 Runtime type information. More...
 
 distanceSurface (const word &defaultSurfaceName, const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
 distanceSurface (const polyMesh &mesh, const word &surfaceType, const word &surfaceName, const isoSurfaceParams &params=isoSurfaceParams(), const bool interpolate=false)
 Construct from components with zero-distanced. More...
 
 distanceSurface (const polyMesh &mesh, const bool interpolate, const word &surfaceType, const word &surfaceName, const scalar distance, const bool useSignedDistance, const isoSurfaceParams &params=isoSurfaceParams())
 Construct from components. More...
 
 distanceSurface (const polyMesh &mesh, const bool interpolate, autoPtr< searchableSurface > &&surface, const scalar distance, const bool useSignedDistance, const isoSurfaceParams &params=isoSurfaceParams())
 
virtual ~distanceSurface ()=default
 Destructor. More...
 
void createGeometry ()
 Create/recreate the distance surface. More...
 
const wordsurfaceName () const
 The name of the underlying searchableSurface. More...
 
scalar distance () const noexcept
 The distance to the underlying searchableSurface. More...
 
const meshedSurfacesurface () const
 The underlying surface. More...
 
meshedSurfacesurface ()
 The underlying surface. More...
 
const labelListmeshCells () const
 For each face, the original cell in mesh. More...
 
labelListmeshCells ()
 For each face, the original cell in mesh. More...
 
void print (Ostream &os, int level=0) const
 Print information. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from sampledSurface
static autoPtr< sampledSurfaceNew (const word &name, const polyMesh &mesh, const dictionary &dict)
 Return a reference to the selected surface. More...
 
- Static Public Attributes inherited from sampledSurface
static const wordList surfaceFieldTypes
 Class names for surface field types. More...
 
- Protected Member Functions inherited from sampledSurface
virtual void clearGeom () const
 Additional cleanup when clearing the geometry. More...
 
 sampledSurface (const word &name, std::nullptr_t)
 Construct null. More...
 
- Protected Member Functions inherited from distanceSurface
bool hasIsoSurface () const
 Is currently backed by an isoSurfacePtr_. More...
 
template<class Type >
tmp< Field< Type > > isoSurfaceInterpolate (const GeometricField< Type, fvPatchField, volMesh > &cellValues, const Field< Type > &pointValues) const
 Interpolate volume field onto surface points. More...
 
bool refineBlockedCells (bitSet &ignoreCells, const isoSurfaceBase &isoContext) const
 Re-filter the blocked cells based on the anticipated cuts. More...
 
bitSet filterPrepareRegionSplit (const bitSet &ignoreCells) const
 Prepare blockedFaces for region split. More...
 
void filterKeepLargestRegion (bitSet &ignoreCells) const
 Keep region with the most cuts (after region split) More...
 
void filterKeepNearestRegions (bitSet &ignoreCells) const
 Keep region(s) closest to the nearest points. More...
 
void filterRegionProximity (bitSet &ignoreCells) const
 Remove region(s) that have far faces. More...
 
void filterFaceProximity ()
 Adjust extracted iso-surface to remove far faces. More...
 
- Static Protected Member Functions inherited from sampledSurface
template<class Type >
static tmp< Field< Type > > sampleOnFaces (const interpolation< Type > &sampler, const labelUList &elements, const faceList &fcs, const pointField &pts, const Type &defaultValue=Type(Zero))
 Loop for sampling volume elements to faces. More...
 
template<class Type >
static tmp< Field< Type > > sampleOnPoints (const interpolation< Type > &interpolator, const labelUList &elements, const faceList &fcs, const pointField &pts)
 Loop for interpolating volume elements to face points. More...
 
template<class Type >
static tmp< GeometricField< Type, fvPatchField, volMesh > > pointAverage (const GeometricField< Type, pointPatchField, pointMesh > &pfld)
 Create cell values by averaging the point values. More...
 

Detailed Description

A sampledSurface defined by a distance to a surface - resolved using an iso-surface (algorithm: cell, point, topo)

This is often embedded as part of a sampled surfaces function object.

Usage
Example of function object partial specification:
surfaces
{
    surface1
    {
        type        distanceSurface;
        surfaceType triSurfaceMesh;
        surfaceName something.obj;
        topology    proximity;
    }
}

Where the sub-entries comprise:

Property Description Required Default
type distanceSurface yes
distance distance from surface no 0
signed Use sign when distance is positive no true
isoMethod Iso-algorithm (cell/topo/point) no default
regularise Face simplification (enum or bool) no true
average Cell values from averaged point values no false
bounds Limit with bounding box no
surfaceType Type of surface yes
surfaceName Name of surface in triSurface/ no dict name
topology Topology filter name no none
nearestPoints Points for point-based segmentation no
maxDistance Max search distance for nearestPoints no GREAT
absProximity Max proximity of face centres no 1e-5
Source files

Definition at line 158 of file sampledDistanceSurface.H.

Constructor & Destructor Documentation

◆ sampledDistanceSurface() [1/2]

sampledDistanceSurface ( const word name,
const polyMesh mesh,
const dictionary dict 
)

Construct from dictionary.

Definition at line 54 of file sampledDistanceSurface.C.

◆ sampledDistanceSurface() [2/2]

sampledDistanceSurface ( const word  name,
const polyMesh mesh,
const bool  interpolate,
autoPtr< searchableSurface > &&  surface,
const scalar  distance,
const bool  useSignedDistance 
)

Definition at line 68 of file sampledDistanceSurface.C.

◆ ~sampledDistanceSurface()

virtual ~sampledDistanceSurface ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "sampledDistanceSurface"  )

Runtime type information.

◆ needsUpdate()

bool needsUpdate ( ) const
virtual

Does the surface need an update?

Implements sampledSurface.

Definition at line 93 of file sampledDistanceSurface.C.

◆ expire()

bool expire ( )
virtual

Mark the surface as needing an update.

May also free up unneeded data. Return false if surface was already marked as expired.

Implements sampledSurface.

Definition at line 99 of file sampledDistanceSurface.C.

References Foam::expressions::patchExpr::debug, Foam::endl(), and Foam::Pout.

Here is the call graph for this function:

◆ update()

bool update ( )
virtual

Update the surface as required.

Do nothing (and return false) if no update was needed

Implements sampledSurface.

Definition at line 121 of file sampledDistanceSurface.C.

References distanceSurface::createGeometry(), Foam::expressions::patchExpr::debug, Foam::endl(), and Foam::Pout.

Here is the call graph for this function:

◆ points()

virtual const pointField& points ( ) const
inlinevirtual

Points of surface.

Implements sampledSurface.

Definition at line 244 of file sampledDistanceSurface.H.

References distanceSurface::surface().

Here is the call graph for this function:

◆ faces()

virtual const faceList& faces ( ) const
inlinevirtual

Faces of surface.

Implements sampledSurface.

Definition at line 250 of file sampledDistanceSurface.H.

References distanceSurface::surface(), and MeshedSurface< Face >::surfFaces().

Here is the call graph for this function:

◆ zoneIds()

virtual const labelList& zoneIds ( ) const
inlinevirtual

Per-face zone/region information.

Reimplemented from meshedSurf.

Definition at line 256 of file sampledDistanceSurface.H.

References List< T >::null().

Here is the call graph for this function:

◆ Sf()

virtual const vectorField& Sf ( ) const
inlinevirtual

Face area vectors.

Implements sampledSurface.

Definition at line 262 of file sampledDistanceSurface.H.

References MeshedSurface< Face >::Sf(), and distanceSurface::surface().

Here is the call graph for this function:

◆ magSf()

virtual const scalarField& magSf ( ) const
inlinevirtual

Face area magnitudes.

Implements sampledSurface.

Definition at line 268 of file sampledDistanceSurface.H.

References MeshedSurface< Face >::magSf(), and distanceSurface::surface().

Here is the call graph for this function:

◆ Cf()

virtual const vectorField& Cf ( ) const
inlinevirtual

Face centres.

Implements sampledSurface.

Definition at line 274 of file sampledDistanceSurface.H.

References MeshedSurface< Face >::Cf(), and distanceSurface::surface().

Here is the call graph for this function:

◆ sample() [1/5]

Foam::tmp< Foam::scalarField > sample ( const interpolation< scalar > &  sampler) const
virtual

Sample volume field onto surface faces.

Implements sampledSurface.

Definition at line 142 of file sampledDistanceSurface.C.

◆ sample() [2/5]

Foam::tmp< Foam::vectorField > sample ( const interpolation< vector > &  sampler) const
virtual

Sample volume field onto surface faces.

Implements sampledSurface.

Definition at line 151 of file sampledDistanceSurface.C.

◆ sample() [3/5]

Foam::tmp< Foam::sphericalTensorField > sample ( const interpolation< sphericalTensor > &  sampler) const
virtual

Sample volume field onto surface faces.

Implements sampledSurface.

Definition at line 160 of file sampledDistanceSurface.C.

◆ sample() [4/5]

Foam::tmp< Foam::symmTensorField > sample ( const interpolation< symmTensor > &  sampler) const
virtual

Sample volume field onto surface faces.

Implements sampledSurface.

Definition at line 169 of file sampledDistanceSurface.C.

◆ sample() [5/5]

Foam::tmp< Foam::tensorField > sample ( const interpolation< tensor > &  sampler) const
virtual

Sample volume field onto surface faces.

Implements sampledSurface.

Definition at line 178 of file sampledDistanceSurface.C.

◆ interpolate() [1/5]

Foam::tmp< Foam::scalarField > interpolate ( const interpolation< scalar > &  interpolator) const
virtual

Interpolate volume field onto surface points.

Implements sampledSurface.

Definition at line 187 of file sampledDistanceSurface.C.

◆ interpolate() [2/5]

Foam::tmp< Foam::vectorField > interpolate ( const interpolation< vector > &  interpolator) const
virtual

Interpolate volume field onto surface points.

Implements sampledSurface.

Definition at line 196 of file sampledDistanceSurface.C.

◆ interpolate() [3/5]

Foam::tmp< Foam::sphericalTensorField > interpolate ( const interpolation< sphericalTensor > &  interpolator) const
virtual

Interpolate volume field onto surface points.

Implements sampledSurface.

Definition at line 204 of file sampledDistanceSurface.C.

◆ interpolate() [4/5]

Foam::tmp< Foam::symmTensorField > interpolate ( const interpolation< symmTensor > &  interpolator) const
virtual

Interpolate volume field onto surface points.

Implements sampledSurface.

Definition at line 213 of file sampledDistanceSurface.C.

◆ interpolate() [5/5]

Foam::tmp< Foam::tensorField > interpolate ( const interpolation< tensor > &  interpolator) const
virtual

Interpolate volume field onto surface points.

Implements sampledSurface.

Definition at line 222 of file sampledDistanceSurface.C.

◆ print()

void print ( Ostream os,
int  level = 0 
) const
virtual

Print information.

Reimplemented from sampledSurface.

Definition at line 230 of file sampledDistanceSurface.C.

References Foam::name(), os(), and distanceSurface::print().

Here is the call graph for this function:

◆ sampleOnFaces()

Foam::tmp<Foam::Field<Type> > sampleOnFaces ( const interpolation< Type > &  sampler) const

Definition at line 39 of file sampledDistanceSurfaceTemplates.C.

References points.

◆ sampleOnPoints()

Foam::tmp<Foam::Field<Type> > sampleOnPoints ( const interpolation< Type > &  interpolator) const

Definition at line 56 of file sampledDistanceSurfaceTemplates.C.

References points.

◆ sampleOnIsoSurfacePoints()

Foam::tmp<Foam::Field<Type> > sampleOnIsoSurfacePoints ( const interpolation< Type > &  interpolator) const

Definition at line 78 of file sampledDistanceSurfaceTemplates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::fac::interpolate(), mesh, Foam::New(), Foam::nl, interpolation< Type >::psi(), and tmp< T >::reset().

Here is the call graph for this function:

The documentation for this class was generated from the following files: