Public Member Functions | List of all members
refinementIterator Class Reference

Utility class to do iterating meshCutter until all requests satisfied. More...

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

Public Member Functions

 ClassName ("refinementIterator")
 Runtime type information. More...
 
 refinementIterator (polyMesh &mesh, undoableMeshCutter &meshRefiner, const cellLooper &cellWalker, const bool writeMesh=false)
 Construct from mesh, refinementEngine and cell walking routine. More...
 
 ~refinementIterator ()
 Destructor. More...
 
Map< labelsetRefinement (const List< refineCell > &)
 Try to refine cells in given direction. Constructs intermediate. 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...
 

Additional Inherited Members

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

Detailed Description

Utility class to do iterating meshCutter until all requests satisfied.

Needed since cell cutting can only cut cell once in one go so if refinement pattern is not compatible on a cell by cell basis it will refuse to cut.

Parallel: communicates. All decisions done on 'reduce'd variable.

Source files

Definition at line 64 of file refinementIterator.H.

Constructor & Destructor Documentation

◆ refinementIterator()

refinementIterator ( polyMesh mesh,
undoableMeshCutter meshRefiner,
const cellLooper cellWalker,
const bool  writeMesh = false 
)

Construct from mesh, refinementEngine and cell walking routine.

If writeMesh = true increments runTime and writes intermediate meshes.

Definition at line 49 of file refinementIterator.C.

◆ ~refinementIterator()

Destructor.

Definition at line 66 of file refinementIterator.C.

References refinementIterator::setRefinement().

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "refinementIterator"  )

Runtime type information.

◆ setRefinement()

Foam::Map< Foam::label > setRefinement ( const List< refineCell > &  refCells)

Try to refine cells in given direction. Constructs intermediate.

meshes. Returns map from old to added cells.

Definition at line 73 of file refinementIterator.C.

References Foam::abort(), refineCell::cellNo(), cells, polyTopoChange::changeMesh(), refineCell::direction(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, forAllConstIter(), mesh, cellCuts::nLoops(), points, Foam::Pout, Foam::reduce(), Foam::returnReduce(), mapPolyMesh::reverseCellMap(), List< T >::setSize(), List< T >::size(), WarningInFunction, Ostream::write(), and Foam::meshTools::writeOBJ().

Referenced by refinementIterator::~refinementIterator().

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

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