Wave propagation of information along patch. Every iteration information goes through one layer of faces. Templated on information that is transferred. More...
Public Member Functions | |
PatchEdgeFaceWave (const polyMesh &mesh, const PrimitivePatchType &patch, const labelList &initialEdges, const List< Type > &initialEdgesInfo, UList< Type > &allEdgeInfo, UList< Type > &allFaceInfo, const label maxIter, TrackingData &td=dummyTrackData_) | |
Construct from patch, list of changed edges with the Type. More... | |
PatchEdgeFaceWave (const polyMesh &mesh, const PrimitivePatchType &patch, UList< Type > &allEdgeInfo, UList< Type > &allFaceInfo, TrackingData &td=dummyTrackData_) | |
Construct from patch. Use setEdgeInfo and iterate() to do. More... | |
UList< Type > & | allEdgeInfo () const |
Access allEdgeInfo. More... | |
UList< Type > & | allFaceInfo () const |
Access allFaceInfo. More... | |
const TrackingData & | data () const |
Additional data to be passed into container. More... | |
label | getUnsetFaces () const |
Get number of unvisited faces, i.e. faces that were not (yet) More... | |
label | getUnsetEdges () const |
void | setEdgeInfo (const labelList &changedEdges, const List< Type > &changedEdgesInfo) |
Copy initial data into allEdgeInfo_. More... | |
label | edgeToFace () |
Propagate from edge to face. Returns total number of faces. More... | |
label | faceToEdge () |
Propagate from face to edge. Returns total number of edges. More... | |
label | iterate (const label maxIter) |
Iterate until no changes or maxIter reached. Returns actual. More... | |
Static Public Member Functions | |
static scalar | propagationTol () |
Access to tolerance. More... | |
static void | setPropagationTol (const scalar tol) |
Change tolerance. More... | |
Private Member Functions | |
bool | updateEdge (const label edgeI, const label neighbourFaceI, const Type &neighbourInfo, Type &edgeInfo) |
Updates edgeInfo with information from neighbour. Updates all. More... | |
bool | updateFace (const label faceI, const label neighbourEdgeI, const Type &neighbourInfo, Type &faceInfo) |
Updates faceInfo with information from neighbour. Updates all. More... | |
void | syncEdges () |
Update coupled edges. More... | |
PatchEdgeFaceWave (const PatchEdgeFaceWave &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const PatchEdgeFaceWave &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
const polyMesh & | mesh_ |
Reference to mesh. More... | |
const PrimitivePatchType & | patch_ |
Reference to patch. More... | |
UList< Type > & | allEdgeInfo_ |
Wall information for all edges. More... | |
UList< Type > & | allFaceInfo_ |
Information on all patch faces. More... | |
TrackingData & | td_ |
Additional data to be passed into container. More... | |
PackedBoolList | changedEdge_ |
Has edge changed. More... | |
DynamicList< label > | changedEdges_ |
List of changed edges. More... | |
PackedBoolList | changedFace_ |
Has face changed. More... | |
DynamicList< label > | changedFaces_ |
List of changed faces. More... | |
label | nEvals_ |
Number of evaluations. More... | |
label | nUnvisitedEdges_ |
Number of unvisited faces/edges. More... | |
label | nUnvisitedFaces_ |
labelList | patchEdges_ |
labelList | coupledEdges_ |
PackedBoolList | sameEdgeOrientation_ |
Static Private Attributes | |
static scalar | propagationTol_ = 0.01 |
Relative tolerance. Stop propagation if relative changes. More... | |
static label | dummyTrackData_ = 12345 |
Used as default trackdata value to satisfy default template. More... | |
Wave propagation of information along patch. Every iteration information goes through one layer of faces. Templated on information that is transferred.
Definition at line 69 of file PatchEdgeFaceWave.H.
|
private |
Disallow default bitwise copy construct.
PatchEdgeFaceWave | ( | const polyMesh & | mesh, |
const PrimitivePatchType & | patch, | ||
const labelList & | initialEdges, | ||
const List< Type > & | initialEdgesInfo, | ||
UList< Type > & | allEdgeInfo, | ||
UList< Type > & | allFaceInfo, | ||
const label | maxIter, | ||
TrackingData & | td = dummyTrackData_ |
||
) |
Construct from patch, list of changed edges with the Type.
for these edges. Gets work arrays to operate on, one of size number of patch edges, the other number of patch faces. Iterates until nothing changes or maxIter reached. (maxIter can be 0)
Definition at line 290 of file PatchEdgeFaceWave.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::Pout.
PatchEdgeFaceWave | ( | const polyMesh & | mesh, |
const PrimitivePatchType & | patch, | ||
UList< Type > & | allEdgeInfo, | ||
UList< Type > & | allFaceInfo, | ||
TrackingData & | td = dummyTrackData_ |
||
) |
Construct from patch. Use setEdgeInfo and iterate() to do.
actual calculation
Definition at line 380 of file PatchEdgeFaceWave.C.
|
private |
Updates edgeInfo with information from neighbour. Updates all.
statistics.
Definition at line 68 of file PatchEdgeFaceWave.C.
|
private |
Updates faceInfo with information from neighbour. Updates all.
statistics.
Definition at line 122 of file PatchEdgeFaceWave.C.
|
private |
Update coupled edges.
Construct with all data in consistent orientation
Definition at line 170 of file PatchEdgeFaceWave.C.
References List::append(), mapDistributeBase::constructSize(), forAll, globalMeshData::globalEdgeOrientation(), globalMeshData::globalEdgeSlaves(), globalMeshData::globalEdgeSlavesMap(), globalMeshData::globalEdgeTransformedSlaves(), globalMeshData::globalTransforms(), and globalMeshData::syncData().
|
private |
Disallow default bitwise assignment.
|
inlinestatic |
Access to tolerance.
Definition at line 165 of file PatchEdgeFaceWave.H.
References PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::propagationTol_.
|
inlinestatic |
Change tolerance.
Definition at line 171 of file PatchEdgeFaceWave.H.
References PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::propagationTol_.
|
inline |
Access allEdgeInfo.
Definition at line 211 of file PatchEdgeFaceWave.H.
References PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::allEdgeInfo_.
|
inline |
Access allFaceInfo.
Definition at line 217 of file PatchEdgeFaceWave.H.
References PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::allFaceInfo_.
|
inline |
Additional data to be passed into container.
Definition at line 223 of file PatchEdgeFaceWave.H.
References PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::td_.
Foam::label getUnsetFaces |
Get number of unvisited faces, i.e. faces that were not (yet)
reached from walking across patch. This can happen from
Definition at line 437 of file PatchEdgeFaceWave.C.
Foam::label getUnsetEdges |
Definition at line 424 of file PatchEdgeFaceWave.C.
Copy initial data into allEdgeInfo_.
Definition at line 452 of file PatchEdgeFaceWave.C.
References List::append(), and forAll.
Foam::label edgeToFace |
Propagate from edge to face. Returns total number of faces.
(over all processors) changed.
Definition at line 554 of file PatchEdgeFaceWave.C.
References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::nl, Foam::Pout, and Foam::returnReduce().
Foam::label faceToEdge |
Propagate from face to edge. Returns total number of edges.
(over all processors) changed.
Definition at line 491 of file PatchEdgeFaceWave.C.
References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::nl, Foam::Pout, and Foam::returnReduce().
Foam::label iterate | ( | const label | maxIter | ) |
Iterate until no changes or maxIter reached. Returns actual.
number of iterations.
Definition at line 616 of file PatchEdgeFaceWave.C.
References Foam::endl(), Foam::nl, and Foam::Pout.
|
staticprivate |
Relative tolerance. Stop propagation if relative changes.
less than this tolerance (responsability for checking this is up to Type implementation)
Definition at line 78 of file PatchEdgeFaceWave.H.
Referenced by PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::propagationTol(), and PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::setPropagationTol().
|
staticprivate |
Used as default trackdata value to satisfy default template.
argument.
Definition at line 82 of file PatchEdgeFaceWave.H.
|
private |
Reference to mesh.
Definition at line 88 of file PatchEdgeFaceWave.H.
|
private |
Reference to patch.
Definition at line 91 of file PatchEdgeFaceWave.H.
|
private |
Wall information for all edges.
Definition at line 94 of file PatchEdgeFaceWave.H.
Referenced by PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::allEdgeInfo().
|
private |
Information on all patch faces.
Definition at line 97 of file PatchEdgeFaceWave.H.
Referenced by PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::allFaceInfo().
|
private |
Additional data to be passed into container.
Definition at line 100 of file PatchEdgeFaceWave.H.
Referenced by PatchEdgeFaceWave< PrimitivePatchType, Type, TrackingData >::data().
|
private |
Has edge changed.
Definition at line 103 of file PatchEdgeFaceWave.H.
|
private |
List of changed edges.
Definition at line 106 of file PatchEdgeFaceWave.H.
|
private |
Has face changed.
Definition at line 109 of file PatchEdgeFaceWave.H.
|
private |
List of changed faces.
Definition at line 112 of file PatchEdgeFaceWave.H.
|
private |
Number of evaluations.
Definition at line 115 of file PatchEdgeFaceWave.H.
|
private |
Number of unvisited faces/edges.
Definition at line 118 of file PatchEdgeFaceWave.H.
|
private |
Definition at line 119 of file PatchEdgeFaceWave.H.
|
private |
Definition at line 123 of file PatchEdgeFaceWave.H.
|
private |
Definition at line 124 of file PatchEdgeFaceWave.H.
|
private |
Definition at line 125 of file PatchEdgeFaceWave.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.