Implementation of cellLooper. This one recognizes splitHexes and tries to make a cut such that if the neighbour was split (in a previous iteration) this one also gets split in the same direction so that the result will be a mesh without splitHexes. More...

Inheritance diagram for topoCellLooper:
Collaboration diagram for topoCellLooper:

Public Member Functions

 TypeName ("topoCellLooper")
 Runtime type information. More...
 
 topoCellLooper (const polyMesh &mesh)
 Construct from components. More...
 
virtual ~topoCellLooper ()
 Destructor. More...
 
virtual bool cut (const vector &refDir, const label cellI, const boolList &vertIsCut, const boolList &edgeIsCut, const scalarField &edgeWeight, labelList &loop, scalarField &loopWeights) const
 Create cut along circumference of cellI. Gets current mesh cuts. More...
 
virtual bool cut (const plane &cutPlane, const label cellI, const boolList &vertIsCut, const boolList &edgeIsCut, const scalarField &edgeWeight, labelList &loop, scalarField &loopWeights) const
 Same but now also base point of cut provided (instead of always. More...
 
template<class T >
void subsetList (const label startI, const label freeI, DynamicList< T > &lst)
 
- Public Member Functions inherited from hexCellLooper
 TypeName ("hexCellLooper")
 Runtime type information. More...
 
 hexCellLooper (const polyMesh &mesh)
 Construct from components. More...
 
virtual ~hexCellLooper ()
 Destructor. More...
 
- Public Member Functions inherited from geomCellLooper
 TypeName ("geomCellLooper")
 Runtime type information. More...
 
 geomCellLooper (const polyMesh &mesh)
 Construct from components. More...
 
virtual ~geomCellLooper ()
 Destructor. More...
 
- Public Member Functions inherited from cellLooper
 TypeName ("cellLooper")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, cellLooper, word,(const polyMesh &mesh),(mesh))
 
 cellLooper (const polyMesh &mesh)
 Construct from components. More...
 
autoPtr< cellLooperclone () const
 Clone. More...
 
virtual ~cellLooper ()
 Destructor. More...
 
- Public Member Functions inherited from edgeVertex
 edgeVertex (const polyMesh &mesh)
 Construct from mesh. More...
 
const polyMeshmesh () const
 
bool isEdge (const label eVert) const
 
label getEdge (const label eVert) const
 
label getVertex (const label eVert) const
 
label vertToEVert (const label vertI) const
 
label edgeToEVert (const label edgeI) const
 
point coord (const label cut, const scalar weight) const
 
label cutPairToEdge (const label cut0, const label cut1) const
 
OstreamwriteCut (Ostream &os, const label cut, const scalar) const
 Write cut description to Ostream. More...
 
OstreamwriteCuts (Ostream &os, const labelList &, const scalarField &) const
 Write cut descriptions to Ostream. More...
 

Static Public Attributes

static const scalar featureCos = Foam::cos(degToRad(10.0))
 cos of angle for feature recognition (of splitHexes) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from geomCellLooper
static scalar snapTol ()
 
static void setSnapTol (const scalar tol)
 
- Protected Member Functions inherited from cellLooper
labelList getVertFacesNonEdge (const label cellI, const label edgeI, const label vertI) const
 Get faces (on cell) connected to vertI which are not using edgeI. More...
 
label getFirstVertEdge (const label faceI, const label vertI) const
 Get first edge connected to vertI and on faceI. More...
 
labelList getVertEdgesNonFace (const label cellI, const label faceI, const label vertI) const
 Get edges (on cell) connected to vertI which are not on faceI. More...
 
label getMisAlignedEdge (const vector &refDir, const label cellI) const
 Return edge from cellEdges that is most perpendicular. More...
 
- Protected Attributes inherited from hexCellLooper
const cellModelhex_
 Reference to hex cell shape. More...
 

Detailed Description

Implementation of cellLooper. This one recognizes splitHexes and tries to make a cut such that if the neighbour was split (in a previous iteration) this one also gets split in the same direction so that the result will be a mesh without splitHexes.

'splitHexes' are cells of which the 'featureEdges' (see cellFeatures class) form a hex. The remaining non-feature edges are assumed to result from splitting the neighbour and this class tries to start from one of these and cut through to an opposite edge.

The current set of cuts (vertIsCut, edgeIsCut, edgeWeight) are not being used by this implementation.

All non-splitHexes are done by the parent classes.

Source files

Definition at line 67 of file topoCellLooper.H.

Constructor & Destructor Documentation

topoCellLooper ( const polyMesh mesh)

Construct from components.

Definition at line 685 of file topoCellLooper.C.

~topoCellLooper ( )
virtual

Destructor.

Definition at line 693 of file topoCellLooper.C.

References topoCellLooper::~topoCellLooper().

Referenced by topoCellLooper::~topoCellLooper().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Function Documentation

TypeName ( "topoCellLooper"  )

Runtime type information.

bool cut ( const vector refDir,
const label  cellI,
const boolList vertIsCut,
const boolList edgeIsCut,
const scalarField edgeWeight,
labelList loop,
scalarField loopWeights 
) const
virtual

Create cut along circumference of cellI. Gets current mesh cuts.

Cut along circumference is expressed as loop of cuts plus weights for cuts along edges (only valid for edge cuts). Return true if successful cut.

Reimplemented from hexCellLooper.

Definition at line 700 of file topoCellLooper.C.

References cellShapes, cellFeatures::faces(), Foam::meshTools::getEdgeFaces(), Foam::isA(), mesh, and List< T >::size().

Here is the call graph for this function:

bool cut ( const plane cutPlane,
const label  cellI,
const boolList vertIsCut,
const boolList edgeIsCut,
const scalarField edgeWeight,
labelList loop,
scalarField loopWeights 
) const
virtual

Same but now also base point of cut provided (instead of always.

cell centre)

Reimplemented from hexCellLooper.

Definition at line 811 of file topoCellLooper.C.

void subsetList ( const label  startI,
const label  freeI,
DynamicList< T > &  lst 
)

Definition at line 54 of file topoCellLooper.C.

References Foam::abort(), FatalErrorIn, and DynamicList< T, SizeInc, SizeMult, SizeDiv >::setCapacity().

Here is the call graph for this function:

Member Data Documentation

const Foam::scalar featureCos = Foam::cos(degToRad(10.0))
static

cos of angle for feature recognition (of splitHexes)

Definition at line 162 of file topoCellLooper.H.


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