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...
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 | face_type |
| The face type (same as the underlying PrimitivePatch) More... | |
| typedef point | point_type |
| The point type (same as the underlying PrimitivePatch) More... | |
Public Member Functions | |
| TypeName ("isoSurface") | |
| Runtime type information. More... | |
| isoSurface (const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceBase::filterType filter, const boundBox &bounds=boundBox::invertedBox, const scalar mergeTol=1e-6) | |
| Construct from cell values and point values. More... | |
| isoSurface (const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const bool regularise, const boundBox &bounds=boundBox::invertedBox, const scalar mergeTol=1e-6) | |
| Construct from cell values and point values. More... | |
| template<class Type > | |
| tmp< Field< Type > > | interpolate (const GeometricField< Type, fvPatchField, volMesh > &cCoords, const Field< Type > &pCoords) const |
| Interpolates cCoords, pCoords. 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 > > | interpolate (const GeometricField< Type, fvPatchField, volMesh > &cCoords, const Field< Type > &pCoords) 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 () | |
| Default construct, 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 &fileType) | |
| Construct from file name and given file type. More... | |
| MeshedSurface (Istream &is) | |
| Construct from Istream. More... | |
| MeshedSurface (const Time &runTime) | |
| Construct from database (as surfMesh) with default name. More... | |
| MeshedSurface (const Time &runTime, const word &surfName) | |
| Construct from database (as surfMesh) with given surface name. More... | |
| MeshedSurface (const IOobject &io, const dictionary &dict, const bool isGlobal=true) | |
| Read construct using IO to find the file location. More... | |
| MeshedSurface (const MeshedSurface< face > &surf) | |
| MeshedSurface (MeshedSurface< face > &&surf) | |
| bool | read (const fileName &name, const word &fileType) |
| 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, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const |
| Generic write routine. Chooses writer based on extension. More... | |
| virtual void | write (const fileName &name, const word &fileType, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const |
| Generic write routine for given format type. More... | |
| void | write (const Time &runTime, const word &surfName=word::null) const |
| Write to database. More... | |
| ClassName ("MeshedSurface") | |
| Declare type-name (with debug switch) 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, IOstreamOption streamOpt, const dictionary &options),(name, surf, streamOpt, 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 labelList & | faceIds () const |
| Return const access to faces ids. 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 (labelList &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 (labelList &faceMap) |
| Triangulate in-place, returning the number of triangles added. More... | |
| void | subsetMeshMap (const BoolListType &include, labelList &pointMap, labelList &faceMap) const |
| Create mappings for a sub-surface. More... | |
| MeshedSurface | subsetMesh (const UList< bool > &include, labelList &pointMap, labelList &faceMap) const |
| Return a new surface subsetted on the selected faces. More... | |
| MeshedSurface | subsetMesh (const bitSet &include, labelList &pointMap, labelList &faceMap) const |
| Return a new surface subsetted on the selected faces. More... | |
| MeshedSurface | subsetMesh (const UList< bool > &include) const |
| Return a new surface subsetted on the selected faces. More... | |
| MeshedSurface | subsetMesh (const bitSet &include) const |
| Return a new surface subsetted on the selected faces. More... | |
| MeshedSurface | subsetMesh (const wordRes &includeNames, const wordRes &excludeNames=wordRes()) const |
| Return a new surface subsetted on the selected zone names. More... | |
| 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. Use with caution. More... | |
| void | swapPoints (pointField &points) |
| Swap the stored points. 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... | |
Friends | |
| class | isoSurfaceCell |
| Declare friendship to share some functionality. More... | |
| class | isoSurfaceTopo |
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, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) |
| Write to file, selecting writer based on its extension. More... | |
| static void | write (const fileName &name, const word &fileType, const MeshedSurface< face > &surf, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) |
| Write to file, selecting writer based on the given extension. More... | |
| static wordHashSet | readTypes () |
| Known readable file-types, without friends or proxies. More... | |
| static wordHashSet | writeTypes () |
| Known writable file-types, without friends or proxies. More... | |
| static bool | canReadType (const word &fileType, bool verbose=false) |
| Can we read this file format? Also checks friend types. More... | |
| static bool | canWriteType (const word &fileType, bool verbose=false) |
| Can we write this file format? Also checks proxy types. More... | |
| static bool | canRead (const fileName &name, bool verbose=false) |
| Can we read this file format? More... | |
| static autoPtr< MeshedSurface > | New (const fileName &name, const word &fileType, bool mandatory=true) |
| Read construct from filename with given file type. More... | |
| static autoPtr< MeshedSurface > | New (const fileName &name) |
| Read construct from filename (file type implicit from 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... | |
| labelList & | storedFaceIds () |
| Non-const access to face ids. More... | |
| surfZoneList & | storedZones () |
| Non-const access to the zones. More... | |
| void | sortFacesAndStore (DynamicList< face > &unsortedFaces, DynamicList< label > &zoneIds, DynamicList< label > &elemIds, bool sorted) |
| Sort faces by zones and store sorted faces. More... | |
| virtual void | remapFaces (const labelUList &faceMapNewToOld) |
| 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... | |
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.
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.
Definition at line 89 of file isoSurface.H.
|
strong |
Filtering type.
Definition at line 87 of file isoSurfaceBase.H.
| isoSurface | ( | const volScalarField & | cellValues, |
| const scalarField & | pointValues, | ||
| const scalar | iso, | ||
| const isoSurfaceBase::filterType | filter, | ||
| const boundBox & | bounds = boundBox::invertedBox, |
||
| const scalar | mergeTol = 1e-6 |
||
| ) |
Construct from cell values and point values.
Uses boundaryField for boundary values. Holds reference to cellIsoVals and pointIsoVals.
| bounds | optional bounding box for trimming |
| mergeTol | fraction of mesh bounding box for merging points |
Definition at line 1339 of file isoSurface.C.
| isoSurface | ( | const volScalarField & | cellValues, |
| const scalarField & | pointValues, | ||
| const scalar | iso, | ||
| const bool | regularise, | ||
| const boundBox & | bounds = boundBox::invertedBox, |
||
| const scalar | mergeTol = 1e-6 |
||
| ) |
Construct from cell values and point values.
Uses boundaryField for boundary values. Holds reference to cellIsoVals and pointIsoVals.
| bounds | optional bounding box for trimming |
| mergeTol | fraction of mesh bounding box for merging points |
Definition at line 1361 of file isoSurface.C.
References triSurface::clearOut(), polyPatch::coupled(), Foam::expressions::patchExpr::debug, Foam::dimLength, Foam::dimless, Foam::endl(), f(), forAll, Foam::inplaceRenumber(), Foam::max(), Foam::min(), Foam::nl, IOobject::NO_READ, IOobject::NO_WRITE, patches, polyPatch::patchSlice(), fileName::path(), Foam::Pout, GeometricField< Type, PatchField, GeoMesh >::primitiveField(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), List< T >::set(), List< T >::setSize(), FixedList< T, N >::size(), polyPatch::start(), triSurface::swapPoints(), fvMesh::time(), Time::timeName(), List< T >::transfer(), triSurface::triFaceFaces(), triSurfaceTools::validTri(), Ostream::write(), triSurface::write(), and Foam::Zero.
| TypeName | ( | "isoSurface" | ) |
Runtime type information.
| tmp<Field<Type> > interpolate | ( | const GeometricField< Type, fvPatchField, volMesh > & | cCoords, |
| const Field< Type > & | pCoords | ||
| ) | const |
Interpolates cCoords, pCoords.
Uses the references to the original fields used to create the iso surface.
| Foam::tmp<Foam::SlicedGeometricField< Type, Foam::fvPatchField, Foam::slicedFvPatchField, Foam::volMesh> > adaptPatchFields | ( | const GeometricField< Type, fvPatchField, volMesh > & | fld | ) | const |
Definition at line 47 of file isoSurfaceTemplates.C.
References f(), fld, forAll, mesh, Foam::New(), patches, fvPatchField< Type >::patchInternalField(), and fvPatchField< Type >::patchNeighbourField().
| 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 447 of file isoSurfaceTemplates.C.
References DynamicList< T, SizeMin >::append(), f(), forAll, FixedList< T, N >::size(), and Foam::Zero.
| 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 748 of file isoSurfaceTemplates.C.
References forAll, Foam::New(), nPoints, Foam::HashTableOps::values(), and Foam::Zero.
| Foam::tmp<Foam::Field<Type> > interpolate | ( | const GeometricField< Type, fvPatchField, volMesh > & | cCoords, |
| const Field< Type > & | pCoords | ||
| ) | const |
Definition at line 811 of file isoSurfaceTemplates.C.
References Foam::constant::physicoChemical::c2, Foam::interpolate(), and points.
|
friend |
Declare friendship to share some functionality.
Definition at line 385 of file isoSurface.H.
|
friend |
Definition at line 386 of file isoSurface.H.