FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

processorPolyPatch Class Reference

Neighbour processor patch. More...

#include <OpenFOAM/processorPolyPatch.H>


Detailed Description

Neighbour processor patch.

Note: morph patch face ordering comes geometric or topological. Geometric: no cyclics allowed (assumes faces coincident) Topological: needs unmodified faces on both sides to correspond. Also needs at least one per connected patch area (so all patch faces can be visited from an unmodified face)

Source files

Definition at line 56 of file processorPolyPatch.H.

Inheritance diagram for processorPolyPatch:
Collaboration diagram for processorPolyPatch:

List of all members.

Public Member Functions

 TypeName ("processor")
 Runtime type information.
 processorPolyPatch (const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const int myProcNo, const int neighbProcNo)
 Construct from components.
 processorPolyPatch (const word &name, const dictionary &dict, const label index, const polyBoundaryMesh &)
 Construct from dictionary.
 processorPolyPatch (const processorPolyPatch &, const polyBoundaryMesh &)
 Construct as copy, resetting the boundary mesh.
 processorPolyPatch (const processorPolyPatch &pp, const polyBoundaryMesh &bm, const label index, const label newSize, const label newStart)
 Construct as given the original patch and resetting the.
virtual autoPtr< polyPatch >  clone (const polyBoundaryMesh &bm) const
 Construct and return a clone, resetting the boundary mesh.
virtual autoPtr< polyPatch >  clone (const polyBoundaryMesh &bm, const label index, const label newSize, const label newStart) const
 Construct and return a clone, resetting the face list.
virtual  ~processorPolyPatch ()
int  myProcNo () const
 Return processor number.
int  neighbProcNo () const
 Return neigbour processor number.
bool  owner () const
 Does the processor own the patch ?
bool  neighbour () const
 Is the processor the patch neighbour ?
const vectorField &  neighbFaceCentres () const
 Return processor-neighbbour patch face centres.
const vectorField &  neighbFaceAreas () const
 Return processor-neighbbour patch face areas.
const vectorField &  neighbFaceCellCentres () const
 Return processor-neighbbour patch neighbour cell centres.
const labelList &  neighbPoints () const
 Return neighbour point labels. This is for my local point (-1 or)
const labelList &  neighbEdges () const
 Return neighbour edge labels. This is for my local edge (-1 or) the.
virtual void  initOrder (const primitivePatch &) const
 Initialize ordering for primitivePatch. Does not.
virtual bool  order (const primitivePatch &, labelList &faceMap, labelList &rotation) const
 Return new ordering for primitivePatch.
virtual void  write (Ostream &) const
 Write the polyPatch data as a dictionary.

Protected Member Functions

void  initGeometry ()
 Initialise the calculation of the patch geometry.
void  calcGeometry ()
 Calculate the patch geometry.
void  initMovePoints (const pointField &)
 Initialise the patches for moving points.
void  movePoints (const pointField &)
 Correct patches after moving points.
virtual void  initUpdateMesh ()
 Initialise the update of the patch topology.
virtual void  updateMesh ()
 Update of the patch topology.

Constructor & Destructor Documentation

processorPolyPatch ( const word &   name,
const label   size,
const label   start,
const label   index,
const polyBoundaryMesh &   bm,
const int   myProcNo,
const int   neighbProcNo  
)

Construct from components.

Definition at line 49 of file processorPolyPatch.C.

Referenced by processorPolyPatch::clone().

processorPolyPatch ( const word &   name,
const dictionary &   dict,
const label   index,
const polyBoundaryMesh &   bm  
)

Construct from dictionary.

Definition at line 71 of file processorPolyPatch.C.

processorPolyPatch ( const processorPolyPatch &   pp,
const polyBoundaryMesh &   bm  
)

Construct as copy, resetting the boundary mesh.

Definition at line 90 of file processorPolyPatch.C.

processorPolyPatch ( const processorPolyPatch &   pp,
const polyBoundaryMesh &   bm,
const label   index,
const label   newSize,
const label   newStart  
)

Construct as given the original patch and resetting the.

face list and boundary mesh information

Definition at line 107 of file processorPolyPatch.C.

~processorPolyPatch (  ) [virtual]

Definition at line 128 of file processorPolyPatch.C.

References Foam::deleteDemandDrivenData().


Member Function Documentation

void initGeometry (  ) [protected, virtual]

Initialise the calculation of the patch geometry.

Implements coupledPolyPatch.

Definition at line 137 of file processorPolyPatch.C.

References PstreamBase::blocking, and Pstream::parRun().

Referenced by processorPolyPatch::initMovePoints().

void calcGeometry (  ) [protected, virtual]
void initMovePoints ( const pointField &   p  ) [protected, virtual]

Initialise the patches for moving points.

Implements coupledPolyPatch.

Definition at line 233 of file processorPolyPatch.C.

References processorPolyPatch::initGeometry(), and polyPatch::movePoints().

void movePoints ( const pointField &    ) [protected, virtual]

Correct patches after moving points.

Implements coupledPolyPatch.

Definition at line 240 of file processorPolyPatch.C.

References processorPolyPatch::calcGeometry().

void initUpdateMesh (  ) [protected, virtual]

Initialise the update of the patch topology.

Implements coupledPolyPatch.

Definition at line 246 of file processorPolyPatch.C.

References PstreamBase::blocking, Foam::deleteDemandDrivenData(), f(), Foam::findIndex(), polyPatch::initUpdateMesh(), nPoints, and Pstream::parRun().

void updateMesh (  ) [protected, virtual]
TypeName ( "processor"    )

Runtime type information.

virtual autoPtr<polyPatch> clone ( const polyBoundaryMesh &   bm  ) const [inline, virtual]

Construct and return a clone, resetting the boundary mesh.

Reimplemented from polyPatch.

Definition at line 161 of file processorPolyPatch.H.

References processorPolyPatch::processorPolyPatch().

virtual autoPtr<polyPatch> clone ( const polyBoundaryMesh &   bm,
const label   index,
const label   newSize,
const label   newStart  
) const [inline, virtual]

Construct and return a clone, resetting the face list.

and boundary mesh

Reimplemented from polyPatch.

Definition at line 169 of file processorPolyPatch.H.

References processorPolyPatch::processorPolyPatch().

int myProcNo (  ) const [inline]

Return processor number.

Definition at line 198 of file processorPolyPatch.H.

Referenced by processorPointPatch::myProcNo(), and processorFvPatch::myProcNo().

bool owner (  ) const [inline]

Does the processor own the patch ?

Definition at line 210 of file processorPolyPatch.H.

Referenced by syncTools::getMasterEdges(), syncTools::getMasterFaces(), syncTools::getMasterPoints(), and processorPolyPatch::neighbour().

bool neighbour (  ) const [inline]

Is the processor the patch neighbour ?

Definition at line 216 of file processorPolyPatch.H.

References processorPolyPatch::owner().

const vectorField& neighbFaceCentres (  ) const [inline]

Return processor-neighbbour patch face centres.

Definition at line 222 of file processorPolyPatch.H.

Referenced by processorFvPatch::delta(), and processorFvPatch::makeWeights().

const vectorField& neighbFaceAreas (  ) const [inline]

Return processor-neighbbour patch face areas.

Definition at line 228 of file processorPolyPatch.H.

Referenced by processorFvPatch::makeWeights().

const vectorField& neighbFaceCellCentres (  ) const [inline]

Return processor-neighbbour patch neighbour cell centres.

Definition at line 234 of file processorPolyPatch.H.

Referenced by processorFvPatch::delta(), and processorFvPatch::makeWeights().

const Foam::labelList & neighbPoints (  ) const

Return neighbour point labels. This is for my local point (-1 or)

the corresponding local point on the other side. It is -1 if there are multiple corresponding points on this or the other side (can happen for cyclics being converted into proc patches)

Definition at line 404 of file processorPolyPatch.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, and Foam::name().

Referenced by syncTools::syncEdgeMap(), syncTools::syncPointList(), and syncTools::syncPointMap().

const Foam::labelList & neighbEdges (  ) const

Return neighbour edge labels. This is for my local edge (-1 or) the.

corresponding local edge on the other side. See above for -1 cause.

Definition at line 416 of file processorPolyPatch.C.

References Foam::abort(), Foam::FatalError, FatalErrorIn, and Foam::name().

Referenced by syncTools::syncEdgeList().

void initOrder ( const primitivePatch &   pp  ) const [virtual]
bool order ( const primitivePatch &   pp,
labelList &   faceMap,
labelList &   rotation  
) const [virtual]

Return new ordering for primitivePatch.

Ordering is -faceMap: for every face index of the new face -rotation:for every new face the clockwise shift of the original face. Return false if nothing changes (faceMap is identity, rotation is 0), true otherwise.

Implements coupledPolyPatch.

Definition at line 484 of file processorPolyPatch.C.

References Foam::abort(), PstreamBase::blocking, Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, Foam::matchPoints(), mesh, Pstream::myProcNo(), OSstream::name(), fileName::name(), OFstream::name(), Foam::name(), Pstream::parRun(), PrimitivePatch< Face, FaceList, PointField, PointType >::points(), Foam::Pout, SeriousErrorIn, List< T >::setSize(), List< T >::size(), Foam::transformList(), and Foam::meshTools::writeOBJ().

void write ( Ostream &   os  ) const [virtual]

Write the polyPatch data as a dictionary.

Reimplemented from polyPatch.

Definition at line 756 of file processorPolyPatch.C.

References token::END_STATEMENT, Foam::nl, polyPatch::write(), and Ostream::writeKeyword().


The documentation for this class was generated from the following files: