A sampledSurface defined by a surface of iso value. Always triangulated. To be used in sampleSurfaces / functionObjects. Recalculates iso surface only if time changes. More...
Public Member Functions | |
TypeName ("sampledIsoSurface") | |
Runtime type information. 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... | |
virtual const pointField & | points () const |
Points of surface. More... | |
virtual const faceList & | faces () const |
Faces of surface. More... | |
const isoSurface & | surface () const |
void | getIsoField () |
Lookup or read isoField. Sets volFieldPtr_ and pointFieldPtr_. More... | |
virtual tmp< scalarField > | sample (const volScalarField &) const |
Sample field on surface. More... | |
virtual tmp< vectorField > | sample (const volVectorField &) const |
Sample field on surface. More... | |
virtual tmp< sphericalTensorField > | sample (const volSphericalTensorField &) const |
Sample field on surface. More... | |
virtual tmp< symmTensorField > | sample (const volSymmTensorField &) const |
Sample field on surface. More... | |
virtual tmp< tensorField > | sample (const volTensorField &) const |
Sample field on surface. More... | |
virtual tmp< scalarField > | interpolate (const interpolation< scalar > &) const |
Interpolate field on surface. More... | |
virtual tmp< vectorField > | interpolate (const interpolation< vector > &) const |
Interpolate field on surface. More... | |
virtual tmp< sphericalTensorField > | interpolate (const interpolation< sphericalTensor > &) const |
Interpolate field on surface. More... | |
virtual tmp< symmTensorField > | interpolate (const interpolation< symmTensor > &) const |
Interpolate field on surface. More... | |
virtual tmp< tensorField > | interpolate (const interpolation< tensor > &) const |
Interpolate field on surface. More... | |
virtual void | print (Ostream &) const |
Write. More... | |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | sampleField (const GeometricField< Type, fvPatchField, volMesh > &vField) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | interpolateField (const interpolation< Type > &interpolator) const |
![]() | |
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 &, const bool interpolate=false) | |
Construct from name, mesh. More... | |
sampledSurface (const word &name, const polyMesh &, const dictionary &) | |
Construct from dictionary. More... | |
autoPtr< sampledSurface > | clone () const |
Clone. More... | |
virtual | ~sampledSurface () |
Destructor. More... | |
const polyMesh & | mesh () const |
Access to the underlying mesh. More... | |
const word & | name () const |
Name of surface. More... | |
bool | interpolate () const |
Interpolation requested for surface. More... | |
virtual const vectorField & | Sf () const |
Return face area vectors. More... | |
virtual const scalarField & | magSf () const |
Return face area magnitudes. More... | |
virtual const vectorField & | Cf () const |
Return face centres as vectorField. More... | |
scalar | area () const |
The total surface area. More... | |
template<class Type > | |
Type | integrate (const Field< Type > &) const |
Integration of a field across the surface. More... | |
template<class Type > | |
Type | integrate (const tmp< Field< Type > > &) const |
Integration of a field across the surface. More... | |
template<class Type > | |
Type | average (const Field< Type > &) const |
Area-averaged value of a field across the surface. More... | |
template<class Type > | |
Type | average (const tmp< Field< Type > > &) const |
Area-averaged value of a field across the surface. More... | |
tmp< Field< scalar > > | project (const Field< scalar > &) const |
Project field onto surface. More... | |
tmp< Field< scalar > > | project (const Field< vector > &) const |
Project field onto surface. More... | |
tmp< Field< vector > > | project (const Field< sphericalTensor > &) const |
Project field onto surface. More... | |
tmp< Field< vector > > | project (const Field< symmTensor > &) const |
Project field onto surface. More... | |
tmp< Field< vector > > | project (const Field< tensor > &) const |
Project field onto surface. More... | |
template<class Type > | |
tmp< GeometricField< Type, fvPatchField, volMesh > > | pointAverage (const GeometricField< Type, pointPatchField, pointMesh > &pfld) const |
Interpolate from points to cell centre. More... | |
virtual void | rename (const word &newName) |
Rename. More... | |
template<class ReturnType , class Type > | |
Foam::tmp< Foam::Field< ReturnType > > | project (const tmp< Field< Type > > &field) const |
template<class Type > | |
Foam::tmp< Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > > | pointAverage (const GeometricField< Type, pointPatchField, pointMesh > &pfld) const |
Private Member Functions | |
void | getIsoFields () const |
Get fields needed to recreate iso surface. More... | |
bool | updateGeometry () const |
Create iso surface (if time has changed) More... | |
template<class Type > | |
tmp< Field< Type > > | sampleField (const GeometricField< Type, fvPatchField, volMesh > &vField) const |
Sample field on faces. More... | |
template<class Type > | |
tmp< Field< Type > > | interpolateField (const interpolation< Type > &) const |
Private Attributes | |
const word | isoField_ |
Field to get isoSurface of. More... | |
const scalar | isoVal_ |
Iso value. More... | |
const boundBox | bounds_ |
Optional bounding box to trim triangles against. More... | |
const scalar | mergeTol_ |
Merge tolerance. More... | |
const Switch | regularise_ |
Whether to coarse. More... | |
const Switch | average_ |
Whether to recalculate cell values as average of point values. More... | |
cellZoneID | zoneID_ |
Zone name/index (if restricted to zones) More... | |
word | exposedPatchName_ |
For zones: patch to put exposed faces into. More... | |
autoPtr< isoSurface > | surfPtr_ |
autoPtr< faceList > | facesPtr_ |
Triangles converted to faceList. More... | |
label | prevTimeIndex_ |
Time at last call, also track if surface needs an update. More... | |
autoPtr< volScalarField > | storedVolFieldPtr_ |
Cached volfield. More... | |
const volScalarField * | volFieldPtr_ |
const pointScalarField * | pointFieldPtr_ |
Cached pointfield. More... | |
autoPtr< fvMeshSubset > | subMeshPtr_ |
Cached submesh. More... | |
autoPtr< volScalarField > | storedVolSubFieldPtr_ |
Cached volfield. More... | |
const volScalarField * | volSubFieldPtr_ |
const pointScalarField * | pointSubFieldPtr_ |
Cached pointfield. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< sampledSurface > | New (const word &name, const polyMesh &, const dictionary &) |
Return a reference to the selected surface. More... | |
![]() | |
virtual void | clearGeom () const |
A sampledSurface defined by a surface of iso value. Always triangulated. To be used in sampleSurfaces / functionObjects. Recalculates iso surface only if time changes.
Definition at line 53 of file sampledIsoSurface.H.
sampledIsoSurface | ( | const word & | name, |
const polyMesh & | mesh, | ||
const dictionary & | dict | ||
) |
Construct from dictionary.
Definition at line 455 of file sampledIsoSurface.C.
References polyMesh::boundaryMesh(), dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, polyBoundaryMesh::findPatchID(), Foam::Info, sampledSurface::interpolate(), dictionary::lookup(), mesh, and polyBoundaryMesh::names().
|
virtual |
Destructor.
Definition at line 513 of file sampledIsoSurface.C.
|
private |
Get fields needed to recreate iso surface.
Definition at line 48 of file sampledIsoSurface.C.
References sampledIsoSurface::average_, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, objectRegistry::foundObject(), Foam::gMax(), Foam::gMin(), IOobject::headerOk(), Foam::Info, GeometricField::internalField(), volPointInterpolation::interpolate(), sampledSurface::interpolate(), sampledIsoSurface::isoField_, objectRegistry::lookupObject(), Foam::max(), sampledSurface::mesh(), Foam::min(), IOobject::MUST_READ, MeshObject< fvMesh, UpdateableMeshObject, volPointInterpolation >::New(), IOobject::NO_WRITE, IOobject::path(), sampledSurface::pointAverage(), sampledIsoSurface::pointFieldPtr_, sampledIsoSurface::pointSubFieldPtr_, tmp::ptr(), sampledIsoSurface::storedVolFieldPtr_, sampledIsoSurface::storedVolSubFieldPtr_, sampledIsoSurface::subMeshPtr_, fvMesh::time(), Time::timeName(), Foam::type(), dimensioned::value(), sampledIsoSurface::volFieldPtr_, and sampledIsoSurface::volSubFieldPtr_.
|
private |
Create iso surface (if time has changed)
Do nothing (and return false) if no update was needed
Definition at line 345 of file sampledIsoSurface.C.
References polyMesh::boundaryMesh(), polyMesh::cellZones(), Foam::endl(), Foam::Info, mesh, Foam::nl, patches, points, Foam::Pout, fvMesh::time(), and TimeState::timeIndex().
|
private |
Sample field on faces.
|
private |
TypeName | ( | "sampledIsoSurface" | ) |
Runtime type information.
|
virtual |
Does the surface need an update?
Implements sampledSurface.
Definition at line 519 of file sampledIsoSurface.C.
References mesh, fvMesh::time(), and TimeState::timeIndex().
|
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 527 of file sampledIsoSurface.C.
|
virtual |
Update the surface as required.
Do nothing (and return false) if no update was needed
Implements sampledSurface.
Definition at line 548 of file sampledIsoSurface.C.
|
inlinevirtual |
Points of surface.
Implements sampledSurface.
Definition at line 174 of file sampledIsoSurface.H.
References PrimitivePatch< Face, FaceList, PointField, PointType >::points(), and sampledIsoSurface::surface().
|
inlinevirtual |
Faces of surface.
Implements sampledSurface.
Definition at line 180 of file sampledIsoSurface.H.
References sampledIsoSurface::facesPtr_, forAll, s(), and sampledIsoSurface::surface().
|
inline |
Definition at line 197 of file sampledIsoSurface.H.
References sampledIsoSurface::surfPtr_.
Referenced by sampledIsoSurface::faces(), and sampledIsoSurface::points().
void getIsoField | ( | ) |
Lookup or read isoField. Sets volFieldPtr_ and pointFieldPtr_.
|
virtual |
Sample field on surface.
Implements sampledSurface.
Definition at line 555 of file sampledIsoSurface.C.
|
virtual |
Sample field on surface.
Implements sampledSurface.
Definition at line 564 of file sampledIsoSurface.C.
|
virtual |
Sample field on surface.
Implements sampledSurface.
|
virtual |
Sample field on surface.
Implements sampledSurface.
|
virtual |
Sample field on surface.
Implements sampledSurface.
|
virtual |
Interpolate field on surface.
Implements sampledSurface.
Definition at line 600 of file sampledIsoSurface.C.
|
virtual |
Interpolate field on surface.
Implements sampledSurface.
Definition at line 609 of file sampledIsoSurface.C.
|
virtual |
Interpolate field on surface.
Implements sampledSurface.
Definition at line 617 of file sampledIsoSurface.C.
|
virtual |
Interpolate field on surface.
Implements sampledSurface.
Definition at line 626 of file sampledIsoSurface.C.
|
virtual |
Interpolate field on surface.
Implements sampledSurface.
Definition at line 635 of file sampledIsoSurface.C.
|
virtual |
Write.
Reimplemented from sampledSurface.
Definition at line 643 of file sampledIsoSurface.C.
References Foam::name().
Foam::tmp<Foam::Field<Type> > sampleField | ( | const GeometricField< Type, fvPatchField, volMesh > & | vField | ) | const |
Definition at line 36 of file sampledIsoSurfaceTemplates.C.
Foam::tmp<Foam::Field<Type> > interpolateField | ( | const interpolation< Type > & | interpolator | ) | const |
Definition at line 50 of file sampledIsoSurfaceTemplates.C.
References Foam::compressible::New(), and interpolation::psi().
|
private |
Field to get isoSurface of.
Definition at line 60 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
private |
Iso value.
Definition at line 63 of file sampledIsoSurface.H.
|
private |
Optional bounding box to trim triangles against.
Definition at line 66 of file sampledIsoSurface.H.
|
private |
Merge tolerance.
Definition at line 69 of file sampledIsoSurface.H.
|
private |
Whether to coarse.
Definition at line 72 of file sampledIsoSurface.H.
|
private |
Whether to recalculate cell values as average of point values.
Definition at line 75 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Zone name/index (if restricted to zones)
Definition at line 78 of file sampledIsoSurface.H.
|
mutableprivate |
For zones: patch to put exposed faces into.
Definition at line 81 of file sampledIsoSurface.H.
|
mutableprivate |
Definition at line 83 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::surface().
Triangles converted to faceList.
Definition at line 86 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::faces().
|
mutableprivate |
Time at last call, also track if surface needs an update.
Definition at line 92 of file sampledIsoSurface.H.
|
mutableprivate |
Cached volfield.
Definition at line 95 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Definition at line 96 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Cached pointfield.
Definition at line 99 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Cached submesh.
Definition at line 104 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Cached volfield.
Definition at line 107 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Definition at line 108 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
|
mutableprivate |
Cached pointfield.
Definition at line 111 of file sampledIsoSurface.H.
Referenced by sampledIsoSurface::getIsoFields().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.