sampledIsoSurface Class Reference

A sampledSurface defined by a surface of iso value. It only recalculates the iso-surface if time changes. To be used in sampleSurfaces / functionObjects. More...

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

Public Member Functions

 TypeName ("sampledIsoSurface")
 Runtime type information. More...
 
 sampledIsoSurface (const isoSurfaceParams &params, const word &name, const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
 sampledIsoSurface (const word &name, const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
virtual ~sampledIsoSurface ()
 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...
 
const meshedSurfacesurface () const
 The currently created surface geometry. More...
 
const labelListmeshCells () const
 For each face, the original cell in mesh. 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 magnitudes. 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...
 
virtual bool needsUpdate () const =0
 Does the surface need an update? More...
 
virtual bool expire ()=0
 Mark the surface as needing an update. More...
 
virtual bool update ()=0
 Update the surface as required. More...
 
virtual const pointFieldpoints () const =0
 Points of surface. More...
 
virtual const faceListfaces () const =0
 Faces of surface. More...
 
virtual const vectorFieldSf () const =0
 Face area vectors. More...
 
virtual const scalarFieldmagSf () const =0
 Face area magnitudes. More...
 
virtual const vectorFieldCf () const =0
 Face centres. 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...
 
virtual tmp< scalarFieldsample (const interpolation< scalar > &sampler) const =0
 Sample volume field onto surface faces. More...
 
virtual tmp< vectorFieldsample (const interpolation< vector > &sampler) const =0
 Sample volume field onto surface faces. More...
 
virtual tmp< sphericalTensorFieldsample (const interpolation< sphericalTensor > &sampler) const =0
 Sample volume field onto surface faces. More...
 
virtual tmp< symmTensorFieldsample (const interpolation< symmTensor > &sampler) const =0
 Sample volume field onto surface faces. More...
 
virtual tmp< tensorFieldsample (const interpolation< tensor > &sampler) const =0
 Sample volume field onto surface faces. 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 tmp< scalarFieldinterpolate (const interpolation< scalar > &interpolator) const =0
 Interpolate volume field onto surface points. More...
 
virtual tmp< vectorFieldinterpolate (const interpolation< vector > &interpolator) const =0
 Interpolate volume field onto surface points. More...
 
virtual tmp< sphericalTensorFieldinterpolate (const interpolation< sphericalTensor > &interpolator) const =0
 Interpolate volume field onto surface points. More...
 
virtual tmp< symmTensorFieldinterpolate (const interpolation< symmTensor > &interpolator) const =0
 Interpolate volume field onto surface points. More...
 
virtual tmp< tensorFieldinterpolate (const interpolation< tensor > &interpolator) const =0
 Interpolate volume field onto surface points. More...
 
virtual void rename (const word &newName)
 Rename. More...
 
virtual void print (Ostream &os, int level=0) const
 Print information. 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::VolumeField< Type > > pointAverage (const PointField< Type > &pfld)
 
- Public Member Functions inherited from meshedSurf
constexpr meshedSurf () noexcept=default
 Default construct. More...
 
virtual ~meshedSurf ()=default
 Destructor. More...
 
virtual const pointFieldpoints () const =0
 The points used for the surface. More...
 
virtual const faceListfaces () const =0
 The faces used for the surface. More...
 
virtual const labelListzoneIds () const
 Per-face zone/region information. More...
 
virtual const labelListfaceIds () const
 Per-face identifier (eg, element Id) More...
 

Protected Member Functions

bool hasIsoSurface () const
 Is currently backed by an isoSurfacePtr_. 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...
 

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 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< VolumeField< Type > > pointAverage (const PointField< Type > &pfld)
 Create cell values by averaging the point values. More...
 

Detailed Description

A sampledSurface defined by a surface of iso value. It only recalculates the iso-surface if time changes. To be used in sampleSurfaces / functionObjects.

Usage
Example of function object partial specification:
surfaces
{
    surface1
    {
        type     isoSurface;
        isoField T;
        isoValue 373;
        isoMethod topo;
    }
}

Where the sub-entries comprise:

Property Description Required Default
type isoSurface yes
isoField field name for obtaining iso-surface yes
isoValue value of iso-surface yes
isoValues values for iso-surfaces yes
isoMethod Iso-algorithm (cell/topo/point) no topo
average cell values from averaged point values no false
bounds limit with bounding box no
zone limit to cell zone (name or regex) no
zones limit to cell zones (names, regexs) no
simpleSubMesh Simple sub-meshing in algorithm itself no false
exposedPatchName name for zone subset optional
regularise point snapping (bool or enum) no true
triangulate triangulate faces (if regularise) no false
mergeTol tolerance for merging points no 1e-6

Some options are limited to particular algorithms.

  • triangulate is topo-only
  • simpleSubMesh and multiple isoValues are not available for point.
Note
For the isoMethod point should use a "cellPoint" sampleScheme since the triangles generated with this algorithm span across cells.
Source files

Definition at line 173 of file sampledIsoSurface.H.

Constructor & Destructor Documentation

◆ sampledIsoSurface() [1/2]

◆ sampledIsoSurface() [2/2]

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

Construct from dictionary.

Definition at line 703 of file sampledIsoSurface.C.

◆ ~sampledIsoSurface()

~sampledIsoSurface ( )
virtual

Destructor.

Definition at line 716 of file sampledIsoSurface.C.

Member Function Documentation

◆ hasIsoSurface()

bool hasIsoSurface ( ) const
inlineprotected

Is currently backed by an isoSurfacePtr_.

Definition at line 287 of file sampledIsoSurface.H.

References bool.

◆ TypeName()

TypeName ( "sampledIsoSurface"  )

Runtime type information.

◆ needsUpdate()

bool needsUpdate ( ) const
virtual

Does the surface need an update?

Implements sampledSurface.

Definition at line 722 of file sampledIsoSurface.C.

References mesh, fvMesh::time(), and TimeState::timeIndex().

Here is the call graph for this function:

◆ 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 730 of file sampledIsoSurface.C.

References sampledSurface::clearGeom().

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 752 of file sampledIsoSurface.C.

◆ surface()

const meshedSurface & surface ( ) const
inline

The currently created surface geometry.

Definition at line 338 of file sampledIsoSurface.H.

Referenced by sampledIsoSurface::Cf(), sampledIsoSurface::faces(), sampledIsoSurface::magSf(), sampledIsoSurface::points(), sampledIsoSurface::sampleOnFaces(), and sampledIsoSurface::Sf().

Here is the caller graph for this function:

◆ meshCells()

const labelList & meshCells ( ) const
inline

For each face, the original cell in mesh.

Definition at line 348 of file sampledIsoSurface.H.

Referenced by sampledIsoSurface::sampleOnFaces().

Here is the caller graph for this function:

◆ points()

virtual const pointField & points ( ) const
inlinevirtual

Points of surface.

Implements sampledSurface.

Definition at line 358 of file sampledIsoSurface.H.

References PrimitivePatch< FaceList, PointField >::points(), and sampledIsoSurface::surface().

Referenced by sampledIsoSurface::sampleOnFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faces()

virtual const faceList & faces ( ) const
inlinevirtual

Faces of surface.

Implements sampledSurface.

Definition at line 364 of file sampledIsoSurface.H.

References sampledIsoSurface::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 370 of file sampledIsoSurface.H.

References List< label >::null().

Here is the call graph for this function:

◆ Sf()

virtual const vectorField & Sf ( ) const
inlinevirtual

Face area magnitudes.

Implements sampledSurface.

Definition at line 376 of file sampledIsoSurface.H.

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

Here is the call graph for this function:

◆ magSf()

virtual const scalarField & magSf ( ) const
inlinevirtual

Face area magnitudes.

Implements sampledSurface.

Definition at line 382 of file sampledIsoSurface.H.

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

Here is the call graph for this function:

◆ Cf()

virtual const vectorField & Cf ( ) const
inlinevirtual

Face centres.

Implements sampledSurface.

Definition at line 388 of file sampledIsoSurface.H.

References MeshedSurface< Face >::Cf(), and sampledIsoSurface::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 759 of file sampledIsoSurface.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 769 of file sampledIsoSurface.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 779 of file sampledIsoSurface.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 789 of file sampledIsoSurface.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 799 of file sampledIsoSurface.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 809 of file sampledIsoSurface.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 819 of file sampledIsoSurface.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 828 of file sampledIsoSurface.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 838 of file sampledIsoSurface.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 848 of file sampledIsoSurface.C.

◆ print()

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

Print information.

Reimplemented from sampledSurface.

Definition at line 857 of file sampledIsoSurface.C.

References Foam::flatOutput(), Foam::name(), and os().

Here is the call graph for this function:

◆ sampleOnFaces()

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

Definition at line 38 of file sampledIsoSurfaceTemplates.C.

References sampledIsoSurface::meshCells(), sampledIsoSurface::points(), sampledSurface::sampleOnFaces(), and sampledIsoSurface::surface().

Here is the call graph for this function:

◆ sampleOnPoints()

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

Definition at line 57 of file sampledIsoSurfaceTemplates.C.

References points, and sampledSurface::sampleOnPoints().

Here is the call graph for this function:

◆ sampleOnIsoSurfacePoints()

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

Definition at line 81 of file sampledIsoSurfaceTemplates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::interpolate(), mesh, Time::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: