A surface formed by the iso value. After "Polygonising A Scalar Field Using Tetrahedrons", Paul Bourke (http://paulbourke.net/geometry/polygonise) and "Regularised Marching Tetrahedra: improved iso-surface extraction", G.M. Treece, R.W. Prager and A.H. Gee. More...
Public Member Functions | |
TypeName ("isoSurfaceCell") | |
isoSurfaceCell (const polyMesh &mesh, const scalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams ¶ms=isoSurfaceParams(), const bitSet &ignoreCells=bitSet()) | |
virtual | ~isoSurfaceCell ()=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::Field< Type > > | interpolateTemplate (const Field< Type > &cCoords, const Field< Type > &pCoords) const |
![]() | |
isoSurfaceBase (const polyMesh &mesh, const scalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams ¶ms=isoSurfaceParams()) | |
const polyMesh & | mesh () const noexcept |
const scalarField & | cellValues () const noexcept |
const scalarField & | pointValues () const noexcept |
scalar | isoValue () const noexcept |
const labelList & | meshCells () const noexcept |
labelList & | meshCells () 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 |
![]() | |
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 labelList & | faceIds () const |
const surfZoneList & | surfZones () const |
const vectorField & | Sf () const |
const scalarField & | magSf () const |
const vectorField & | Cf () 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 () |
![]() | |
isoSurfaceParams (const algorithmType algo=algorithmType::ALGO_DEFAULT, const filterType filter=filterType::DIAGCELL) noexcept | |
isoSurfaceParams (const dictionary &dict, const isoSurfaceParams ¶ms=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 boundBox & | getClipBounds () const noexcept |
boundBox & | getClipBounds () noexcept |
void | setClipBounds (const boundBox &bb) |
void | print (Ostream &os) const |
Additional Inherited Members | |
![]() | |
enum | cutType : uint8_t { NOTCUT = 0, CUT = 0x1, TETCUT = 0x2, SPHERE = 0x4, ANYCUT = 0xF, UNVISITED = 0x10, BLOCKED = 0x20, SPECIAL = 0xF0 } |
enum | algorithmType |
enum | filterType |
![]() | |
typedef Face | face_type |
typedef point | point_type |
![]() | |
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 autoPtr< isoSurfaceBase > | New (const isoSurfaceParams ¶ms, const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const bitSet &ignoreCells=bitSet()) |
static void | resetCuts (UList< cutType > &cuts) |
![]() | |
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< MeshedSurface > | New (const fileName &name, const word &fileType, bool mandatory=true) |
static autoPtr< MeshedSurface > | New (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 algorithmType | getAlgorithmType (const dictionary &dict, const algorithmType deflt) |
static filterType | getFilterType (const dictionary &dict, const filterType deflt) |
![]() | |
static const Enum< algorithmType > | algorithmNames |
static const Enum< filterType > | filterNames |
![]() | |
typedef meshedSurface | Mesh |
typedef cutType | cellCutType |
![]() | |
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 |
![]() | |
void | transcribe (MeshedSurface< face > &surf) |
void | checkZones (const bool verbose=true) |
pointField & | storedPoints () |
List< Face > & | storedFaces () |
labelList & | storedFaceIds () |
surfZoneList & | storedZones () |
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 label | countCutType (const UList< cutType > &cuts, const uint8_t maskValue) |
![]() | |
const polyMesh & | mesh_ |
const scalarField & | cVals_ |
const scalarField & | pVals_ |
const scalar | iso_ |
bitSet | ignoreBoundaryFaces_ |
labelList | meshCells_ |
A surface formed by the iso value. After "Polygonising A Scalar Field Using Tetrahedrons", Paul Bourke (http://paulbourke.net/geometry/polygonise) and "Regularised Marching Tetrahedra: improved iso-surface extraction", G.M. Treece, R.W. Prager and A.H. Gee.
See isoSurface. This is a variant which does tetrahedrisation from triangulation of face to cell centre instead of edge of face to two neighbouring cell centres. This gives much lower quality triangles but they are local to a cell.
Definition at line 62 of file isoSurfaceCell.H.
isoSurfaceCell | ( | const polyMesh & | mesh, |
const scalarField & | cellValues, | ||
const scalarField & | pointValues, | ||
const scalar | iso, | ||
const isoSurfaceParams & | params = isoSurfaceParams() , |
||
const bitSet & | ignoreCells = bitSet() |
||
) |
Definition at line 1125 of file isoSurfaceCell.C.
References polyMesh::bounds(), triSurface::clearOut(), bitSet::count(), Foam::expressions::patchExpr::debug, Foam::dimless, Foam::endl(), isoSurfaceParams::filter(), Foam::findIndices(), forAll, Foam::inplaceRenumber(), boundBox::mag(), isoSurfaceParams::mergeTol(), mesh, Foam::minMax(), Foam::nl, IOobject::NO_READ, IOobject::NO_WRITE, Foam::Pout, GeometricField::primitiveFieldRef(), bitSet::set(), List::setSize(), DynamicList::shrink(), FixedList::size(), triSurface::swapPoints(), tetMatcher::test(), List::transfer(), triSurface::triFaceFaces(), triSurfaceTools::validTri(), and Foam::Zero.
|
virtualdefault |
TypeName | ( | "isoSurfaceCell" | ) |
|
virtual |
interpolate scalar cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
|
virtual |
interpolate vector cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 37 of file isoSurfaceCell.C.
|
virtual |
interpolate sphericalTensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 37 of file isoSurfaceCell.C.
|
virtual |
interpolate symmTensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 37 of file isoSurfaceCell.C.
|
virtual |
interpolate tensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 37 of file isoSurfaceCell.C.
Foam::tmp<Foam::Field<Type> > interpolateTemplate | ( | const Field< Type > & | cCoords, |
const Field< Type > & | pCoords | ||
) | const |
Definition at line 466 of file isoSurfaceCellTemplates.C.
References points.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.