Public Member Functions | Static Public Attributes | List of all members
topoCellLooper Class Reference

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:
Inheritance graph
[legend]
Collaboration diagram for topoCellLooper:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("topoCellLooper")
 
 topoCellLooper (const polyMesh &mesh)
 
virtual ~topoCellLooper ()=default
 
virtual bool cut (const vector &refDir, const label celli, const boolList &vertIsCut, const boolList &edgeIsCut, const scalarField &edgeWeight, labelList &loop, scalarField &loopWeights) const
 
virtual bool cut (const plane &cutPlane, const label celli, const boolList &vertIsCut, const boolList &edgeIsCut, const scalarField &edgeWeight, labelList &loop, scalarField &loopWeights) const
 
- Public Member Functions inherited from hexCellLooper
 TypeName ("hexCellLooper")
 
 hexCellLooper (const polyMesh &mesh)
 
virtual ~hexCellLooper ()=default
 
- Public Member Functions inherited from geomCellLooper
 TypeName ("geomCellLooper")
 
 geomCellLooper (const polyMesh &mesh)
 
virtual ~geomCellLooper ()=default
 
- Public Member Functions inherited from cellLooper
 TypeName ("cellLooper")
 
 declareRunTimeSelectionTable (autoPtr, cellLooper, word,(const polyMesh &mesh),(mesh))
 
 cellLooper (const polyMesh &mesh)
 
autoPtr< cellLooperclone () const
 
virtual ~cellLooper ()=default
 
- Public Member Functions inherited from edgeVertex
 edgeVertex (const polyMesh &mesh)
 
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
 
OstreamwriteCuts (Ostream &os, const labelList &, const scalarField &) const
 

Static Public Attributes

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

Additional Inherited Members

- Static Public Member Functions inherited from geomCellLooper
static scalar snapTol ()
 
static void setSnapTol (const scalar tol)
 
- Static Public Member Functions inherited from cellLooper
static autoPtr< cellLooperNew (const word &type, const polyMesh &mesh)
 
- Static Public Member Functions inherited from edgeVertex
static void updateLabels (const labelList &map, List< refineCell > &)
 
static void updateLabels (const labelList &map, Map< label > &)
 
static void updateLabels (const labelList &map, labelHashSet &)
 
static bool isEdge (const primitiveMesh &mesh, const label eVert)
 
static label getEdge (const primitiveMesh &mesh, const label eVert)
 
static label getVertex (const primitiveMesh &mesh, const label eVert)
 
static label vertToEVert (const primitiveMesh &mesh, const label vertI)
 
static label edgeToEVert (const primitiveMesh &mesh, const label edgeI)
 
static point coord (const primitiveMesh &, const label cut, const scalar weight)
 
static label cutPairToEdge (const primitiveMesh &, const label cut0, const label cut1)
 
- Protected Member Functions inherited from cellLooper
labelList getVertFacesNonEdge (const label celli, const label edgeI, const label vertI) const
 
label getFirstVertEdge (const label facei, const label vertI) const
 
labelList getVertEdgesNonFace (const label celli, const label facei, const label vertI) const
 
label getMisAlignedEdge (const vector &refDir, const label celli) const
 
 cellLooper (const cellLooper &)=delete
 
void operator= (const cellLooper &)=delete
 
- Protected Attributes inherited from hexCellLooper
const cellModelhex_
 

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 65 of file topoCellLooper.H.

Constructor & Destructor Documentation

◆ topoCellLooper()

topoCellLooper ( const polyMesh mesh)
explicit

Definition at line 658 of file topoCellLooper.C.

◆ ~topoCellLooper()

virtual ~topoCellLooper ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "topoCellLooper"  )

◆ cut() [1/2]

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

◆ cut() [2/2]

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

Reimplemented from hexCellLooper.

Definition at line 778 of file topoCellLooper.C.

References hexCellLooper::cut().

Here is the call graph for this function:

Member Data Documentation

◆ featureCos

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

Definition at line 159 of file topoCellLooper.H.


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