processorPointPatch.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "processorPointPatch.H"
29 #include "pointBoundaryMesh.H"
31 #include "pointMesh.H"
32 #include "faceList.H"
33 #include "primitiveFacePatch.H"
34 #include "emptyPolyPatch.H"
35 
36 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
37 
38 namespace Foam
39 {
40  defineTypeNameAndDebug(processorPointPatch, 0);
42  (
43  facePointPatch,
44  processorPointPatch,
45  polyPatch
46  );
47 }
48 
49 
50 // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
51 
52 void Foam::processorPointPatch::initGeometry(PstreamBuffers& pBufs)
53 {
54  // Algorithm:
55  // Depending on whether the patch is a master or a slave, get the primitive
56  // patch points and filter away the points from the global patch.
57 
58  // Create the reversed patch and pick up its points
59  // so that the order is correct
60  const polyPatch& pp = patch();
61 
62  faceList masterFaces(pp.size());
63 
64  forAll(pp, facei)
65  {
66  masterFaces[facei] = pp[facei].reverseFace();
67  }
68 
69  reverseMeshPoints_ = primitiveFacePatch
70  (
71  masterFaces,
72  pp.points()
73  ).meshPoints();
74 }
75 
76 
77 void Foam::processorPointPatch::calcGeometry(PstreamBuffers& pBufs)
78 {}
79 
80 
81 void Foam::processorPointPatch::initMovePoints
82 (
83  PstreamBuffers&,
84  const pointField&
85 )
86 {}
87 
88 
89 void Foam::processorPointPatch::movePoints(PstreamBuffers&, const pointField&)
90 {}
91 
92 
93 void Foam::processorPointPatch::initUpdateMesh(PstreamBuffers& pBufs)
94 {
96  processorPointPatch::initGeometry(pBufs);
97 }
98 
99 
100 void Foam::processorPointPatch::updateMesh(PstreamBuffers& pBufs)
101 {
103  processorPointPatch::calcGeometry(pBufs);
104 }
105 
106 
107 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
108 
109 Foam::processorPointPatch::processorPointPatch
110 (
111  const polyPatch& patch,
112  const pointBoundaryMesh& bm
113 )
114 :
116  procPolyPatch_(refCast<const processorPolyPatch>(patch))
117 {}
118 
119 
120 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
121 
123 {}
124 
125 
126 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
127 
129 {
130  return reverseMeshPoints_;
131 }
132 
133 
134 // ************************************************************************* //
processorPointPatch.H
Foam::addToRunTimeSelectionTable
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Foam::pointField
vectorField pointField
pointField is a vectorField.
Definition: pointFieldFwd.H:44
Foam::facePointPatch::initUpdateMesh
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
Definition: facePointPatch.C:69
Foam::primitiveFacePatch
PrimitivePatch< List< face >, const pointField & > primitiveFacePatch
A PrimitivePatch with List storage for the faces, const reference for the point field.
Definition: primitiveFacePatch.H:51
primitiveFacePatch.H
Foam::facePointPatch::patch
virtual const polyPatch & patch() const
Return the polyPatch.
Definition: facePointPatch.H:148
Foam::processorPointPatch::reverseMeshPoints
const labelList & reverseMeshPoints() const
Return mesh points in the correct order for the receiving side.
Definition: processorPointPatch.C:128
faceList.H
forAll
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:296
pointBoundaryMesh.H
Foam::polyPatch
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:68
Foam::facePointPatch::meshPoints
virtual const labelList & meshPoints() const
Return mesh points.
Definition: facePointPatch.H:178
Foam::coupledFacePointPatch
coupled patch for post-processing. Used as the base class for processor and cyclic pointPatches
Definition: coupledFacePointPatch.H:55
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::facePointPatch::updateMesh
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
Definition: facePointPatch.C:75
emptyPolyPatch.H
Foam::pointBoundaryMesh
Foam::pointBoundaryMesh.
Definition: pointBoundaryMesh.H:56
Foam::processorPointPatch::~processorPointPatch
virtual ~processorPointPatch()
Destructor.
Definition: processorPointPatch.C:122
Foam::foamVersion::patch
const std::string patch
OpenFOAM patch number as a std::string.
Foam::faceList
List< face > faceList
A List of faces.
Definition: faceListFwd.H:47
Foam::List< label >
Foam::defineTypeNameAndDebug
defineTypeNameAndDebug(combustionModel, 0)
pointMesh.H