Public Member Functions | Private Member Functions | Private Attributes
cellFeatures Class Reference

Cell analysis class. More...

Collaboration diagram for cellFeatures:
Collaboration graph
[legend]

Public Member Functions

 cellFeatures (const primitiveMesh &, const scalar minCos, const label cellI)
 Construct from cell in mesh. More...
 
 ~cellFeatures ()
 Destructor. More...
 
const labelHashSetfeatureEdge () const
 
const faceListfaces () const
 
const List< DynamicList< label > > & faceMap () const
 New to old faceMap. Guaranteed to be shrunk. More...
 
bool isFeatureEdge (const label edgeI) const
 Is edge a feature edge (uniquely determined since on cell. More...
 
bool isFeaturePoint (const label edge0, const label edge1) const
 Are two edges connected at feature point? More...
 
bool isFeatureVertex (const label faceI, const label vertI) const
 Is vertexI on faceI used by two edges that form feature. More...
 

Private Member Functions

bool faceAlignedEdge (const label, const label) const
 
label nextEdge (const Map< label > &toSuperFace, const label superFaceI, const label thisEdgeI, const label thisVertI) const
 
bool isCellFeatureEdge (const scalar, const label) const
 
void walkSuperFace (const label faceI, const label superFaceI, Map< label > &toSuperFace) const
 
void calcSuperFaces () const
 
 cellFeatures (const cellFeatures &)
 Disallow default bitwise copy construct. More...
 
void operator= (const cellFeatures &)
 Disallow default bitwise assignment. More...
 

Private Attributes

const primitiveMeshmesh_
 
scalar minCos_
 Cos of angle between two connected faces or two connected edges on. More...
 
label cellI_
 
labelHashSet featureEdge_
 Feature edges. More...
 
faceListfacesPtr_
 (demand driven) Faces after removing internal points&edges More...
 
List< DynamicList< label > > faceMap_
 New to old face mapping. More...
 

Detailed Description

Cell analysis class.

Constructs feature edges and feature points, which are edges/points with and angle > given specification. Can be asked for 'superFaces' which can be used to see if a cell is a 'splitHex'.

Source files

Definition at line 61 of file cellFeatures.H.

Constructor & Destructor Documentation

◆ cellFeatures() [1/2]

cellFeatures ( const cellFeatures )
private

Disallow default bitwise copy construct.

◆ cellFeatures() [2/2]

cellFeatures ( const primitiveMesh mesh,
const scalar  minCos,
const label  cellI 
)

Construct from cell in mesh.

Definition at line 376 of file cellFeatures.C.

References forAll.

◆ ~cellFeatures()

Destructor.

Definition at line 406 of file cellFeatures.C.

References Foam::deleteDemandDrivenData().

Here is the call graph for this function:

Member Function Documentation

◆ faceAlignedEdge()

bool faceAlignedEdge ( const label  faceI,
const label  edgeI 
) const
private

Definition at line 39 of file cellFeatures.C.

References Foam::abort(), Foam::e, primitiveMesh::edges(), f(), primitiveMesh::faces(), Foam::FatalError, FatalErrorInFunction, forAll, and cellFeatures::mesh_.

Here is the call graph for this function:

◆ nextEdge()

Foam::label nextEdge ( const Map< label > &  toSuperFace,
const label  superFaceI,
const label  thisEdgeI,
const label  thisVertI 
) const
private

Definition at line 67 of file cellFeatures.C.

References Foam::abort(), Foam::endl(), Foam::meshTools::faceOnCell(), Foam::FatalError, FatalErrorInFunction, and forAll.

Here is the call graph for this function:

◆ isCellFeatureEdge()

bool isCellFeatureEdge ( const scalar  minCos,
const label  edgeI 
) const
private

Definition at line 114 of file cellFeatures.C.

References Foam::e, f1, Foam::findIndex(), Foam::meshTools::getEdgeFaces(), and Foam::mag().

Here is the call graph for this function:

◆ walkSuperFace()

void walkSuperFace ( const label  faceI,
const label  superFaceI,
Map< label > &  toSuperFace 
) const
private

Definition at line 180 of file cellFeatures.C.

References forAll, and Foam::meshTools::getEdgeFaces().

Here is the call graph for this function:

◆ calcSuperFaces()

void calcSuperFaces ( ) const
private

Definition at line 219 of file cellFeatures.C.

References List::append(), DynamicList::append(), Foam::e, Foam::endl(), forAll, List::size(), List::transfer(), and WarningInFunction.

Referenced by cellFeatures::faceMap(), and cellFeatures::faces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const cellFeatures )
private

Disallow default bitwise assignment.

◆ featureEdge()

const labelHashSet& featureEdge ( ) const
inline

Definition at line 134 of file cellFeatures.H.

References cellFeatures::featureEdge_.

◆ faces()

const faceList& faces ( ) const
inline

Definition at line 139 of file cellFeatures.H.

References cellFeatures::calcSuperFaces(), and cellFeatures::facesPtr_.

Referenced by shapeToCell::combine(), and topoCellLooper::cut().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faceMap()

const List<DynamicList<label> >& faceMap ( ) const
inline

New to old faceMap. Guaranteed to be shrunk.

Definition at line 149 of file cellFeatures.H.

References cellFeatures::calcSuperFaces(), cellFeatures::faceMap_, and cellFeatures::facesPtr_.

Here is the call graph for this function:

◆ isFeatureEdge()

bool isFeatureEdge ( const label  edgeI) const
inline

Is edge a feature edge (uniquely determined since on cell.

only two faces sharing edge)

Definition at line 163 of file cellFeatures.H.

Referenced by topoCellLooper::getAlignedNonFeatureEdge().

Here is the caller graph for this function:

◆ isFeaturePoint()

bool isFeaturePoint ( const label  edge0,
const label  edge1 
) const

Are two edges connected at feature point?

Is local to face since point might be seen as feature point from one face but not from another.

Definition at line 414 of file cellFeatures.C.

References Foam::abort(), edge::end(), Foam::FatalError, FatalErrorInFunction, Foam::mag(), edge::start(), and edge::vec().

Referenced by topoCellLooper::getSuperEdge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isFeatureVertex()

bool isFeatureVertex ( const label  faceI,
const label  vertI 
) const

Is vertexI on faceI used by two edges that form feature.

point

Definition at line 481 of file cellFeatures.C.

References Foam::abort(), Foam::meshTools::edgeOnFace(), Foam::FatalError, FatalErrorInFunction, and forAll.

Referenced by topoCellLooper::walkFace().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ mesh_

const primitiveMesh& mesh_
private

Definition at line 65 of file cellFeatures.H.

Referenced by cellFeatures::faceAlignedEdge().

◆ minCos_

scalar minCos_
private

Cos of angle between two connected faces or two connected edges on.

same face before edge/point is 'feature'.

Definition at line 69 of file cellFeatures.H.

◆ cellI_

label cellI_
private

Definition at line 71 of file cellFeatures.H.

◆ featureEdge_

labelHashSet featureEdge_
private

Feature edges.

Definition at line 74 of file cellFeatures.H.

Referenced by cellFeatures::featureEdge().

◆ facesPtr_

faceList* facesPtr_
mutableprivate

(demand driven) Faces after removing internal points&edges

Definition at line 77 of file cellFeatures.H.

Referenced by cellFeatures::faceMap(), and cellFeatures::faces().

◆ faceMap_

List<DynamicList<label> > faceMap_
mutableprivate

New to old face mapping.

Definition at line 80 of file cellFeatures.H.

Referenced by cellFeatures::faceMap().


The documentation for this class was generated from the following files: