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...
#include <dynamicMesh/topoCellLooper.H>
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.
Definition at line 67 of file topoCellLooper.H.
Public Member Functions | |
TypeName ("topoCellLooper") | |
Runtime type information.
| |
topoCellLooper (const polyMesh &mesh) | |
Construct from components.
| |
virtual | ~topoCellLooper () |
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.
| |
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.
| |
Static Public Attributes | |
static const scalar | featureCos |
cos of angle for feature recognition (of splitHexes)
|
topoCellLooper | ( | const polyMesh & | mesh ) |
Construct from components.
Definition at line 687 of file topoCellLooper.C.
~topoCellLooper | ( | ) | [virtual]
|
Definition at line 695 of file topoCellLooper.C.
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 702 of file topoCellLooper.C.
References primitiveMesh::cells(), hexCellLooper::cut(), primitiveMesh::edges(), cellFeatures::faces(), Foam::meshTools::getEdgeFaces(), Foam::isA(), mesh, List< T >::size(), and List< T >::transfer().
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 813 of file topoCellLooper.C.
References hexCellLooper::cut().
const Foam::scalar featureCos [static]
|
Foam::cos(10.0 * mathematicalConstant::pi/180.0)
cos of angle for feature recognition (of splitHexes)
Definition at line 162 of file topoCellLooper.H.