Classes | Public Member Functions | Protected Member Functions | List of all members
isoSurfaceTopo Class Reference

Marching tet iso surface algorithm with optional filtering to keep only points originating from mesh edges. More...

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

Public Member Functions

 TypeName ("isoSurfaceTopo")
 
 isoSurfaceTopo (const polyMesh &mesh, const scalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams &params=isoSurfaceParams(), const bitSet &ignoreCells=bitSet())
 
virtual ~isoSurfaceTopo ()=default
 
const edgeListpointToVerts () const noexcept
 
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::Field< Type > > interpolateTemplate (const Field< Type > &cellData, const Field< Type > &pointData) 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
 

Protected Member Functions

void inplaceSubsetMesh (const bitSet &include)
 
template<class Type >
tmp< Field< Type > > interpolateTemplate (const Field< Type > &cellData, const Field< Type > &pointData) const
 
- 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)
 

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
 
- 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

Marching tet iso surface algorithm with optional filtering to keep only points originating from mesh edges.

Source files

Definition at line 55 of file isoSurfaceTopo.H.

Constructor & Destructor Documentation

◆ isoSurfaceTopo()

isoSurfaceTopo ( const polyMesh mesh,
const scalarField cellValues,
const scalarField pointValues,
const scalar  iso,
const isoSurfaceParams params = isoSurfaceParams(),
const bitSet ignoreCells = bitSet() 
)

◆ ~isoSurfaceTopo()

virtual ~isoSurfaceTopo ( )
virtualdefault

Member Function Documentation

◆ inplaceSubsetMesh()

void inplaceSubsetMesh ( const bitSet include)
protected

Definition at line 1611 of file isoSurfaceTopo.C.

References Foam::faceMap().

Here is the call graph for this function:

◆ interpolateTemplate() [1/2]

tmp<Field<Type> > interpolateTemplate ( const Field< Type > &  cellData,
const Field< Type > &  pointData 
) const
protected

◆ TypeName()

TypeName ( "isoSurfaceTopo"  )

◆ pointToVerts()

const edgeList& pointToVerts ( ) const
inlinenoexcept

Definition at line 246 of file isoSurfaceTopo.H.

◆ interpolate() [1/5]

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/5]

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 39 of file isoSurfaceTopo.C.

◆ interpolate() [3/5]

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 39 of file isoSurfaceTopo.C.

◆ interpolate() [4/5]

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 39 of file isoSurfaceTopo.C.

◆ interpolate() [5/5]

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 39 of file isoSurfaceTopo.C.

◆ interpolateTemplate() [2/2]

Foam::tmp<Foam::Field<Type> > interpolateTemplate ( const Field< Type > &  cellData,
const Field< Type > &  pointData 
) const

Definition at line 27 of file isoSurfaceTopoTemplates.C.

References fld, forAll, Foam::mag(), Foam::New(), s, and edge::second().

Here is the call graph for this function:

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