The coupledPolyPatch is an abstract base class for patches that couple regions of the computational domain e.g. cyclic and processor-processor links. More...
Public Types | |
enum | transformType { UNKNOWN, ROTATIONAL, TRANSLATIONAL, COINCIDENTFULLMATCH, NOORDERING } |
![]() | |
enum | surfaceTopo { MANIFOLD, OPEN, ILLEGAL } |
typedef std::remove_reference< FaceList >::type::value_type | face_type |
typedef std::remove_reference< PointField >::type::value_type | point_type |
typedef FaceList | FaceListType |
typedef PointField | PointFieldType |
typedef face_type | FaceType |
Public Member Functions | |
TypeName ("coupled") | |
coupledPolyPatch (const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform) | |
coupledPolyPatch (const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &bm, const word &patchType) | |
coupledPolyPatch (const coupledPolyPatch &, const polyBoundaryMesh &bm) | |
coupledPolyPatch (const coupledPolyPatch &, const labelList &faceCells) | |
coupledPolyPatch (const coupledPolyPatch &pp, const polyBoundaryMesh &bm, const label index, const label newSize, const label newStart) | |
coupledPolyPatch (const coupledPolyPatch &pp, const polyBoundaryMesh &bm, const label index, const labelUList &mapAddressing, const label newStart) | |
virtual | ~coupledPolyPatch () |
virtual bool | coupled () const |
virtual bool | owner () const =0 |
virtual bool | neighbour () const |
virtual transformType | transform () const |
virtual transformType & | transform () |
virtual void | transformPosition (pointField &) const =0 |
virtual void | transformPosition (point &, const label facei) const =0 |
virtual bool | separated () const |
virtual const vectorField & | separation () const |
virtual bool | parallel () const |
virtual const tensorField & | forwardT () const |
virtual const tensorField & | reverseT () const |
virtual const boolList & | collocated () const |
scalar | matchTolerance () const |
virtual void | calcGeometry (const primitivePatch &referPatch, const pointField &thisCtrs, const vectorField &thisAreas, const pointField &thisCc, const pointField &nbrCtrs, const vectorField &nbrAreas, const pointField &nbrCc)=0 |
virtual void | initOrder (PstreamBuffers &, const primitivePatch &) const =0 |
virtual bool | order (PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const =0 |
virtual void | write (Ostream &os) const |
![]() | |
TypeName ("patch") | |
declareRunTimeSelectionTable (autoPtr, polyPatch, word,(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType),(name, size, start, index, bm, patchType)) | |
declareRunTimeSelectionTable (autoPtr, polyPatch, dictionary,(const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &bm, const word &patchType),(name, dict, index, bm, patchType)) | |
polyPatch (const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType) | |
polyPatch (const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &physicalType, const wordList &inGroups) | |
polyPatch (const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &bm, const word &patchType) | |
polyPatch (const polyPatch &, const polyBoundaryMesh &) | |
polyPatch (const polyPatch &pp, const polyBoundaryMesh &bm, const label index, const label newSize, const label newStart) | |
polyPatch (const polyPatch &pp, const polyBoundaryMesh &bm, const label index, const labelUList &mapAddressing, const label newStart) | |
polyPatch (const polyPatch &p) | |
polyPatch (const polyPatch &p, const labelList &faceCells) | |
virtual autoPtr< polyPatch > | clone (const labelList &faceCells) const |
virtual autoPtr< polyPatch > | clone (const polyBoundaryMesh &bm) const |
virtual autoPtr< polyPatch > | clone (const polyBoundaryMesh &bm, const label index, const label newSize, const label newStart) const |
virtual autoPtr< polyPatch > | clone (const polyBoundaryMesh &bm, const label index, const labelUList &mapAddressing, const label newStart) const |
virtual | ~polyPatch () |
virtual void | newInternalProcFaces (label &, label &) const |
virtual const labelUList & | nbrCells () const |
virtual label | neighbPolyPatchID () const |
virtual refPtr< labelListList > | mapCollocatedFaces () const |
virtual bool | masterImplicit () const |
virtual word | neighbRegionID () const |
label | offset () const |
label | start () const |
labelRange | range () const |
const polyBoundaryMesh & | boundaryMesh () const |
template<class T > | |
const UIndirectList< T > | patchInternalList (const UList< T > &internalValues) const |
template<class T > | |
const List< T >::subList | patchSlice (const UList< T > &l) const |
template<class T > | |
const Field< T >::subField | patchSlice (const Field< T > &l) const |
const vectorField::subField | faceCentres () const |
const vectorField::subField | faceAreas () const |
tmp< vectorField > | faceCellCentres () const |
tmp< scalarField > | areaFraction () const |
const labelUList & | faceCells () const |
const labelList & | meshEdges () const |
virtual void | clearAddressing () |
label | whichFace (const label l) const |
virtual bool | changeTopology () const |
virtual bool | setTopology (polyTopoChange &) |
void | operator= (const polyPatch &) |
![]() | |
patchIdentifier (const patchIdentifier &)=default | |
patchIdentifier & | operator= (const patchIdentifier &)=default |
virtual | ~patchIdentifier ()=default |
patchIdentifier () | |
patchIdentifier (const word &name, const label index) | |
patchIdentifier (const word &name, const label index, const word &physicalType, const wordList &inGroups=wordList()) | |
patchIdentifier (const word &name, const dictionary &dict, const label index) | |
patchIdentifier (const patchIdentifier &ident, const label index) | |
const word & | name () const noexcept |
word & | name () noexcept |
label | index () const noexcept |
label & | index () noexcept |
const word & | physicalType () const noexcept |
word & | physicalType () noexcept |
const wordList & | inGroups () const noexcept |
wordList & | inGroups () noexcept |
bool | inGroup (const word &name) const |
void | write (Ostream &os) const |
![]() | |
PrimitivePatch (const FaceList &faces, const PointField &points) | |
PrimitivePatch (FaceList &&faces, const PointField &points) | |
PrimitivePatch (FaceList &faces, PointField &points, const bool reuse) | |
PrimitivePatch (const PrimitivePatch< FaceList, PointField > &pp) | |
virtual | ~PrimitivePatch () |
void | clearOut () |
void | clearGeom () |
void | clearTopology () |
void | clearPatchMeshAddr () |
void | swap (PrimitivePatch &)=delete |
const Field< point_type > & | points () const noexcept |
label | nFaces () const noexcept |
label | nPoints () const |
label | nEdges () const |
const edgeList & | edges () const |
const edgeList::subList | internalEdges () const |
const edgeList::subList | boundaryEdges () const |
label | nInternalEdges () const |
label | nBoundaryEdges () const |
bool | isInternalEdge (const label edgei) const |
const labelList & | boundaryPoints () const |
const labelListList & | faceFaces () const |
const labelListList & | edgeFaces () const |
const labelListList & | faceEdges () const |
const labelListList & | pointEdges () const |
const labelListList & | pointFaces () const |
const List< face_type > & | localFaces () const |
labelList | boundaryFaces () const |
labelList | uniqBoundaryFaces () const |
const labelList & | meshPoints () const |
const Map< label > & | meshPointMap () const |
const Field< point_type > & | localPoints () const |
const labelList & | localPointOrder () const |
label | whichPoint (const label gp) const |
edge | meshEdge (const label edgei) const |
edge | meshEdge (const edge &e) const |
label | findEdge (const edge &e) const |
labelList | meshEdges (const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const |
labelList | meshEdges (const edgeList &allEdges, const labelListList &pointEdges) const |
label | meshEdge (const label edgei, const edgeList &allEdges, const labelListList &pointEdges) const |
labelList | meshEdges (const labelUList &edgeLabels, const edgeList &allEdges, const labelListList &pointEdges) const |
const Field< point_type > & | faceCentres () const |
const Field< point_type > & | faceAreas () const |
const Field< scalar > & | magFaceAreas () const |
const Field< point_type > & | faceNormals () const |
const Field< point_type > & | pointNormals () const |
bool | hasFaceAreas () const |
bool | hasFaceCentres () const |
bool | hasFaceNormals () const |
bool | hasPointNormals () const |
bool | hasBoundaryPoints () const |
bool | hasFaceFaces () const |
bool | hasEdgeFaces () const |
bool | hasFaceEdges () const |
bool | hasPointEdges () const |
bool | hasPointFaces () const |
bool | hasMeshPointMap () const |
template<class ToPatch > | |
List< objectHit > | projectPoints (const ToPatch &targetPatch, const Field< point_type > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const |
template<class ToPatch > | |
List< objectHit > | projectFaceCentres (const ToPatch &targetPatch, const Field< point_type > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const |
const labelListList & | edgeLoops () const |
surfaceTopo | surfaceType () const |
bool | checkTopology (const bool report=false, labelHashSet *setPtr=nullptr) const |
bool | checkPointManifold (const bool report=false, labelHashSet *setPtr=nullptr) const |
virtual void | movePoints (const Field< point_type > &) |
void | operator= (const PrimitivePatch< FaceList, PointField > &rhs) |
void | operator= (PrimitivePatch< FaceList, PointField > &&rhs) |
label | whichEdge (const edge &e) const |
template<class ToPatch > | |
Foam::List< Foam::objectHit > | projectPoints (const ToPatch &targetPatch, const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const |
template<class ToPatch > | |
Foam::List< Foam::objectHit > | projectFaceCentres (const ToPatch &targetPatch, const Field< typename Foam::PrimitivePatch< FaceList, PointField >::point_type > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const |
![]() | |
ClassName ("PrimitivePatch") | |
PrimitivePatchBase ()=default | |
Static Public Member Functions | |
static scalarField | calcFaceTol (const UList< face > &faces, const pointField &points, const pointField &faceCentres) |
![]() | |
static autoPtr< polyPatch > | New (const word &patchType, const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm) |
static autoPtr< polyPatch > | New (const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &bm) |
static autoPtr< polyPatch > | New (const word &patchType, const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &bm) |
static bool | constraintType (const word &pt) |
static wordList | constraintTypes () |
![]() | |
static word | defaultName (const label n=-1) |
Static Public Attributes | |
static const Enum< transformType > | transformTypeNames |
![]() | |
static int | disallowGenericPolyPatch |
Protected Member Functions | |
void | calcTransformTensors (const vectorField &Cf, const vectorField &Cr, const vectorField &nf, const vectorField &nr, const scalarField &smallDist, const scalar absTol, const transformType=UNKNOWN) const |
virtual void | initGeometry (PstreamBuffers &)=0 |
virtual void | calcGeometry (PstreamBuffers &)=0 |
virtual void | initMovePoints (PstreamBuffers &, const pointField &)=0 |
virtual void | movePoints (PstreamBuffers &, const pointField &)=0 |
virtual void | initUpdateMesh (PstreamBuffers &)=0 |
virtual void | updateMesh (PstreamBuffers &)=0 |
![]() | |
virtual void | clearGeom () |
virtual void | movePoints (const Field< point_type > &) |
Static Protected Member Functions | |
static void | writeOBJ (Ostream &os, const point &pt) |
static void | writeOBJ (Ostream &, const pointField &, const labelList &) |
static void | writeOBJ (const fileName &, const UList< face > &, const pointField &) |
static void | writeOBJ (Ostream &os, const point &p0, const point &p1, label &vertI) |
static pointField | getAnchorPoints (const UList< face > &, const pointField &, const transformType) |
static label | getRotation (const pointField &points, const face &f, const point &anchor, const scalar tol) |
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational domain e.g. cyclic and processor-processor links.
Definition at line 50 of file coupledPolyPatch.H.
enum transformType |
Enumerator | |
---|---|
UNKNOWN | |
ROTATIONAL | |
TRANSLATIONAL | |
COINCIDENTFULLMATCH | |
NOORDERING |
Definition at line 56 of file coupledPolyPatch.H.
coupledPolyPatch | ( | const word & | name, |
const label | size, | ||
const label | start, | ||
const label | index, | ||
const polyBoundaryMesh & | bm, | ||
const word & | patchType, | ||
const transformType | transform | ||
) |
Definition at line 469 of file coupledPolyPatch.C.
coupledPolyPatch | ( | const word & | name, |
const dictionary & | dict, | ||
const label | index, | ||
const polyBoundaryMesh & | bm, | ||
const word & | patchType | ||
) |
Definition at line 486 of file coupledPolyPatch.C.
coupledPolyPatch | ( | const coupledPolyPatch & | pp, |
const polyBoundaryMesh & | bm | ||
) |
Definition at line 509 of file coupledPolyPatch.C.
coupledPolyPatch | ( | const coupledPolyPatch & | pp, |
const labelList & | faceCells | ||
) |
Definition at line 521 of file coupledPolyPatch.C.
coupledPolyPatch | ( | const coupledPolyPatch & | pp, |
const polyBoundaryMesh & | bm, | ||
const label | index, | ||
const label | newSize, | ||
const label | newStart | ||
) |
Definition at line 533 of file coupledPolyPatch.C.
coupledPolyPatch | ( | const coupledPolyPatch & | pp, |
const polyBoundaryMesh & | bm, | ||
const label | index, | ||
const labelUList & | mapAddressing, | ||
const label | newStart | ||
) |
Definition at line 548 of file coupledPolyPatch.C.
|
virtual |
Definition at line 564 of file coupledPolyPatch.C.
|
protected |
Definition at line 288 of file coupledPolyPatch.C.
References Foam::expressions::patchExpr::debug, Foam::endl(), forAll, Foam::mag(), Foam::magSqr(), Foam::max(), Foam::min(), Foam::name(), Foam::nl, Foam::Pout, Foam::rotationTensor(), Foam::sqr(), Foam::sqrt(), Foam::sum(), and Foam::transform().
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicACMIPolyPatch, oldCyclicPolyPatch, cyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicACMIPolyPatch, cyclicPolyPatch, oldCyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
Referenced by processorCyclicPolyPatch::calcGeometry().
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicACMIPolyPatch, cyclicPolyPatch, oldCyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicACMIPolyPatch, cyclicPolyPatch, oldCyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicPolyPatch, cyclicACMIPolyPatch, oldCyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
|
protectedpure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicPolyPatch, cyclicACMIPolyPatch, oldCyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
Definition at line 53 of file coupledPolyPatch.C.
References Foam::endl(), os(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
|
staticprotected |
Definition at line 60 of file coupledPolyPatch.C.
References os(), pointLabels(), points, and Foam::meshTools::writeOBJ().
|
staticprotected |
Definition at line 92 of file coupledPolyPatch.C.
References f(), forAll, Foam::nl, os(), points, UList::size(), and Foam::meshTools::writeOBJ().
Definition at line 74 of file coupledPolyPatch.C.
References Foam::nl, os(), p0, and Foam::meshTools::writeOBJ().
|
staticprotected |
Definition at line 126 of file coupledPolyPatch.C.
References f(), forAll, points, UList::size(), and Foam::transform().
|
staticprotected |
Definition at line 234 of file coupledPolyPatch.C.
References Foam::endl(), f(), forAll, Foam::magSqr(), Foam::nl, points, Foam::sqrt(), and WarningInFunction.
TypeName | ( | "coupled" | ) |
|
inlinevirtual |
Reimplemented from polyPatch.
Reimplemented in cyclicAMIPolyPatch, and processorPolyPatch.
Definition at line 244 of file coupledPolyPatch.H.
Referenced by coupledFvPatch::coupled().
|
pure virtual |
Implemented in cyclicAMIPolyPatch, cyclicPolyPatch, processorCyclicPolyPatch, processorPolyPatch, and oldCyclicPolyPatch.
Referenced by polyMeshTetDecomposition::findFaceBasePts(), coupledPolyPatch::neighbour(), and processorCyclicPolyPatch::owner().
|
inlinevirtual |
Reimplemented in cyclicPolyPatch, and processorPolyPatch.
Definition at line 253 of file coupledPolyPatch.H.
References coupledPolyPatch::owner().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 259 of file coupledPolyPatch.H.
Referenced by processorCyclicPolyPatch::transform().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 267 of file coupledPolyPatch.H.
|
pure virtual |
Implemented in cyclicPolyPatch, processorCyclicPolyPatch, processorPolyPatch, oldCyclicPolyPatch, and cyclicAMIPolyPatch.
Referenced by weightedPosition::operator()(), mapDistribute::transformPosition::operator()(), and processorCyclicPolyPatch::transformPosition().
|
pure virtual |
Implemented in cyclicAMIPolyPatch, processorCyclicPolyPatch, cyclicPolyPatch, processorPolyPatch, and oldCyclicPolyPatch.
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 279 of file coupledPolyPatch.H.
Referenced by particle< Type >::correctAfterParallelTransfer(), extendedCellToCellStencil::extendedCellToCellStencil(), extendedCellToFaceStencil::extendedCellToFaceStencil(), extendedFaceToCellStencil::extendedFaceToCellStencil(), particle< Type >::hitCyclicAMIPatch(), particle< Type >::hitCyclicPatch(), motionSmootherAlgo::scaleMesh(), and processorCyclicPolyPatch::separated().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 285 of file coupledPolyPatch.H.
Referenced by particle< Type >::correctAfterParallelTransfer(), particle< Type >::hitCyclicAMIPatch(), particle< Type >::hitCyclicPatch(), and processorCyclicPolyPatch::separation().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 291 of file coupledPolyPatch.H.
Referenced by particle< Type >::correctAfterParallelTransfer(), cyclicAMIPolyPatch::cylindricalCS(), processorPointPatchField< Type >::doTransform(), processorCyclicPointPatchField< Type >::doTransform(), extendedCellToCellStencil::extendedCellToCellStencil(), extendedCellToFaceStencil::extendedCellToFaceStencil(), extendedFaceToCellStencil::extendedFaceToCellStencil(), FaceCellWave< Type, int >::handleProcPatches(), particle< Type >::hitCyclicAMIPatch(), particle< Type >::hitCyclicPatch(), mapDistribute::transform::operator()(), cyclicFvPatch::parallel(), processorFvPatch::parallel(), cyclicPointPatch::parallel(), cyclicAMIPointPatch::parallel(), cyclicACMIPointPatch::parallel(), cyclicACMIFvPatch::parallel(), cyclicAMIFvPatch::parallel(), processorCyclicPolyPatch::parallel(), and motionSmootherAlgo::scaleMesh().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 297 of file coupledPolyPatch.H.
Referenced by particle< Type >::correctAfterParallelTransfer(), cyclicFvPatch::forwardT(), processorFvPatch::forwardT(), cyclicPointPatch::forwardT(), cyclicAMIPointPatch::forwardT(), cyclicACMIPointPatch::forwardT(), cyclicACMIFvPatch::forwardT(), cyclicAMIFvPatch::forwardT(), processorCyclicPolyPatch::forwardT(), FaceCellWave< Type, int >::handleProcPatches(), particle< Type >::hitCyclicAMIPatch(), particle< Type >::hitCyclicPatch(), mapDistribute::transform::operator()(), and motionSmootherAlgo::scaleMesh().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 303 of file coupledPolyPatch.H.
Referenced by cyclicFvPatch::reverseT(), processorFvPatch::reverseT(), cyclicPointPatch::reverseT(), cyclicAMIPointPatch::reverseT(), cyclicACMIPointPatch::reverseT(), cyclicACMIFvPatch::reverseT(), cyclicAMIFvPatch::reverseT(), and processorCyclicPolyPatch::reverseT().
|
inlinevirtual |
Reimplemented in processorCyclicPolyPatch.
Definition at line 309 of file coupledPolyPatch.H.
Referenced by processorCyclicPolyPatch::collocated().
|
inline |
Definition at line 314 of file coupledPolyPatch.H.
|
pure virtual |
Implemented in cyclicAMIPolyPatch, oldCyclicPolyPatch, cyclicPolyPatch, processorPolyPatch, and processorCyclicPolyPatch.
|
pure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicPolyPatch, processorCyclicPolyPatch, cyclicACMIPolyPatch, processorPolyPatch, and oldCyclicPolyPatch.
|
pure virtual |
Reimplemented from polyPatch.
Implemented in cyclicAMIPolyPatch, cyclicPolyPatch, processorCyclicPolyPatch, processorPolyPatch, cyclicACMIPolyPatch, and oldCyclicPolyPatch.
|
static |
Definition at line 194 of file coupledPolyPatch.C.
References Foam::cmptMag(), Foam::cmptMax(), f(), forAll, Foam::magSqr(), Foam::max(), points, UList::size(), and Foam::sqrt().
|
virtual |
Reimplemented from polyPatch.
Reimplemented in cyclicAMIPolyPatch, cyclicPolyPatch, processorCyclicPolyPatch, processorPolyPatch, cyclicACMIPolyPatch, oldCyclicPolyPatch, and cyclicPeriodicAMIPolyPatch.
Definition at line 570 of file coupledPolyPatch.C.
References os(), polyPatch::write(), and Ostream::writeEntry().
Referenced by processorPolyPatch::write(), cyclicPolyPatch::write(), and cyclicAMIPolyPatch::write().
|
static |
Definition at line 66 of file coupledPolyPatch.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.