Public Member Functions | Friends | List of all members
isoSurfacePoint Class Reference

A surface formed by the iso value. After "Regularised Marching Tetrahedra: improved iso-surface extraction", G.M. Treece, R.W. Prager and A.H. Gee. More...

Inheritance diagram for isoSurfacePoint:
Inheritance graph
[legend]
Collaboration diagram for isoSurfacePoint:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("isoSurfacePoint")
 
 isoSurfacePoint (const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams &params=isoSurfaceParams(), const bitSet &ignoreCells=bitSet())
 
virtual ~isoSurfacePoint ()=default
 
virtual tmp< Field< scalar > > interpolate (const GeometricField< scalar, fvPatchField, volMesh > &cellValues, const Field< scalar > &pointValues) const
 interpolate scalar cellValues, pointValues on iso-surface More...
 
virtual tmp< Field< vector > > interpolate (const GeometricField< vector, fvPatchField, volMesh > &cellValues, const Field< vector > &pointValues) const
 interpolate vector cellValues, pointValues on iso-surface More...
 
virtual tmp< Field< sphericalTensor > > interpolate (const GeometricField< sphericalTensor, fvPatchField, volMesh > &cellValues, const Field< sphericalTensor > &pointValues) const
 interpolate sphericalTensor cellValues, pointValues on iso-surface More...
 
virtual tmp< Field< symmTensor > > interpolate (const GeometricField< symmTensor, fvPatchField, volMesh > &cellValues, const Field< symmTensor > &pointValues) const
 interpolate symmTensor cellValues, pointValues on iso-surface More...
 
virtual tmp< Field< tensor > > interpolate (const GeometricField< tensor, fvPatchField, volMesh > &cellValues, const Field< tensor > &pointValues) const
 interpolate tensor cellValues, pointValues on iso-surface More...
 
template<class Type >
Foam::tmp< Foam::SlicedGeometricField< Type, Foam::fvPatchField, Foam::slicedFvPatchField, Foam::volMesh > > adaptPatchFields (const GeometricField< Type, fvPatchField, volMesh > &fld) const
 
template<class Type >
Foam::label generateFaceTriPoints (const volScalarField &cVals, const scalarField &pVals, const GeometricField< Type, fvPatchField, volMesh > &cCoords, const Field< Type > &pCoords, const DynamicList< Type > &snappedPoints, const labelList &snappedCc, const labelList &snappedPoint, const label facei, const scalar neiVal, const Type &neiPt, const bool hasNeiSnap, const Type &neiSnapPt, DynamicList< Type > &triPoints, DynamicList< label > &triMeshCells) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > interpolate (const label nPoints, const labelList &triPointMergeMap, const labelList &interpolatedPoints, const List< FixedList< label, 3 >> &interpolatedOldPoints, const List< FixedList< scalar, 3 >> &interpolationWeights, const DynamicList< Type > &unmergedValues)
 
template<class Type >
Foam::tmp< Foam::Field< Type > > interpolateTemplate (const GeometricField< Type, fvPatchField, volMesh > &cCoords, const Field< Type > &pCoords) const
 
- Public Member Functions inherited from isoSurfaceBase
 isoSurfaceBase (const polyMesh &mesh, const scalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams &params=isoSurfaceParams())
 
const polyMeshmesh () const noexcept
 
const scalarFieldcellValues () const noexcept
 
const scalarFieldpointValues () const noexcept
 
scalar isoValue () const noexcept
 
const labelListmeshCells () const noexcept
 
labelListmeshCells () noexcept
 
label blockCells (UList< cutType > &cuts, const bitSet &ignoreCells) const
 
label blockCells (UList< cutType > &cuts, const boundBox &bb, const volumeType::type volType) const
 
void ignoreCyclics ()
 
label calcCellCuts (List< cutType > &cuts) const
 
cutType getFaceCutType (const label facei) const
 
cutType getCellCutType (const label celli) const
 
- Public Member Functions inherited from MeshedSurface
 ClassName ("MeshedSurface")
 
 MeshedSurface ()
 
 MeshedSurface (const MeshedSurface &surf)
 
 MeshedSurface (const UnsortedMeshedSurface< Face > &surf)
 
 MeshedSurface (MeshedSurface &&surf)
 
 MeshedSurface (UnsortedMeshedSurface< Face > &&surf)
 
 MeshedSurface (const pointField &pointLst, const UList< Face > &faceLst, const UList< surfZone > &zoneLst)
 
 MeshedSurface (pointField &&pointLst, List< Face > &&faceLst, const UList< surfZone > &zoneLst)
 
 MeshedSurface (const pointField &pointLst, const UList< Face > &faceLst, const labelUList &zoneSizes=labelUList(), const UList< word > &zoneNames=UList< word >())
 
 MeshedSurface (pointField &&pointLst, List< Face > &&faceLst, const labelUList &zoneSizes=labelUList(), const UList< word > &zoneNames=UList< word >())
 
 MeshedSurface (const polyBoundaryMesh &bMesh, const bool globalPoints=false)
 
 MeshedSurface (const surfMesh &mesh)
 
 MeshedSurface (const fileName &name)
 
 MeshedSurface (const fileName &name, const word &fileType)
 
 MeshedSurface (Istream &is)
 
 MeshedSurface (const Time &runTime)
 
 MeshedSurface (const Time &runTime, const word &surfName)
 
 MeshedSurface (const IOobject &io, const dictionary &dict, const bool isGlobal=true)
 
 declareRunTimeSelectionTable (autoPtr, MeshedSurface, fileExtension,(const fileName &name),(name))
 
virtual ~MeshedSurface ()
 
 declareMemberFunctionSelectionTable (void, UnsortedMeshedSurface, write, fileExtension,(const fileName &name, const MeshedSurface< Face > &surf, IOstreamOption streamOpt, const dictionary &options),(name, surf, streamOpt, options))
 
label size () const
 
const List< Face > & surfFaces () const
 
const labelListfaceIds () const
 
const surfZoneListsurfZones () const
 
const vectorFieldSf () const
 
const scalarFieldmagSf () const
 
const vectorFieldCf () const
 
virtual void clear ()
 
virtual void addZones (const UList< surfZone > &, const bool cullEmpty=false)
 
virtual void addZones (const labelUList &sizes, const UList< word > &names, const bool cullEmpty=false)
 
virtual void addZones (const labelUList &sizes, const bool cullEmpty=false)
 
bool addZonesToFaces ()
 
virtual void removeZones ()
 
virtual void movePoints (const pointField &newPoints)
 
virtual void scalePoints (const scalar scaleFactor)
 
virtual void cleanup (const bool verbose)
 
virtual void compactPoints (labelList &pointMap=const_cast< labelList & >(labelList::null()))
 
virtual bool stitchFaces (const scalar tol=SMALL, const bool verbose=false)
 
virtual bool checkFaces (const bool verbose=false)
 
virtual label nTriangles () const
 
virtual label nTriangles (labelList &faceMap) const
 
virtual label triangulate ()
 
virtual label triangulate (labelList &faceMap)
 
template<class BoolListType >
void subsetMeshMap (const BoolListType &include, labelList &pointMap, labelList &faceMap) const
 
MeshedSurface subsetMesh (const UList< bool > &include, labelList &pointMap, labelList &faceMap) const
 
MeshedSurface subsetMesh (const bitSet &include, labelList &pointMap, labelList &faceMap) const
 
MeshedSurface subsetMesh (const UList< bool > &include) const
 
MeshedSurface subsetMesh (const bitSet &include) const
 
MeshedSurface subsetMesh (const wordRes &includeNames, const wordRes &excludeNames=wordRes()) const
 
void swap (MeshedSurface< Face > &surf)
 
void transfer (pointField &pointLst, List< Face > &faceLst)
 
void transfer (MeshedSurface< Face > &surf)
 
void transfer (UnsortedMeshedSurface< Face > &surf)
 
autoPtr< MeshedSurface< Face > > releaseGeom ()
 
void swapFaces (List< Face > &faces)
 
void swapPoints (pointField &points)
 
bool read (const fileName &name, const word &fileType)
 
virtual bool read (const fileName &name)
 
void writeStats (Ostream &os) const
 
virtual void write (const fileName &name, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const
 
virtual void write (const fileName &name, const word &fileType, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const
 
void write (const Time &runTime, const word &surfName=word::null) const
 
void operator= (const MeshedSurface< Face > &surf)
 
void operator= (MeshedSurface< Face > &&surf)
 
 operator MeshedSurfaceProxy< Face > () const
 
template<class Face >
 MeshedSurface ()
 
template<class Face >
 MeshedSurface (const MeshedSurface< Face > &surf)
 
template<class Face >
 MeshedSurface (const UnsortedMeshedSurface< Face > &surf)
 
template<class Face >
 MeshedSurface (MeshedSurface< Face > &&surf)
 
template<class Face >
 MeshedSurface (UnsortedMeshedSurface< Face > &&surf)
 
template<class Face >
 MeshedSurface (const pointField &pointLst, const UList< Face > &faceLst, const UList< surfZone > &zoneLst)
 
template<class Face >
 MeshedSurface (pointField &&pointLst, List< Face > &&faceLst, const UList< surfZone > &zoneLst)
 
template<class Face >
 MeshedSurface (const pointField &pointLst, const UList< Face > &faceLst, const labelUList &zoneSizes, const UList< word > &zoneNames)
 
template<class Face >
 MeshedSurface (pointField &&pointLst, List< Face > &&faceLst, const labelUList &zoneSizes, const UList< word > &zoneNames)
 
template<class Face >
 MeshedSurface (const surfMesh &mesh)
 
template<class Face >
 MeshedSurface (const polyBoundaryMesh &bMesh, const bool useGlobalPoints)
 
template<class Face >
 MeshedSurface (const fileName &name, const word &fileType)
 
template<class Face >
 MeshedSurface (const fileName &name)
 
template<class Face >
 MeshedSurface (Istream &is)
 
template<class Face >
 MeshedSurface (const Time &runTime)
 
template<class Face >
 MeshedSurface (const Time &runTime, const word &surfName)
 
template<class Face >
 MeshedSurface (const IOobject &io, const dictionary &dict, const bool isGlobal)
 
bool addZonesToFaces ()
 
bool addZonesToFaces ()
 
- Public Member Functions inherited from isoSurfaceParams
 isoSurfaceParams (const algorithmType algo=algorithmType::ALGO_DEFAULT, const filterType filter=filterType::DIAGCELL) noexcept
 
 isoSurfaceParams (const dictionary &dict, const isoSurfaceParams &params=isoSurfaceParams())
 
 isoSurfaceParams (const dictionary &dict, const algorithmType algo, const filterType filter=filterType::DIAGCELL)
 
algorithmType algorithm () const noexcept
 
void algorithm (algorithmType algo) noexcept
 
filterType filter () const noexcept
 
void filter (filterType fltr) noexcept
 
bool snap () const noexcept
 
void snap (bool on) noexcept
 
scalar mergeTol () const noexcept
 
void mergeTol (const scalar relTol) noexcept
 
const boundBoxgetClipBounds () const noexcept
 
boundBoxgetClipBounds () noexcept
 
void setClipBounds (const boundBox &bb)
 
void print (Ostream &os) const
 

Friends

class isoSurfaceCell
 
class isoSurfaceTopo
 

Additional Inherited Members

- Public Types inherited from isoSurfaceBase
enum  cutType : uint8_t {
  NOTCUT = 0, CUT = 0x1, TETCUT = 0x2, SPHERE = 0x4,
  ANYCUT = 0xF, UNVISITED = 0x10, BLOCKED = 0x20, SPECIAL = 0xF0
}
 
enum  algorithmType
 
enum  filterType
 
- Public Types inherited from MeshedSurface
typedef Face face_type
 
typedef point point_type
 
- Public Types inherited from isoSurfaceParams
enum  algorithmType : uint8_t { ALGO_DEFAULT = 0, ALGO_TOPO, ALGO_CELL, ALGO_POINT }
 
enum  filterType : uint8_t {
  NONE = 0, CELL, DIAGCELL, NONMANIFOLD,
  PARTIAL = CELL, FULL = DIAGCELL, CLEAN = NONMANIFOLD
}
 
- Static Public Member Functions inherited from isoSurfaceBase
static autoPtr< isoSurfaceBaseNew (const isoSurfaceParams &params, const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const bitSet &ignoreCells=bitSet())
 
static void resetCuts (UList< cutType > &cuts)
 
- Static Public Member Functions inherited from MeshedSurface
static wordHashSet readTypes ()
 
static wordHashSet writeTypes ()
 
static bool canReadType (const word &fileType, bool verbose=false)
 
static bool canWriteType (const word &fileType, bool verbose=false)
 
static bool canRead (const fileName &name, bool verbose=false)
 
static autoPtr< MeshedSurfaceNew (const fileName &name, const word &fileType, bool mandatory=true)
 
static autoPtr< MeshedSurfaceNew (const fileName &name)
 
static void write (const fileName &name, const MeshedSurface< Face > &surf, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null)
 
static void write (const fileName &name, const word &fileType, const MeshedSurface< Face > &surf, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null)
 
- Static Public Member Functions inherited from isoSurfaceParams
static algorithmType getAlgorithmType (const dictionary &dict, const algorithmType deflt)
 
static filterType getFilterType (const dictionary &dict, const filterType deflt)
 
- Static Public Attributes inherited from isoSurfaceParams
static const Enum< algorithmTypealgorithmNames
 
static const Enum< filterTypefilterNames
 
- Protected Types inherited from isoSurfaceBase
typedef meshedSurface Mesh
 
typedef cutType cellCutType
 
- Protected Member Functions inherited from isoSurfaceBase
template<class Type >
tmp< Field< Type > > interpolateTemplate (const GeometricField< Type, fvPatchField, volMesh > &cellValues, const Field< Type > &pointValues) const
 
 isoSurfaceBase (const isoSurfaceBase &)=delete
 
void operator= (const isoSurfaceBase &)=delete
 
- Protected Member Functions inherited from MeshedSurface
void transcribe (MeshedSurface< face > &surf)
 
void checkZones (const bool verbose=true)
 
pointFieldstoredPoints ()
 
List< Face > & storedFaces ()
 
labelListstoredFaceIds ()
 
surfZoneListstoredZones ()
 
void sortFacesAndStore (DynamicList< Face > &unsortedFaces, DynamicList< label > &zoneIds, DynamicList< label > &elemIds, bool sorted)
 
virtual void remapFaces (const labelUList &faceMapNewToOld)
 
void transcribe (MeshedSurface< face > &surf)
 
void transcribe (MeshedSurface< face > &surf)
 
void transcribe (MeshedSurface< face > &surf)
 
- Static Protected Member Functions inherited from isoSurfaceBase
static label countCutType (const UList< cutType > &cuts, const uint8_t maskValue)
 
- Protected Attributes inherited from isoSurfaceBase
const polyMeshmesh_
 
const scalarFieldcVals_
 
const scalarFieldpVals_
 
const scalar iso_
 
bitSet ignoreBoundaryFaces_
 
labelList meshCells_
 

Detailed Description

A surface formed by the iso value. After "Regularised Marching Tetrahedra: improved iso-surface extraction", G.M. Treece, R.W. Prager and A.H. Gee.

Note:

The handling on coupled patches is a bit complex. All fields (values and coordinates) get rewritten so

Now the triangle generation on non-separated processor patch faces can use the neighbouring value. Any separated processor face or cyclic face gets handled just like any boundary face.

Source files

Definition at line 83 of file isoSurfacePoint.H.

Constructor & Destructor Documentation

◆ isoSurfacePoint()

isoSurfacePoint ( const volScalarField cellValues,
const scalarField pointValues,
const scalar  iso,
const isoSurfaceParams params = isoSurfaceParams(),
const bitSet ignoreCells = bitSet() 
)

◆ ~isoSurfacePoint()

virtual ~isoSurfacePoint ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "isoSurfacePoint"  )

◆ interpolate() [1/6]

virtual tmp<Field< scalar > > interpolate ( const GeometricField< scalar, fvPatchField, volMesh > &  cellValues,
const Field< scalar > &  pointValues 
) const
virtual

interpolate scalar cellValues, pointValues on iso-surface

Reimplemented from isoSurfaceBase.

◆ interpolate() [2/6]

Foam::tmp< Foam::Field< Foam::vector > > interpolate ( const GeometricField< vector, fvPatchField, volMesh > &  cellValues,
const Field< vector > &  pointValues 
) const
virtual

interpolate vector cellValues, pointValues on iso-surface

Reimplemented from isoSurfaceBase.

Definition at line 33 of file isoSurfacePoint.C.

◆ interpolate() [3/6]

Foam::tmp< Foam::Field< Foam::sphericalTensor > > interpolate ( const GeometricField< sphericalTensor, fvPatchField, volMesh > &  cellValues,
const Field< sphericalTensor > &  pointValues 
) const
virtual

interpolate sphericalTensor cellValues, pointValues on iso-surface

Reimplemented from isoSurfaceBase.

Definition at line 33 of file isoSurfacePoint.C.

◆ interpolate() [4/6]

Foam::tmp< Foam::Field< Foam::symmTensor > > interpolate ( const GeometricField< symmTensor, fvPatchField, volMesh > &  cellValues,
const Field< symmTensor > &  pointValues 
) const
virtual

interpolate symmTensor cellValues, pointValues on iso-surface

Reimplemented from isoSurfaceBase.

Definition at line 33 of file isoSurfacePoint.C.

◆ interpolate() [5/6]

Foam::tmp< Foam::Field< Foam::tensor > > interpolate ( const GeometricField< tensor, fvPatchField, volMesh > &  cellValues,
const Field< tensor > &  pointValues 
) const
virtual

interpolate tensor cellValues, pointValues on iso-surface

Reimplemented from isoSurfaceBase.

Definition at line 33 of file isoSurfacePoint.C.

◆ adaptPatchFields()

Definition at line 40 of file isoSurfacePointTemplates.C.

References f(), fld, forAll, mesh, Foam::New(), patches, fvPatchField::patchInternalField(), and fvPatchField::patchNeighbourField().

Here is the call graph for this function:

◆ generateFaceTriPoints()

Foam::label generateFaceTriPoints ( const volScalarField cVals,
const scalarField pVals,
const GeometricField< Type, fvPatchField, volMesh > &  cCoords,
const Field< Type > &  pCoords,
const DynamicList< Type > &  snappedPoints,
const labelList snappedCc,
const labelList snappedPoint,
const label  facei,
const scalar  neiVal,
const Type &  neiPt,
const bool  hasNeiSnap,
const Type &  neiSnapPt,
DynamicList< Type > &  triPoints,
DynamicList< label > &  triMeshCells 
) const

Definition at line 440 of file isoSurfacePointTemplates.C.

References DynamicList::append(), f(), forAll, FixedList::size(), and Foam::Zero.

Here is the call graph for this function:

◆ interpolate() [6/6]

Foam::tmp<Foam::Field<Type> > interpolate ( const label  nPoints,
const labelList triPointMergeMap,
const labelList interpolatedPoints,
const List< FixedList< label, 3 >> &  interpolatedOldPoints,
const List< FixedList< scalar, 3 >> &  interpolationWeights,
const DynamicList< Type > &  unmergedValues 
)

Definition at line 741 of file isoSurfacePointTemplates.C.

References forAll, Foam::New(), nPoints, Foam::HashTableOps::values(), and Foam::Zero.

Here is the call graph for this function:

◆ interpolateTemplate()

Foam::tmp<Foam::Field<Type> > interpolateTemplate ( const GeometricField< Type, fvPatchField, volMesh > &  cCoords,
const Field< Type > &  pCoords 
) const

Definition at line 804 of file isoSurfacePointTemplates.C.

References Foam::constant::physicoChemical::c2, Foam::interpolate(), and points.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ isoSurfaceCell

friend class isoSurfaceCell
friend

Definition at line 366 of file isoSurfacePoint.H.

◆ isoSurfaceTopo

friend class isoSurfaceTopo
friend

Definition at line 367 of file isoSurfacePoint.H.


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