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 Member Functions | |
TypeName ("isoSurfacePoint") | |
isoSurfacePoint (const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const isoSurfaceParams ¶ms=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 |
![]() | |
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 |
Friends | |
class | isoSurfaceCell |
class | isoSurfaceTopo |
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 "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 83 of file isoSurfacePoint.H.
isoSurfacePoint | ( | const volScalarField & | cellValues, |
const scalarField & | pointValues, | ||
const scalar | iso, | ||
const isoSurfaceParams & | params = isoSurfaceParams() , |
||
const bitSet & | ignoreCells = bitSet() |
||
) |
ignoreCells | unused |
Definition at line 1319 of file isoSurfacePoint.C.
References fvMesh::boundary(), primitiveMesh::cellCentres(), triSurface::clearOut(), polyPatch::coupled(), Foam::expressions::patchExpr::debug, Foam::dimLength, Foam::dimless, Foam::endl(), f(), primitiveMesh::faceCentres(), isoSurfaceParams::filter(), forAll, Foam::inplaceRenumber(), isoSurfaceParams::mergeTol(), polyMesh::meshSubDir, Foam::minMax(), Foam::nl, IOobject::NO_READ, IOobject::NO_WRITE, patches, polyPatch::patchSlice(), fileName::path(), polyMesh::pointsInstance(), Foam::Pout, GeometricField::primitiveFieldRef(), bitSet::set(), List::setSize(), FixedList::size(), polyPatch::start(), triSurface::swapPoints(), fvMesh::time(), Time::timeName(), List::transfer(), triSurface::triFaceFaces(), triSurfaceTools::validTri(), triSurface::write(), and Foam::Zero.
|
virtualdefault |
TypeName | ( | "isoSurfacePoint" | ) |
|
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 33 of file isoSurfacePoint.C.
|
virtual |
interpolate sphericalTensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 33 of file isoSurfacePoint.C.
|
virtual |
interpolate symmTensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 33 of file isoSurfacePoint.C.
|
virtual |
interpolate tensor cellValues, pointValues on iso-surface
Reimplemented from isoSurfaceBase.
Definition at line 33 of file isoSurfacePoint.C.
Foam::tmp<Foam::SlicedGeometricField< Type, Foam::fvPatchField, Foam::slicedFvPatchField, Foam::volMesh> > adaptPatchFields | ( | const GeometricField< Type, fvPatchField, volMesh > & | fld | ) | const |
Definition at line 40 of file isoSurfacePointTemplates.C.
References f(), fld, forAll, mesh, Foam::New(), patches, fvPatchField::patchInternalField(), and fvPatchField::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 440 of file isoSurfacePointTemplates.C.
References DynamicList::append(), f(), forAll, FixedList::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 741 of file isoSurfacePointTemplates.C.
References forAll, Foam::New(), nPoints, Foam::HashTableOps::values(), and Foam::Zero.
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.
|
friend |
Definition at line 366 of file isoSurfacePoint.H.
|
friend |
Definition at line 367 of file isoSurfacePoint.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.