Marching tet iso surface algorithm with optional filtering to keep only points originating from mesh edges. More...
Public Types | |
enum | filterType |
Filtering type. More... | |
Public Types inherited from isoSurfaceBase | |
enum | algorithmType : uint8_t { ALGO_POINT, ALGO_CELL, ALGO_TOPO } |
The algorithm types. More... | |
enum | filterType : uint8_t { NONE = 0, CELL, DIAGCELL, PARTIAL = CELL, FULL = DIAGCELL } |
The filtering (regularization) to apply. More... | |
Public Types inherited from MeshedSurface< face > | |
typedef face | FaceType |
Face type used. More... | |
Public Member Functions | |
TypeName ("isoSurfaceTopo") | |
Runtime type information. More... | |
isoSurfaceTopo (const polyMesh &mesh, const scalarField &cellValues, const scalarField &pointValues, const scalar iso, const filterType filter=filterType::DIAGCELL, const boundBox &bounds=boundBox::invertedBox, const bitSet &ignoreCells=bitSet()) | |
Construct from dictionary. More... | |
const labelList & | pointToFace () const |
For every point originating face (pyramid) in mesh. More... | |
const edgeList & | pointToVerts () const |
Per point: originating mesh vertex/cc. See encoding above. More... | |
template<class Type > | |
tmp< Field< Type > > | interpolate (const Field< Type > &cCoords, const Field< Type > &pCoords) const |
Interpolates cCoords,pCoords. More... | |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | interpolate (const Field< Type > &cellCoords, const Field< Type > &pointCoords) const |
Public Member Functions inherited from isoSurfaceBase | |
isoSurfaceBase (const scalar iso, const boundBox &bounds=boundBox::invertedBox) | |
Construct with iso value. More... | |
scalar | isoValue () const |
The iso-value associated with the surface. More... | |
const labelList & | meshCells () const |
For each face, the original cell in mesh. More... | |
labelList & | meshCells () |
For each face, the original cell in mesh. More... | |
Public Member Functions inherited from MeshedSurface< face > | |
MeshedSurface () | |
Construct null, an empty surface. More... | |
MeshedSurface (const MeshedSurface &surf) | |
Copy construct. More... | |
MeshedSurface (const UnsortedMeshedSurface< face > &surf) | |
Copy construct from an UnsortedMeshedSurface. More... | |
MeshedSurface (MeshedSurface &&surf) | |
Move construct. More... | |
MeshedSurface (UnsortedMeshedSurface< face > &&surf) | |
Move construct from an UnsortedMeshedSurface. More... | |
MeshedSurface (const pointField &pointLst, const UList< face > &faceLst, const UList< surfZone > &zoneLst) | |
Copy construct from components (points, faces, zones). More... | |
MeshedSurface (pointField &&pointLst, List< face > &&faceLst, const UList< surfZone > &zoneLst) | |
Move construct from components (points, faces). More... | |
MeshedSurface (const pointField &pointLst, const UList< face > &faceLst, const labelUList &zoneSizes=labelUList(), const UList< word > &zoneNames=UList< word >()) | |
Copy construct from components (points, faces). More... | |
MeshedSurface (pointField &&pointLst, List< face > &&faceLst, const labelUList &zoneSizes=labelUList(), const UList< word > &zoneNames=UList< word >()) | |
Move construct from components (points, faces). More... | |
MeshedSurface (const polyBoundaryMesh &bMesh, const bool globalPoints=false) | |
Construct from a boundary mesh with local points/faces. More... | |
MeshedSurface (const surfMesh &mesh) | |
Construct from a surfMesh. More... | |
MeshedSurface (const fileName &name) | |
Construct from file name (uses extension to determine type) More... | |
MeshedSurface (const fileName &name, const word &ext) | |
Construct from file name (uses extension to determine type) More... | |
MeshedSurface (Istream &is) | |
Construct from Istream. More... | |
MeshedSurface (const Time &runTime, const word &surfName=word::null) | |
Construct from database. More... | |
MeshedSurface (const MeshedSurface< face > &surf) | |
MeshedSurface (MeshedSurface< face > &&surf) | |
bool | read (const fileName &name, const word &ext) |
Read from file. Chooses reader based on explicit extension. More... | |
virtual bool | read (const fileName &name) |
Read from file. Chooses reader based on detected extension. More... | |
virtual void | write (const fileName &name, const dictionary &options=dictionary::null) const |
Generic write routine. Chooses writer based on extension. More... | |
void | write (const Time &t, const word &surfName=word::null) const |
Write to database. More... | |
ClassName ("MeshedSurface") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, MeshedSurface, fileExtension,(const fileName &name),(name)) | |
virtual | ~MeshedSurface () |
Destructor. More... | |
declareMemberFunctionSelectionTable (void, UnsortedMeshedSurface, write, fileExtension,(const fileName &name, const MeshedSurface< face > &surf, const dictionary &options),(name, surf, options)) | |
label | size () const |
The surface size is the number of faces. More... | |
const List< face > & | surfFaces () const |
Return const access to the faces. More... | |
const surfZoneList & | surfZones () const |
Const access to the surface zones. More... | |
const vectorField & | Sf () const |
Face area vectors (normals) More... | |
const scalarField & | magSf () const |
Face area magnitudes. More... | |
const vectorField & | Cf () const |
Face centres. More... | |
virtual void | clear () |
Clear all storage. More... | |
virtual void | addZones (const UList< surfZone > &, const bool cullEmpty=false) |
Add surface zones. More... | |
virtual void | addZones (const labelUList &sizes, const UList< word > &names, const bool cullEmpty=false) |
Add surface zones. More... | |
virtual void | addZones (const labelUList &sizes, const bool cullEmpty=false) |
Add surface zones. More... | |
bool | addZonesToFaces () |
Propagate zone information on face regions. More... | |
bool | addZonesToFaces () |
Specialization for labelledTri. More... | |
bool | addZonesToFaces () |
virtual void | removeZones () |
Remove surface zones. More... | |
virtual void | movePoints (const pointField &newPoints) |
Move points. More... | |
virtual void | scalePoints (const scalar scaleFactor) |
Scale points. A non-positive factor is ignored. More... | |
virtual void | cleanup (const bool verbose) |
Remove invalid faces. More... | |
virtual bool | stitchFaces (const scalar tol=SMALL, const bool verbose=false) |
virtual bool | checkFaces (const bool verbose=false) |
virtual label | nTriangles () const |
Count number of triangles. More... | |
virtual label | nTriangles (List< label > &faceMap) const |
Count number of triangles, returning a face map of original ids. More... | |
virtual label | triangulate () |
Triangulate in-place, returning the number of triangles added. More... | |
virtual label | triangulate (List< label > &faceMap) |
Triangulate in-place, returning the number of triangles added. More... | |
MeshedSurface | subsetMesh (const BoolListType &include, labelList &pointMap, labelList &faceMap) const |
Return new surface. More... | |
MeshedSurface | subsetMesh (const bitSet &include) const |
Return new surface. More... | |
MeshedSurface | subsetMesh (const labelHashSet &include) const |
Return new surface. More... | |
Foam::MeshedSurface< face > | subsetMesh (const BoolListType &include, labelList &pointMap, labelList &faceMap) const |
void | swap (MeshedSurface< face > &surf) |
Swap contents. More... | |
void | transfer (pointField &pointLst, List< face > &faceLst) |
Transfer the components. More... | |
void | transfer (MeshedSurface< face > &surf) |
Transfer the contents of the argument and annul the argument. More... | |
void | transfer (UnsortedMeshedSurface< face > &surf) |
Transfer the contents of the argument and annul the argument. More... | |
autoPtr< MeshedSurface< face > > | releaseGeom () |
Release (clear) geometry and return for reuse. More... | |
void | swapFaces (List< face > &faces) |
Swap the stored faces. More... | |
void | swapPoints (pointField &points) |
Swap the stored points. More... | |
void | swapZones (surfZoneList &zones) |
Swap the stored zones. More... | |
void | writeStats (Ostream &os) const |
void | operator= (const MeshedSurface< face > &surf) |
Copy assignment. More... | |
void | operator= (MeshedSurface< face > &&surf) |
Move assignment. More... | |
operator MeshedSurfaceProxy< face > () const | |
Conversion operator to MeshedSurfaceProxy. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from isoSurfaceBase | |
static filterType | getFilterType (const dictionary &dict, const isoSurfaceBase::filterType deflt) |
Get 'regularise' as bool or enumeration. More... | |
Static Public Member Functions inherited from MeshedSurface< face > | |
static void | write (const fileName &name, const MeshedSurface< face > &surf, const dictionary &options=dictionary::null) |
Write to file, selecting writer based on its extension. More... | |
static void | write (const fileName &name, const word &ext, const MeshedSurface< face > &surf, const dictionary &options=dictionary::null) |
Write to file, selecting writer based on the given extension. More... | |
static bool | canRead (const fileName &name, bool verbose=false) |
Can we read this file format? More... | |
static bool | canReadType (const word &ext, bool verbose=false) |
Can we read this file format? More... | |
static bool | canWriteType (const word &ext, bool verbose=false) |
Can we write this file format? More... | |
static wordHashSet | readTypes () |
Known readable file-types. More... | |
static wordHashSet | writeTypes () |
Known writable file-types. More... | |
static autoPtr< MeshedSurface > | New (const fileName &name, const word &ext) |
Select constructed from filename (explicit extension) More... | |
static autoPtr< MeshedSurface > | New (const fileName &name) |
Select constructed from filename (implicit extension) More... | |
Static Public Attributes inherited from isoSurfaceBase | |
static const Enum< algorithmType > | algorithmNames |
Names for the iso-surface algorithms. More... | |
static const Enum< filterType > | filterNames |
Names for the filtering types. More... | |
Protected Types inherited from isoSurfaceBase | |
typedef meshedSurface | MeshStorage |
Protected Member Functions inherited from MeshedSurface< face > | |
void | transcribe (MeshedSurface< face > &surf) |
Transfer points/zones from 'face' to other other shapes. More... | |
void | transcribe (MeshedSurface< face > &surf) |
void | transcribe (MeshedSurface< face > &surf) |
void | transcribe (MeshedSurface< face > &surf) |
void | checkZones () |
Basic sanity check on zones. More... | |
pointField & | storedPoints () |
Non-const access to global points. More... | |
List< face > & | storedFaces () |
Non-const access to the faces. More... | |
surfZoneList & | storedZones () |
Non-const access to the zones. More... | |
void | sortFacesAndStore (DynamicList< face > &unsortedFaces, DynamicList< label > &zoneIds, const bool sorted) |
Sort faces by zones and store sorted faces. More... | |
virtual void | remapFaces (const labelUList &faceMap) |
Set new zones from faceMap. More... | |
Protected Attributes inherited from isoSurfaceBase | |
const scalar | iso_ |
Iso value. More... | |
const boundBox | bounds_ |
Optional bounds. More... | |
labelList | meshCells_ |
For every face, the original cell in mesh. More... | |
Marching tet iso surface algorithm with optional filtering to keep only points originating from mesh edges.
Definition at line 58 of file isoSurfaceTopo.H.
|
strong |
Filtering type.
Definition at line 87 of file isoSurfaceBase.H.
isoSurfaceTopo | ( | const polyMesh & | mesh, |
const scalarField & | cellValues, | ||
const scalarField & | pointValues, | ||
const scalar | iso, | ||
const filterType | filter = filterType::DIAGCELL , |
||
const boundBox & | bounds = boundBox::invertedBox , |
||
const bitSet & | ignoreCells = bitSet() |
||
) |
Construct from dictionary.
Definition at line 1192 of file isoSurfaceTopo.C.
References Foam::DelaunayMeshTools::allPoints(), DynamicList< T, SizeMin >::append(), polyMesh::bounds(), clear(), Foam::expressions::patchExpr::debug, Foam::constant::electromagnetic::e, Foam::endl(), Foam::faceMap(), polyMesh::faces(), isoSurfaceBase::filterNames, forAll, Foam::interpolate(), tetMatcher::isA(), boundBox::mag(), Foam::max(), mesh, Foam::min(), Foam::constant::atomic::mp, n, primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), Foam::nl, primitiveMesh::nPoints(), Foam::Pout, Foam::returnReduce(), bitSet::set(), PtrList< T >::setSize(), List< T >::setSize(), polyPatch::start(), DynamicList< T, SizeMin >::transfer(), and Foam::Zero.
TypeName | ( | "isoSurfaceTopo" | ) |
Runtime type information.
|
inline |
For every point originating face (pyramid) in mesh.
Definition at line 221 of file isoSurfaceTopo.H.
|
inline |
Per point: originating mesh vertex/cc. See encoding above.
Definition at line 227 of file isoSurfaceTopo.H.
tmp<Field<Type> > interpolate | ( | const Field< Type > & | cCoords, |
const Field< Type > & | pCoords | ||
) | const |
Interpolates cCoords,pCoords.
Foam::tmp<Foam::Field<Type> > interpolate | ( | const Field< Type > & | cellCoords, |
const Field< Type > & | pointCoords | ||
) | const |
Definition at line 33 of file isoSurfaceTopoTemplates.C.
References fld, forAll, Foam::mag(), p0, tmp< T >::ref(), and s.