Description of feature edges and points. More...
Public Types | |
enum | pointStatus { CONVEX, CONCAVE, MIXED, NONFEATURE } |
enum | edgeStatus { EXTERNAL, INTERNAL, FLAT, OPEN, MULTIPLE, NONE } |
enum | sideVolumeType { INSIDE = 0, OUTSIDE = 1, BOTH = 2, NEITHER = 3 } |
![]() | |
typedef faMesh | Mesh |
typedef faMesh ::BoundaryMesh | BoundaryMesh |
Static Public Member Functions | |
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< extendedEdgeMesh > | New (const fileName &name, const word &fileType) |
static autoPtr< extendedEdgeMesh > | New (const fileName &name) |
static edgeStatus | classifyEdge (const List< vector > &norms, const labelList &edNorms, const vector &fC0tofC1) |
static void | sortedOrder (const List< extendedEdgeMesh::pointStatus > &pointStat, const List< extendedEdgeMesh::edgeStatus > &edgeStat, labelList &sortedToOriginalPoint, labelList &sortedToOriginalEdge, label &pointConcaveStart, label &pointMixedStart, label &pointNonFeatStart, label &edgeInternalStart, label &edgeFlatStart, label &edgeOpenStart, label &edgeMultipleStart) |
![]() | |
static label | size (const Mesh &mesh) |
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< edgeMesh > | New (const fileName &name, const word &fileType) |
static autoPtr< edgeMesh > | New (const fileName &name) |
static void | write (const fileName &name, const edgeMesh &mesh, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) |
static void | write (const fileName &name, const word &fileType, const edgeMesh &mesh, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) |
Static Public Attributes | |
static const Enum< pointStatus > | pointStatusNames_ |
static const Enum< edgeStatus > | edgeStatusNames_ |
static const Enum< sideVolumeType > | sideVolumeTypeNames_ |
static scalar | cosNormalAngleTol_ |
static constexpr label | nPointTypes = 4 |
static constexpr label | nEdgeTypes = 5 |
Protected Member Functions | |
extendedEdgeMesh (class one::minus) | |
pointStatus | classifyFeaturePoint (label ptI) const |
void | cut (const searchableSurface &, labelList &pMap, labelList &eMap, labelList &pointsFromEdge, labelList &oldEdge, labelList &surfTri) |
void | select (const searchableSurface &surf, const volumeType volType, labelList &pMap, labelList &eMap) |
template<class Patch > | |
void | sortPointsAndEdges (const Patch &, const labelUList &featureEdges, const labelUList ®ionFeatureEdges, const labelUList &feaurePoints) |
![]() | |
pointField & | storedPoints () noexcept |
edgeList & | storedEdges () noexcept |
Protected Attributes | |
label | concaveStart_ |
label | mixedStart_ |
label | nonFeatureStart_ |
label | internalStart_ |
label | flatStart_ |
label | openStart_ |
label | multipleStart_ |
vectorField | normals_ |
List< sideVolumeType > | normalVolumeTypes_ |
vectorField | edgeDirections_ |
labelListList | normalDirections_ |
labelListList | edgeNormals_ |
labelListList | featurePointNormals_ |
labelListList | featurePointEdges_ |
labelList | regionEdges_ |
unique_ptr< indexedOctree< treeDataPoint > > | pointTree_ |
unique_ptr< indexedOctree< treeDataEdge > > | edgeTree_ |
PtrList< indexedOctree< treeDataEdge > > | edgeTreesByType_ |
![]() | |
const faMesh & | mesh_ |
Static Protected Attributes | |
static label | convexStart_ = 0 |
static label | externalStart_ = 0 |
Friends | |
Istream & | operator>> (Istream &is, sideVolumeType &vt) |
Ostream & | operator<< (Ostream &os, const sideVolumeType &vt) |
Ostream & | operator<< (Ostream &, const extendedEdgeMesh &) |
Istream & | operator>> (Istream &, extendedEdgeMesh &) |
Description of feature edges and points.
Feature points are a sorted subset at the start of the overall points list: 0 .. concaveStart_-1 : convex points (w.r.t normals) concaveStart_ .. mixedStart_-1 : concave points mixedStart_ .. nonFeatureStart_-1 : mixed internal/external points nonFeatureStart_ .. size-1 : non-feature points
Feature edges are the edgeList of the edgeMesh and are sorted: 0 .. internalStart_-1 : external edges (convex w.r.t normals) internalStart_ .. flatStart_-1 : internal edges (concave) flatStart_ .. openStart_-1 : flat edges (neither concave or convex) can arise from region interfaces on flat surfaces openStart_ .. multipleStart_-1 : open edges (e.g. from baffle surfaces) multipleStart_ .. size-1 : multiply connected edges
The edge direction and feature edge and feature point adjacent normals are stored.
Definition at line 81 of file extendedEdgeMesh.H.
enum pointStatus |
Enumerator | |
---|---|
CONVEX | Fully convex point (w.r.t normals) |
CONCAVE | Fully concave point. |
MIXED | A point surrounded by both convex and concave edges. |
NONFEATURE | Not a feature point. |
Definition at line 90 of file extendedEdgeMesh.H.
enum edgeStatus |
Enumerator | |
---|---|
EXTERNAL | "Convex" edge |
INTERNAL | "Concave" edge |
FLAT | Neither concave or convex, on a flat surface. |
OPEN | Only connected to a single face. |
MULTIPLE | Multiply connected (connected to more than two faces) |
NONE | Unclassified (consistency with surfaceFeatures) |
Definition at line 100 of file extendedEdgeMesh.H.
enum sideVolumeType |
Enumerator | |
---|---|
INSIDE | mesh inside |
OUTSIDE | mesh outside |
BOTH | e.g. a baffle |
NEITHER | not sure when this may be used |
Definition at line 113 of file extendedEdgeMesh.H.
|
explicitprotected |
Definition at line 394 of file extendedEdgeMesh.C.
extendedEdgeMesh | ( | ) |
Definition at line 370 of file extendedEdgeMesh.C.
|
explicit |
Definition at line 418 of file extendedEdgeMesh.C.
|
explicit |
Definition at line 610 of file extendedEdgeMesh.C.
References Foam::name(), and extendedEdgeMesh::read().
extendedEdgeMesh | ( | const fileName & | name, |
const word & | fileType | ||
) |
Definition at line 599 of file extendedEdgeMesh.C.
References Foam::name(), and Foam::read().
|
explicit |
Definition at line 442 of file extendedEdgeMesh.C.
extendedEdgeMesh | ( | const pointField & | points, |
const edgeList & | edges | ||
) |
Definition at line 449 of file extendedEdgeMesh.C.
References points.
extendedEdgeMesh | ( | pointField && | points, |
edgeList && | edges | ||
) |
Definition at line 462 of file extendedEdgeMesh.C.
References points, and extendedEdgeMesh::transfer().
extendedEdgeMesh | ( | const surfaceFeatures & | sFeat, |
const boolList & | surfBaffleRegions | ||
) |
Definition at line 475 of file extendedEdgeMesh.C.
extendedEdgeMesh | ( | const PrimitivePatch< faceList, pointField > & | surf, |
const labelUList & | featureEdges, | ||
const labelUList & | regionFeatureEdges, | ||
const labelUList & | featurePoints | ||
) |
Definition at line 536 of file extendedEdgeMesh.C.
extendedEdgeMesh | ( | const pointField & | pts, |
const edgeList & | eds, | ||
label | concaveStart, | ||
label | mixedStart, | ||
label | nonFeatureStart, | ||
label | internalStart, | ||
label | flatStart, | ||
label | openStart, | ||
label | multipleStart, | ||
const vectorField & | normals, | ||
const List< sideVolumeType > & | normalVolumeTypes, | ||
const vectorField & | edgeDirections, | ||
const labelListList & | normalDirections, | ||
const labelListList & | edgeNormals, | ||
const labelListList & | featurePointNormals, | ||
const labelListList & | featurePointEdges, | ||
const labelList & | regionEdges | ||
) |
Definition at line 556 of file extendedEdgeMesh.C.
|
default |
TypeName | ( | "extendedEdgeMesh" | ) |
|
protected |
Definition at line 145 of file extendedEdgeMesh.C.
References forAll.
|
protected |
Definition at line 189 of file extendedEdgeMesh.C.
References Foam::DelaunayMeshTools::allPoints(), DynamicList::append(), DynamicField::append(), DynamicList::capacity(), DynamicField::capacity(), Foam::constant::electromagnetic::e, stdFoam::end(), searchableSurface::findLineAll(), forAll, Foam::identity(), points, DynamicList::setCapacity(), DynamicField::setCapacity(), and List::transfer().
|
protected |
Definition at line 291 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, forAll, searchableSurface::getVolumeType(), Foam::identity(), volumeType::INSIDE, Foam::labelMax, volumeType::OUTSIDE, points, and List::setSize().
|
protected |
Definition at line 33 of file extendedEdgeMeshTemplates.C.
References Foam::abort(), DynamicList::append(), Vector< Cmpt >::centre(), Foam::cross(), edge::end(), Foam::faceMap(), faceNormals(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::identity(), Foam::ListListOps::inplaceRenumber(), Foam::inplaceReorder(), Foam::invert(), k, Foam::mag(), Foam::nl, points, DynamicList::setCapacity(), List::setSize(), UList::size(), edge::start(), bitSet::test(), List::transfer(), edge::vec(), and Foam::Zero.
|
static |
Definition at line 94 of file extendedEdgeMesh.C.
|
static |
Definition at line 100 of file extendedEdgeMesh.C.
Definition at line 106 of file extendedEdgeMesh.C.
Definition at line 118 of file extendedEdgeMesh.C.
Definition at line 130 of file extendedEdgeMesh.C.
References word::ext(), word::lessExt(), and Foam::name().
declareRunTimeSelectionTable | ( | autoPtr | , |
extendedEdgeMesh | , | ||
fileExtension | , | ||
(const fileName &name) | , | ||
(name) | |||
) |
|
static |
Definition at line 35 of file extendedEdgeMeshNew.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::flatOutput(), Foam::name(), and Foam::nl.
|
static |
Definition at line 57 of file extendedEdgeMeshNew.C.
References word::ext(), word::lessExt(), Foam::name(), and Foam::New().
void nearestFeaturePoint | ( | const point & | sample, |
scalar | searchDistSqr, | ||
pointIndexHit & | info | ||
) | const |
Definition at line 646 of file extendedEdgeMesh.C.
void nearestFeatureEdge | ( | const point & | sample, |
scalar | searchDistSqr, | ||
pointIndexHit & | info | ||
) | const |
Definition at line 661 of file extendedEdgeMesh.C.
void nearestFeatureEdge | ( | const pointField & | samples, |
const scalarField & | searchDistSqr, | ||
List< pointIndexHit > & | info | ||
) | const |
Definition at line 676 of file extendedEdgeMesh.C.
References forAll, samples(), and List::setSize().
void nearestFeatureEdgeByType | ( | const point & | sample, |
const scalarField & | searchDistSqr, | ||
List< pointIndexHit > & | info | ||
) | const |
Definition at line 697 of file extendedEdgeMesh.C.
References forAll, and List::setSize().
void allNearestFeaturePoints | ( | const point & | sample, |
scalar | searchRadiusSqr, | ||
List< pointIndexHit > & | info | ||
) | const |
Definition at line 733 of file extendedEdgeMesh.C.
References DynamicList::append(), forAll, points, and List::transfer().
Referenced by Foam::edgeMeshTools::featureProximity().
void allNearestFeatureEdges | ( | const point & | sample, |
const scalar | searchRadiusSqr, | ||
List< pointIndexHit > & | info | ||
) | const |
Definition at line 764 of file extendedEdgeMesh.C.
References DynamicList::append(), Foam::constant::electromagnetic::e, forAll, PointHit< PointType >::hit(), points, PointHit< PointType >::rawPoint(), List::setSize(), and List::transfer().
Referenced by Foam::edgeMeshTools::featureProximity().
|
inline |
Definition at line 23 of file extendedEdgeMeshI.H.
References extendedEdgeMesh::convexStart_.
|
inline |
Definition at line 29 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 35 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 41 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 47 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 53 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 59 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 65 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 71 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and Foam::edgeMeshTools::writeStats().
|
inline |
Definition at line 77 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 83 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add().
|
inline |
Definition at line 90 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 96 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add().
|
inline |
Definition at line 104 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 111 of file extendedEdgeMeshI.H.
References Foam::constant::electromagnetic::e, Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::Zero.
|
inline |
Definition at line 139 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add().
|
inline |
Definition at line 147 of file extendedEdgeMeshI.H.
References forAll.
|
inline |
Definition at line 162 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 170 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add().
|
inline |
Definition at line 177 of file extendedEdgeMeshI.H.
References Foam::endl(), forAll, and WarningInFunction.
|
inline |
Definition at line 205 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 211 of file extendedEdgeMeshI.H.
Referenced by extendedEdgeMesh::add(), and refinementFeatures::regionEdgeTrees().
|
inline |
Definition at line 218 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 238 of file extendedEdgeMeshI.H.
|
inline |
Definition at line 262 of file extendedEdgeMeshI.H.
References DynamicList::append().
const Foam::indexedOctree< Foam::treeDataPoint > & pointTree | ( | ) | const |
Definition at line 820 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, Foam::identity(), boundBox::max(), boundBox::min(), points, rndGen, and VectorSpace< Vector< scalar >, scalar, 3 >::uniform().
const Foam::indexedOctree< Foam::treeDataEdge > & edgeTree | ( | ) | const |
Definition at line 860 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, Foam::identity(), boundBox::max(), boundBox::min(), points, rndGen, and VectorSpace< Vector< scalar >, scalar, 3 >::uniform().
const Foam::PtrList< Foam::indexedOctree< Foam::treeDataEdge > > & edgeTreesByType | ( | ) | const |
Definition at line 902 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, forAll, Foam::identity(), boundBox::max(), boundBox::min(), points, rndGen, and VectorSpace< Vector< scalar >, scalar, 3 >::uniform().
void transfer | ( | extendedEdgeMesh & | mesh | ) |
Definition at line 967 of file extendedEdgeMesh.C.
References objectRegistry::clear(), mesh, edgeMesh::transfer(), and HashTable::transfer().
Referenced by extendedEdgeMesh::extendedEdgeMesh().
|
virtual |
Reimplemented from edgeMesh.
Definition at line 999 of file extendedEdgeMesh.C.
References edgeMesh::clear().
void add | ( | const extendedEdgeMesh & | fem | ) |
Definition at line 1023 of file extendedEdgeMesh.C.
References DynamicList::append(), DynamicField::append(), extendedEdgeMesh::concaveStart(), Foam::constant::electromagnetic::e, extendedEdgeMesh::edgeDirections(), extendedEdgeMesh::edgeNormals(), edgeMesh::edges(), extendedEdgeMesh::featurePointNormals(), extendedEdgeMesh::flatStart(), forAll, extendedEdgeMesh::internalStart(), extendedEdgeMesh::mixedStart(), extendedEdgeMesh::multipleStart(), newPointi, extendedEdgeMesh::nonFeatureStart(), extendedEdgeMesh::normals(), extendedEdgeMesh::openStart(), points, edgeMesh::points(), extendedEdgeMesh::regionEdges(), Field::rmap(), and edgeMesh::transfer().
void flipNormals | ( | ) |
Definition at line 1293 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, forAll, Foam::identity(), newPointi, points, Field::rmap(), and edgeMesh::transfer().
void autoMap | ( | const pointField & | subPoints, |
const edgeList & | subEdges, | ||
const labelList & | pointMap, | ||
const labelList & | edgeMap | ||
) |
Definition at line 1405 of file extendedEdgeMesh.C.
References DynamicList::append(), forAll, bitSet::set(), List::setSize(), bitSet::test(), and List::transfer().
void trim | ( | const searchableSurface & | surf, |
const volumeType | volType, | ||
labelList & | pointMap, | ||
labelList & | edgeMap | ||
) |
Definition at line 1645 of file extendedEdgeMesh.C.
void setFromStatus | ( | const List< extendedEdgeMesh::pointStatus > & | pointStat, |
const List< extendedEdgeMesh::edgeStatus > & | edgeStat, | ||
labelList & | sortedToOriginalPoint, | ||
labelList & | sortedToOriginalEdge | ||
) |
Definition at line 1728 of file extendedEdgeMesh.C.
References forAll, Foam::inplaceRenumber(), points, and Foam::sortedOrder().
Definition at line 1796 of file extendedEdgeMesh.C.
References forAll, Foam::identity(), Foam::mergePoints(), nPoints, points, List::setSize(), and Foam::Zero.
Definition at line 634 of file extendedEdgeMesh.C.
References Foam::name(), and Foam::New().
Referenced by extendedEdgeMesh::extendedEdgeMesh().
Reimplemented from edgeMesh.
Reimplemented in extendedEdgeMeshFormat.
Definition at line 620 of file extendedEdgeMesh.C.
References word::ext(), fileName::ext(), word::lessExt(), Foam::name(), and Foam::read().
void writeObj | ( | const fileName & | prefix | ) | const |
Definition at line 1884 of file extendedEdgeMesh.C.
References Foam::constant::electromagnetic::e, Foam::endl(), forAll, Foam::Info, OFstream::name(), Foam::nl, points, OBJstream::write(), and edgeMesh::write().
|
virtual |
Reimplemented from edgeMesh.
Definition at line 2039 of file extendedEdgeMesh.C.
References Foam::decrIndent(), Foam::incrIndent(), Foam::indent(), Foam::nl, os(), points, Foam::setw(), and edgeMesh::writeStats().
|
static |
Definition at line 2091 of file extendedEdgeMesh.C.
|
static |
Definition at line 2132 of file extendedEdgeMesh.C.
References extendedEdgeMesh::CONCAVE, extendedEdgeMesh::CONVEX, Foam::exit(), extendedEdgeMesh::EXTERNAL, Foam::FatalError, FatalErrorInFunction, extendedEdgeMesh::FLAT, forAll, extendedEdgeMesh::INTERNAL, extendedEdgeMesh::MIXED, extendedEdgeMesh::MULTIPLE, extendedEdgeMesh::NONE, extendedEdgeMesh::NONFEATURE, extendedEdgeMesh::OPEN, and List::setSize().
|
friend |
|
friend |
|
friend |
|
friend |
|
static |
Definition at line 98 of file extendedEdgeMesh.H.
|
static |
Definition at line 110 of file extendedEdgeMesh.H.
|
static |
Definition at line 121 of file extendedEdgeMesh.H.
Referenced by searchablePlateFeatures::searchablePlateFeatures().
|
static |
Definition at line 124 of file extendedEdgeMesh.H.
|
staticprotected |
Definition at line 132 of file extendedEdgeMesh.H.
Referenced by extendedEdgeMesh::convexStart().
|
staticprotected |
Definition at line 135 of file extendedEdgeMesh.H.
|
protected |
Definition at line 141 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 144 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 147 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 150 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 153 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 156 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 159 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 163 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 166 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 169 of file extendedEdgeMesh.H.
Referenced by extendedFeatureEdgeMesh::extendedFeatureEdgeMesh().
|
protected |
Definition at line 174 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 177 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 181 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 185 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
protected |
Definition at line 188 of file extendedEdgeMesh.H.
Referenced by Foam::operator<<(), and Foam::operator>>().
|
mutableprotected |
Definition at line 191 of file extendedEdgeMesh.H.
|
mutableprotected |
Definition at line 194 of file extendedEdgeMesh.H.
|
mutableprotected |
Definition at line 197 of file extendedEdgeMesh.H.
|
staticconstexpr |
Definition at line 247 of file extendedEdgeMesh.H.
|
staticconstexpr |
Definition at line 250 of file extendedEdgeMesh.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.