Wave propagation of information through grid. Every iteration information goes through one layer of edges. More...
Public Member Functions | |
PointEdgeWave (const polyMesh &mesh, const labelList &initialPoints, const List< Type > &initialPointsInfo, UList< Type > &allPointInfo, UList< Type > &allEdgeInfo, const label maxIter, TrackingData &td=dummyTrackData_) | |
PointEdgeWave (const polyMesh &mesh, UList< Type > &allPointInfo, UList< Type > &allEdgeInfo, TrackingData &td=dummyTrackData_) | |
~PointEdgeWave ()=default | |
UList< Type > & | allPointInfo () const |
UList< Type > & | allEdgeInfo () const |
const TrackingData & | data () const |
label | nUnvisitedEdges () const |
label | nUnvisitedPoints () const |
void | setPointInfo (const labelList &changedPoints, const List< Type > &changedPointsInfo) |
label | pointToEdge () |
label | edgeToPoint () |
label | iterate (const label maxIter) |
template<class PatchType > | |
Foam::label | countPatchType () const |
Static Public Member Functions | |
static scalar | propagationTol () |
static void | setPropagationTol (const scalar tol) |
Wave propagation of information through grid. Every iteration information goes through one layer of edges.
Templated on information that is transferred.
Handles parallel and cyclics. Only parallel reasonably tested. Cyclics hardly tested.
Note: whether to propagate depends on the return value of Type::update which returns true (i.e. propagate) if the value changes by more than a certain tolerance.
Note: parallel is done in two steps:
Note: cyclics is with offset in patchface as well. Patch is divided into two sub patches and the point-point addressing is never explicitly calculated but instead use is made of the face-face correspondence. (it probably is more efficient to calculate a point-point correspondence at the start and then reuse this; task to be done)
Definition at line 84 of file PointEdgeWave.H.
PointEdgeWave | ( | const polyMesh & | mesh, |
const labelList & | initialPoints, | ||
const List< Type > & | initialPointsInfo, | ||
UList< Type > & | allPointInfo, | ||
UList< Type > & | allEdgeInfo, | ||
const label | maxIter, | ||
TrackingData & | td = dummyTrackData_ |
||
) |
Definition at line 607 of file PointEdgeWave.C.
References Foam::expressions::patchExpr::debug, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::Info, and Foam::returnReduce().
PointEdgeWave | ( | const polyMesh & | mesh, |
UList< Type > & | allPointInfo, | ||
UList< Type > & | allEdgeInfo, | ||
TrackingData & | td = dummyTrackData_ |
||
) |
Definition at line 680 of file PointEdgeWave.C.
|
default |
|
inlinestatic |
Definition at line 223 of file PointEdgeWave.H.
|
inlinestatic |
Definition at line 229 of file PointEdgeWave.H.
|
inline |
Definition at line 271 of file PointEdgeWave.H.
|
inline |
Definition at line 277 of file PointEdgeWave.H.
|
inline |
Definition at line 283 of file PointEdgeWave.H.
Foam::label nUnvisitedEdges |
Definition at line 714 of file PointEdgeWave.C.
Foam::label nUnvisitedPoints |
Definition at line 707 of file PointEdgeWave.C.
Definition at line 723 of file PointEdgeWave.C.
References forAll.
Foam::label pointToEdge |
Definition at line 835 of file PointEdgeWave.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::nl, and reduce().
Foam::label edgeToPoint |
Definition at line 759 of file PointEdgeWave.C.
References Foam::abort(), Foam::constant::electromagnetic::e, Foam::FatalError, FatalErrorInFunction, forAll, Foam::nl, and reduce().
Foam::label iterate | ( | const label | maxIter | ) |
Definition at line 904 of file PointEdgeWave.C.
References Foam::expressions::patchExpr::debug, Foam::endl(), Foam::Info, Foam::nl, nPoints, and Foam::returnReduce().
Foam::label countPatchType | ( | ) | const |
Definition at line 290 of file PointEdgeWave.C.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.