OpenFOAM logo
Open Source CFD Toolkit

cellMatcher Class Reference

Inheritance diagram for cellMatcher:

Inheritance graph
[legend]
Collaboration diagram for cellMatcher:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 cellMatcher (const label vertPerCell, const label facePerCell, const label maxVertPerFace, const word &cellModelName)
 Construct given mesh and shape factors.
virtual ~cellMatcher ()
const Map< label > & localPoint () const
const faceListlocalFaces () const
const labelListfaceSize () const
const labelListpointMap () const
const labelListfaceMap () const
const labelListedgeFaces () const
const labelListListpointFaceIndex () const
const labelListvertLabels () const
const labelListfaceLabels () const
const cellModelmodel () const
void write (Ostream &os) const
virtual label nVertPerCell () const =0
virtual label nFacePerCell () const =0
virtual label nMaxVertPerFace () const =0
virtual label faceHashValue () const =0
 Hash value of all face sizes of this shape. Can be used for.
virtual bool faceSizeMatch (const faceList &, const labelList &) const =0
 Check whether number of face sizes match the shape.
virtual bool matchShape (const bool checkOnly, const faceList &faces, const labelList &faceOwner, const label cellI, const labelList &myFaces)=0
 Low level shape recognition. Return true if matches.
virtual bool isA (const primitiveMesh &mesh, const label cellI)=0
 Exact match. Uses faceSizeMatch.
virtual bool isA (const faceList &)=0
 Exact match given all the faces forming a cell. No checks.
virtual bool matches (const primitiveMesh &mesh, const label cellI, cellShape &shape)=0
 Like isA but also constructs a cellShape (if shape matches).

Static Public Member Functions

labelList makeIdentity (const label nElems)
 Create list with incrementing labels.

Protected Member Functions

label calcLocalFaces (const faceList &faces, const labelList &myFaces)
 Calculates localFaces. Returns number of local vertices (or -1.
void calcEdgeAddressing (const label numVert)
 Fill edge (start, end) to face number.
void calcPointFaceIndex ()
 Fill vertex/face to index in face data structure.
label otherFace (const label numVert, const label v0, const label v1, const label localFaceI) const
 Given start,end of edge lookup both faces sharing it and return.

Static Protected Member Functions

label edgeKey (const label numVert, const label v0, const label v1)
 Given start and end of edge generate unique key.
label nextVert (const label, const label, const bool)
 Step along face either in righthand or lefthand direction.

Protected Attributes

Map< labellocalPoint_
faceList localFaces_
 Faces using local vertex numbering.
labelList faceSize_
 Number of vertices per face in localFaces_.
labelList pointMap_
 Map from local to mesh vertex numbering.
labelList faceMap_
 Map from local to mesh face numbering.
labelList edgeFaces_
 Map from 'edge' to neighbouring faces.
labelListList pointFaceIndex_
 pointFaceIndex[localVertI][localFaceI] is index in localFace
labelList vertLabels_
 After matching: holds mesh vertices in cellmodel order.
labelList faceLabels_
 After matching: holds mesh faces in cellmodel order.
const word cellModelName_
 CellModel name.
const cellModelcellModelPtr_

Constructor & Destructor Documentation

cellMatcher const label  vertPerCell,
const label  facePerCell,
const label  maxVertPerFace,
const word cellModelName
 

Construct given mesh and shape factors.

virtual ~cellMatcher  )  [inline, virtual]
 

Definition at line 220 of file cellMatcher.H.

References Foam::faceList, Foam::label, Foam::labelList, and Foam::labelListList.


Member Function Documentation

void calcEdgeAddressing const label  numVert  )  [protected]
 

Fill edge (start, end) to face number.

label calcLocalFaces const faceList faces,
const labelList myFaces
[protected]
 

Calculates localFaces. Returns number of local vertices (or -1.

if more than vertPerCell).

void calcPointFaceIndex  )  [protected]
 

Fill vertex/face to index in face data structure.

const Foam::labelList & edgeFaces  )  const [inline]
 

Definition at line 73 of file cellMatcherI.H.

References Foam::labelListList.

Foam::label edgeKey const label  numVert,
const label  v0,
const label  v1
[inline, static, protected]
 

Given start and end of edge generate unique key.

Definition at line 111 of file cellMatcherI.H.

virtual label faceHashValue  )  const [pure virtual]
 

Hash value of all face sizes of this shape. Can be used for.

quick initial recognition.

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

const Foam::labelList & faceLabels  )  const [inline]
 

Definition at line 91 of file cellMatcherI.H.

References cellMatcher::cellModelName_, and cellMatcher::cellModelPtr_.

const Foam::labelList & faceMap  )  const [inline]
 

Definition at line 67 of file cellMatcherI.H.

References Foam::labelList.

const Foam::labelList & faceSize  )  const [inline]
 

Definition at line 55 of file cellMatcherI.H.

References Foam::labelList.

virtual bool faceSizeMatch const faceList ,
const labelList
const [pure virtual]
 

Check whether number of face sizes match the shape.

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

virtual bool isA const faceList  )  [pure virtual]
 

Exact match given all the faces forming a cell. No checks.

on whether faces match up and form a closed shape.

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

virtual bool isA const primitiveMesh mesh,
const label  cellI
[pure virtual]
 

Exact match. Uses faceSizeMatch.

Returns true if cell matches shape exactly.

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

const Foam::faceList & localFaces  )  const [inline]
 

Definition at line 49 of file cellMatcherI.H.

References Foam::labelList.

const Foam::Map< Foam::label > & localPoint  )  const [inline]
 

Definition at line 43 of file cellMatcherI.H.

References Foam::faceList.

labelList makeIdentity const label  nElems  )  [static]
 

Create list with incrementing labels.

virtual bool matches const primitiveMesh mesh,
const label  cellI,
cellShape shape
[pure virtual]
 

Like isA but also constructs a cellShape (if shape matches).

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

virtual bool matchShape const bool  checkOnly,
const faceList faces,
const labelList faceOwner,
const label  cellI,
const labelList myFaces
[pure virtual]
 

Low level shape recognition. Return true if matches.

Works in detection mode only (checkOnly=true) or in exact matching. Returns true and sets vertLabels_. Needs faces, faceOwner of all faces in 'mesh' and cell number and labels of faces for this cell. cellI only used in combination with faceOwner to detect owner status.

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

const Foam::cellModel & model  )  const [inline]
 

Definition at line 97 of file cellMatcherI.H.

Foam::label nextVert const   label,
const   label,
const   bool
[inline, static, protected]
 

Step along face either in righthand or lefthand direction.

Definition at line 123 of file cellMatcherI.H.

References Foam::size().

Here is the call graph for this function:

virtual label nFacePerCell  )  const [pure virtual]
 

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

virtual label nMaxVertPerFace  )  const [pure virtual]
 

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

virtual label nVertPerCell  )  const [pure virtual]
 

Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher.

label otherFace const label  numVert,
const label  v0,
const label  v1,
const label  localFaceI
const [protected]
 

Given start,end of edge lookup both faces sharing it and return.

face != localFaceI

const Foam::labelListList & pointFaceIndex  )  const [inline]
 

Definition at line 79 of file cellMatcherI.H.

References Foam::labelList.

const Foam::labelList & pointMap  )  const [inline]
 

Definition at line 61 of file cellMatcherI.H.

References Foam::labelList.

const Foam::labelList & vertLabels  )  const [inline]
 

Definition at line 85 of file cellMatcherI.H.

References Foam::labelList.

void write Ostream os  )  const
 


Member Data Documentation

const word cellModelName_ [protected]
 

CellModel name.

Definition at line 157 of file cellMatcher.H.

Referenced by cellMatcher::faceLabels().

const cellModel* cellModelPtr_ [mutable, protected]
 

Definition at line 159 of file cellMatcher.H.

Referenced by cellMatcher::faceLabels().

labelList edgeFaces_ [protected]
 

Map from 'edge' to neighbouring faces.

Definition at line 142 of file cellMatcher.H.

labelList faceLabels_ [protected]
 

After matching: holds mesh faces in cellmodel order.

Definition at line 154 of file cellMatcher.H.

labelList faceMap_ [protected]
 

Map from local to mesh face numbering.

Definition at line 139 of file cellMatcher.H.

labelList faceSize_ [protected]
 

Number of vertices per face in localFaces_.

Definition at line 133 of file cellMatcher.H.

faceList localFaces_ [protected]
 

Faces using local vertex numbering.

Definition at line 130 of file cellMatcher.H.

Map<label> localPoint_ [protected]
 

Definition at line 127 of file cellMatcher.H.

labelListList pointFaceIndex_ [protected]
 

pointFaceIndex[localVertI][localFaceI] is index in localFace

where localVertI is.

Definition at line 148 of file cellMatcher.H.

labelList pointMap_ [protected]
 

Map from local to mesh vertex numbering.

Definition at line 136 of file cellMatcher.H.

labelList vertLabels_ [protected]
 

After matching: holds mesh vertices in cellmodel order.

Definition at line 151 of file cellMatcher.H.


The documentation for this class was generated from the following files:
For further information go to www.openfoam.org