Public Member Functions | Static Public Member Functions | List of all members
geomCellLooper Class Reference

Implementation of cellLooper. Does pure geometric cut through cell. More...

Inheritance diagram for geomCellLooper:
Inheritance graph
[legend]
Collaboration diagram for geomCellLooper:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("geomCellLooper")
 
 geomCellLooper (const polyMesh &mesh)
 
virtual ~geomCellLooper ()=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 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 Member Functions

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)
 

Additional Inherited Members

- 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
 

Detailed Description

Implementation of cellLooper. Does pure geometric cut through cell.

Handles all cell shapes in the same way: cut edges with plane through cell centre and normal in direction of provided direction. Snaps cuts close to edge endpoints (close = snapTol * minEdgeLen) to vertices.

Currently determines cuts through edges (and edge endpoints close to plane) in random order and then sorts them acc. to angle. Could be converted to use walk but problem is that face can be cut multiple times (since does not need to be convex). Another problem is that edges parallel to plane might not be cut. So these are handled by looking at the distance from edge endpoints to the plane.

Source files

Definition at line 62 of file geomCellLooper.H.

Constructor & Destructor Documentation

◆ geomCellLooper()

geomCellLooper ( const polyMesh mesh)
explicit

Definition at line 201 of file geomCellLooper.C.

◆ ~geomCellLooper()

virtual ~geomCellLooper ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "geomCellLooper"  )

◆ snapTol()

static scalar snapTol ( )
inlinestatic

Definition at line 127 of file geomCellLooper.H.

◆ setSnapTol()

static void setSnapTol ( const scalar  tol)
inlinestatic

Definition at line 132 of file geomCellLooper.H.

◆ 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

Implements cellLooper.

Reimplemented in topoCellLooper, and hexCellLooper.

Definition at line 210 of file geomCellLooper.C.

References mesh.

Referenced by hexCellLooper::cut().

Here is the caller graph for this function:

◆ 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

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