An abstract class for surfaces with sampling. More...
Classes | |
class | iNew |
PtrList read-construction helper. More... | |
class | iNewCapture |
PtrList read-construction helper that captures dictionaries used during creation. More... | |
Public Member Functions | |
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< sampledSurface > | clone () const |
Clone. More... | |
virtual | ~sampledSurface () |
Destructor - calls clearGeom() More... | |
const polyMesh & | mesh () const noexcept |
Access to the underlying mesh. More... | |
const word & | name () 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 pointField & | points () const =0 |
Points of surface. More... | |
virtual const faceList & | faces () const =0 |
Faces of surface. More... | |
virtual const vectorField & | Sf () const =0 |
Face area vectors. More... | |
virtual const scalarField & | magSf () const =0 |
Face area magnitudes. More... | |
virtual const vectorField & | Cf () 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... | |
polySurface * | getRegistrySurface (const objectRegistry &obr, word lookupName="") const |
Get surface from registry if available. More... | |
polySurface * | storeRegistrySurface (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< scalarField > | sample (const interpolation< scalar > &sampler) const =0 |
Sample volume field onto surface faces. More... | |
virtual tmp< vectorField > | sample (const interpolation< vector > &sampler) const =0 |
Sample volume field onto surface faces. More... | |
virtual tmp< sphericalTensorField > | sample (const interpolation< sphericalTensor > &sampler) const =0 |
Sample volume field onto surface faces. More... | |
virtual tmp< symmTensorField > | sample (const interpolation< symmTensor > &sampler) const =0 |
Sample volume field onto surface faces. More... | |
virtual tmp< tensorField > | sample (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< scalarField > | sample (const surfaceScalarField &sField) const |
Sample surface field onto surface. More... | |
virtual tmp< vectorField > | sample (const surfaceVectorField &sField) const |
Sample surface field onto surface. More... | |
virtual tmp< sphericalTensorField > | sample (const surfaceSphericalTensorField &sField) const |
Sample surface field onto surface. More... | |
virtual tmp< symmTensorField > | sample (const surfaceSymmTensorField &sField) const |
Sample surface field onto surface. More... | |
virtual tmp< tensorField > | sample (const surfaceTensorField &sField) const |
Sample surface field onto surface. More... | |
virtual tmp< scalarField > | interpolate (const interpolation< scalar > &interpolator) const =0 |
Interpolate volume field onto surface points. More... | |
virtual tmp< vectorField > | interpolate (const interpolation< vector > &interpolator) const =0 |
Interpolate volume field onto surface points. More... | |
virtual tmp< sphericalTensorField > | interpolate (const interpolation< sphericalTensor > &interpolator) const =0 |
Interpolate volume field onto surface points. More... | |
virtual tmp< symmTensorField > | interpolate (const interpolation< symmTensor > &interpolator) const =0 |
Interpolate volume field onto surface points. More... | |
virtual tmp< tensorField > | interpolate (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 labelList & | zoneIds () const |
Per-face zone/region information. More... | |
virtual const labelList & | faceIds () const |
Per-face identifier (eg, element Id) More... | |
Static Public Member Functions | |
static autoPtr< sampledSurface > | New (const word &name, const polyMesh &mesh, const dictionary &dict) |
Return a reference to the selected surface. More... | |
Protected Member Functions | |
virtual void | clearGeom () const |
Additional cleanup when clearing the geometry. More... | |
sampledSurface (const word &name, std::nullptr_t) | |
Construct null. More... | |
Static Protected Member Functions | |
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... | |
An abstract class for surfaces with sampling.
The constructors for the derived classes should generally start in a 'expired' condition (ie, needsUpdate() == true) and rely on a subsequent call to the update() method to complete the initialization. Delaying the final construction as late as possible allows the construction of surfaces that may depend on intermediate calculation results (eg, iso-surfaces) and also avoids the unnecessary reconstruction of surfaces between sampling intervals.
It is the responsibility of the caller to ensure that the surface update() is called before the surface is used. The update() method implementation should do nothing when the surface is already up-to-date.
Any sampler is assumed to work for the standard volume field types. Some may also support surface fields.
Dictionary entries:
Property | Description | Required | Default |
---|---|---|---|
name | Alternative name | no | |
enabled | Enable/disable the surface? | no | yes |
interpolate | Interpolate to nodes instead of faces | no | false |
invariant | Invariant with geometry change (use with caution!) | no | false |
Definition at line 116 of file sampledSurface.H.
|
explicitprotected |
Construct null.
Definition at line 75 of file sampledSurface.C.
sampledSurface | ( | const word & | name, |
const polyMesh & | mesh, | ||
const bool | interpolateToPoints = false |
||
) |
Construct from name, mesh.
Definition at line 87 of file sampledSurface.C.
sampledSurface | ( | const word & | name, |
const polyMesh & | mesh, | ||
const dictionary & | dict | ||
) |
Construct from dictionary.
Definition at line 103 of file sampledSurface.C.
|
virtual |
Destructor - calls clearGeom()
Definition at line 120 of file sampledSurface.C.
|
staticprotected |
Loop for sampling volume elements to faces.
The defaultValue is used for invalid (negative) elements
|
staticprotected |
Loop for interpolating volume elements to face points.
|
staticprotected |
Create cell values by averaging the point values.
|
protectedvirtual |
Additional cleanup when clearing the geometry.
Definition at line 36 of file sampledSurface.C.
Referenced by sampledCuttingSurface::expire(), sampledFaceZone::expire(), sampledPlane::expire(), sampledPatch::expire(), sampledMeshedSurface::expire(), sampledCuttingPlane::expire(), sampledIsoSurface::expire(), sampledCuttingSurface::update(), and sampledPlane::update().
TypeName | ( | "sampledSurface" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
sampledSurface | , | ||
word | , | ||
(const word &name, const polyMesh &mesh, const dictionary &dict) | , | ||
(name, mesh, dict) | |||
) |
Declare run-time constructor selection table.
|
inline |
|
static |
Return a reference to the selected surface.
Definition at line 45 of file sampledSurface.C.
References DebugInfo, dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, dictionary::get(), mesh, and Foam::name().
Referenced by sampledSurface::iNew::operator()(), sampledSurface::iNewCapture::operator()(), sampledSurfaces::read(), and surfaceFieldValue::read().
|
inlinenoexcept |
Access to the underlying mesh.
Definition at line 350 of file sampledSurface.H.
Referenced by sampledPatch::patchIDs(), and sampledFaceZone::zoneIDs().
|
inlinenoexcept |
Name of surface.
Definition at line 358 of file sampledSurface.H.
Referenced by sampledSurface::iNew::operator()(), sampledSurface::iNewCapture::operator()(), and sampledPatchInternalField::print().
|
inlinenoexcept |
Surface is enabled.
Definition at line 366 of file sampledSurface.H.
Referenced by sampledSurfaces::read().
|
inlinenoexcept |
Surface is invariant with geometry change (caution)
Definition at line 374 of file sampledSurface.H.
|
inlinenoexcept |
Using interpolation to surface points.
Definition at line 382 of file sampledSurface.H.
|
virtual |
Change point/cell representation, may trigger an expire().
Definition at line 139 of file sampledSurface.C.
|
pure virtual |
Does the surface need an update?
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Mark the surface as needing an update.
May also free up unneeded data. Return false if surface was already marked as expired.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Update the surface as required.
Do nothing (and return false) if no update was required
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Points of surface.
Implements meshedSurf.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Faces of surface.
Implements meshedSurf.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Face area vectors.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Face area magnitudes.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
|
pure virtual |
Face centres.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledDistanceSurface, sampledPlane, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, and sampledNone.
Foam::scalar area | ( | ) | const |
The total surface area.
Definition at line 128 of file sampledSurface.C.
References Foam::gSum().
|
inlinevirtual |
If element ids/order of the original surface are available.
Reimplemented in sampledMeshedSurface.
Definition at line 447 of file sampledSurface.H.
Foam::polySurface * getRegistrySurface | ( | const objectRegistry & | obr, |
word | lookupName = "" |
||
) | const |
Get surface from registry if available.
obr | The objectRegistry to use |
lookupName | Optional lookup name, use surface name if empty |
Definition at line 27 of file sampledSurfaceRegister.C.
References objectRegistry::getObjectPtr(), and Foam::name().
Foam::polySurface * storeRegistrySurface | ( | objectRegistry & | obr, |
word | lookupName = "" |
||
) | const |
Copy surface into registry.
obr | The objectRegistry to use |
lookupName | Optional lookup name, use surface name if empty |
Definition at line 42 of file sampledSurfaceRegister.C.
References polySurface::copySurface(), and Foam::name().
bool removeRegistrySurface | ( | objectRegistry & | obr, |
word | lookupName = "" |
||
) | const |
Remove surface from registry.
obr | The objectRegistry to use |
lookupName | Optional lookup name, use surface name if empty |
Definition at line 67 of file sampledSurfaceRegister.C.
References objectRegistry::checkOut().
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)
Definition at line 175 of file sampledSurfaceTemplates.C.
References polySurface::storeField(), and Foam::HashTableOps::values().
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)
Definition at line 199 of file sampledSurfaceTemplates.C.
References polySurface::storeField(), and Foam::HashTableOps::values().
|
pure virtual |
Sample volume field onto surface faces.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledPlane, sampledDistanceSurface, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
pure virtual |
Sample volume field onto surface faces.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledPlane, sampledDistanceSurface, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
pure virtual |
Sample volume field onto surface faces.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledPlane, sampledDistanceSurface, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
pure virtual |
Sample volume field onto surface faces.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledPlane, sampledDistanceSurface, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
pure virtual |
Sample volume field onto surface faces.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledPlane, sampledDistanceSurface, sampledFaceZone, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
virtual |
Can it sample surface-fields?
Reimplemented in sampledPatch, and sampledFaceZone.
Definition at line 147 of file sampledSurface.C.
|
virtual |
Sample surface field onto surface.
Reimplemented in sampledPatch, and sampledFaceZone.
Definition at line 154 of file sampledSurface.C.
References NotImplemented.
|
virtual |
Sample surface field onto surface.
Reimplemented in sampledPatch, and sampledFaceZone.
Definition at line 164 of file sampledSurface.C.
References NotImplemented.
|
virtual |
Sample surface field onto surface.
Reimplemented in sampledPatch, and sampledFaceZone.
Definition at line 174 of file sampledSurface.C.
References NotImplemented.
|
virtual |
Sample surface field onto surface.
Reimplemented in sampledPatch, sampledPatch, sampledFaceZone, and sampledFaceZone.
Definition at line 184 of file sampledSurface.C.
References NotImplemented.
|
virtual |
Sample surface field onto surface.
Reimplemented in sampledPatch, sampledPatch, sampledFaceZone, and sampledFaceZone.
|
pure virtual |
Interpolate volume field onto surface points.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledNone, and sampledMeshedSurfaceNormal.
|
pure virtual |
Interpolate volume field onto surface points.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledMeshedSurfaceNormal, and sampledNone.
|
pure virtual |
Interpolate volume field onto surface points.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledPatchInternalField, sampledMeshedSurfaceNormal, and sampledNone.
|
pure virtual |
Interpolate volume field onto surface points.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledMeshedSurfaceNormal, sampledPatchInternalField, and sampledNone.
|
pure virtual |
Interpolate volume field onto surface points.
Implemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledCuttingSurface, sampledInterface, sampledMeshedSurfaceNormal, sampledPatchInternalField, and sampledNone.
|
inlinevirtual |
Rename.
Definition at line 659 of file sampledSurface.H.
|
virtual |
Print information.
Reimplemented in sampledIsoSurface, sampledCuttingPlane, sampledMeshedSurface, sampledPatch, sampledFaceZone, sampledPlane, sampledDistanceSurface, sampledThresholdCellFaces, sampledInterface, and sampledPatchInternalField.
Definition at line 203 of file sampledSurface.C.
References os(), and Foam::type().
|
inlinenoexcept |
Same as isPointData()
Definition at line 678 of file sampledSurface.H.
Foam::tmp<Foam::Field<Type> > sampleOnFaces | ( | const interpolation< Type > & | sampler, |
const labelUList & | elements, | ||
const faceList & | fcs, | ||
const pointField & | pts, | ||
const Type & | defaultValue | ||
) |
Definition at line 29 of file sampledSurfaceTemplates.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, interpolation< Type >::interpolate(), Foam::New(), pts, UList< T >::size(), and Foam::HashTableOps::values().
Foam::tmp<Foam::Field<Type> > sampleOnPoints | ( | const interpolation< Type > & | interpolator, |
const labelUList & | elements, | ||
const faceList & | fcs, | ||
const pointField & | pts | ||
) |
Definition at line 73 of file sampledSurfaceTemplates.C.
References Foam::exit(), f(), Foam::FatalError, FatalErrorInFunction, forAll, interpolation< Type >::interpolate(), Foam::New(), pts, UList< T >::size(), Foam::HashTableOps::values(), and Foam::Zero.
Foam::tmp<Foam::VolumeField<Type> > pointAverage | ( | const PointField< Type > & | pfld | ) |
Definition at line 123 of file sampledSurfaceTemplates.C.
References IOobject::db(), Foam::dimless, forAll, mesh, DimensionedField< Type, GeoMesh >::mesh(), Foam::New(), and Foam::Zero.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.