hexCellLooper Class Reference

Implementation of cellLooper. More...

Inheritance diagram for hexCellLooper:
Collaboration diagram for hexCellLooper:

Public Member Functions

 TypeName ("hexCellLooper")
 Runtime type information. More...
 
 hexCellLooper (const polyMesh &mesh)
 Construct from components. More...
 
 hexCellLooper (const hexCellLooper &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~hexCellLooper ()
 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...
 
void operator= (const hexCellLooper &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from geomCellLooper
 TypeName ("geomCellLooper")
 Runtime type information. More...
 
 geomCellLooper (const polyMesh &mesh)
 Construct from components. More...
 
 geomCellLooper (const geomCellLooper &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~geomCellLooper ()
 Destructor. More...
 
void operator= (const geomCellLooper &)=delete
 Disallow default bitwise assignment. 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...
 
 cellLooper (const cellLooper &)=delete
 Disallow default bitwise copy construction. More...
 
autoPtr< cellLooperclone () const
 Clone. More...
 
virtual ~cellLooper ()
 Destructor. More...
 
void operator= (const cellLooper &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from edgeVertex
 edgeVertex (const polyMesh &mesh)
 Construct from mesh. More...
 
 edgeVertex (const edgeVertex &)=delete
 Disallow default bitwise copy construction. 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...
 
void operator= (const edgeVertex &)=delete
 Disallow default bitwise assignment. More...
 

Protected Attributes

const cellModelhex_
 Reference to hex cell shape. More...
 

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)
 Return a reference to the selected cellLooper. More...
 
- Static Public Member Functions inherited from edgeVertex
static void updateLabels (const labelList &map, List< refineCell > &)
 Update refine list from map. Used to update cell/face labels. More...
 
static void updateLabels (const labelList &map, Map< label > &)
 Update map from map. Used to update cell/face labels. More...
 
static void updateLabels (const labelList &map, labelHashSet &)
 Update map from map. Used to update cell/face labels. More...
 
static bool isEdge (const primitiveMesh &mesh, const label eVert)
 Is eVert an edge? More...
 
static label getEdge (const primitiveMesh &mesh, const label eVert)
 Convert eVert to edge label. More...
 
static label getVertex (const primitiveMesh &mesh, const label eVert)
 Convert eVert to vertex label. More...
 
static label vertToEVert (const primitiveMesh &mesh, const label vertI)
 Convert pointi to eVert. More...
 
static label edgeToEVert (const primitiveMesh &mesh, const label edgeI)
 Convert edgeI to eVert. More...
 
static point coord (const primitiveMesh &, const label cut, const scalar weight)
 Return coordinate of cut (uses weight if edgeCut) More...
 
static label cutPairToEdge (const primitiveMesh &, const label cut0, const label cut1)
 Find mesh edge (or -1) between two cuts. More...
 
- 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...
 

Detailed Description

Implementation of cellLooper.

This one walks hexes in a topological way:

  • cross edge to other face
  • cross face by walking edge-point-edge across to reach the other side. (edges are always cut through the middle)

For anything else (tet, prism, .. poly) it will use geomCellLooper (which does a purely geometric cut using a plane through cell centre)

Source files

Definition at line 60 of file hexCellLooper.H.

Constructor & Destructor Documentation

◆ hexCellLooper() [1/2]

hexCellLooper ( const polyMesh mesh)

Construct from components.

Definition at line 153 of file hexCellLooper.C.

◆ hexCellLooper() [2/2]

hexCellLooper ( const hexCellLooper )
delete

Disallow default bitwise copy construction.

◆ ~hexCellLooper()

~hexCellLooper ( )
virtual

Destructor.

Definition at line 162 of file hexCellLooper.C.

References hexCellLooper::cut().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

TypeName ( "hexCellLooper"  )

Runtime type information.

◆ 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

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 geomCellLooper.

Reimplemented in topoCellLooper.

Definition at line 169 of file hexCellLooper.C.

References Foam::abort(), cells, cellShapes, geomCellLooper::cut(), Foam::meshTools::cutDirToEdge(), UList< T >::empty(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::meshTools::getEdgeFaces(), hexCellLooper::hex_, edgeVertex::mesh(), Foam::name(), points, Foam::Pout, List< T >::setSize(), List< T >::size(), success, WarningInFunction, and Foam::meshTools::writeOBJ().

Referenced by topoCellLooper::cut(), and hexCellLooper::~hexCellLooper().

Here is the call graph for this function:
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

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

cell centre)

Reimplemented from geomCellLooper.

Reimplemented in topoCellLooper.

Definition at line 274 of file hexCellLooper.C.

References geomCellLooper::cut().

Here is the call graph for this function:

◆ operator=()

void operator= ( const hexCellLooper )
delete

Disallow default bitwise assignment.

Member Data Documentation

◆ hex_

const cellModel& hex_
protected

Reference to hex cell shape.

Definition at line 70 of file hexCellLooper.H.

Referenced by hexCellLooper::cut(), and topoCellLooper::cut().


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