cyclicACMIPointPatch.H
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) 2013-2016 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::cyclicACMIPointPatch
28
29Description
30 Cyclic AMI point patch - place holder only
31
32SourceFiles
33 cyclicACMIPointPatch.C
34
35\*---------------------------------------------------------------------------*/
36
37#ifndef cyclicACMIPointPatch_H
38#define cyclicACMIPointPatch_H
39
41#include "cyclicACMIPolyPatch.H"
42#include "pointBoundaryMesh.H"
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
48
49/*---------------------------------------------------------------------------*\
50 Class cyclicACMIPointPatch Declaration
51\*---------------------------------------------------------------------------*/
54:
56{
57 // Private data
58
59 //- Local reference cast into the cyclic AMI patch
60 const cyclicACMIPolyPatch& cyclicACMIPolyPatch_;
61
62
63 // Private Member Functions
64
65 //- No copy construct
67
68 //- No copy assignment
69 void operator=(const cyclicACMIPointPatch&) = delete;
70
71
72protected:
73
74 // Protected Member Functions
75
76 //- Initialise the calculation of the patch geometry
77 virtual void initGeometry(PstreamBuffers&);
78
79 //- Calculate the patch geometry
80 virtual void calcGeometry(PstreamBuffers&);
81
82 //- Initialise the patches for moving points
83 virtual void initMovePoints(PstreamBuffers&, const pointField&);
84
85 //- Correct patches after moving points
86 virtual void movePoints(PstreamBuffers&, const pointField&);
87
88 //- Initialise the update of the patch topology
89 virtual void initUpdateMesh(PstreamBuffers&);
90
91 //- Update of the patch topology
92 virtual void updateMesh(PstreamBuffers&);
93
94
95public:
96
97 //- Runtime type information
98 TypeName(cyclicACMIPolyPatch::typeName_());
99
100
101 // Constructors
102
103 //- Construct from components
105 (
106 const polyPatch& patch,
107 const pointBoundaryMesh& bm
108 );
109
110
111 //- Destructor
112 virtual ~cyclicACMIPointPatch();
113
114
115 // Member Functions
116
117 //- Is patch 'coupled'. Note that on AMI the geometry is not
118 // coupled but the fields are!
119 virtual bool coupled() const
120 {
121 return false;
122 }
123
124 //- Return the constraint type this pointPatch implements.
125 virtual const word& constraintType() const
126 {
127 return type();
128 }
129
130 //- Return the underlying cyclicAMIPolyPatch
132 {
133 return cyclicACMIPolyPatch_;
134 }
135
136 //- Return neighbour point patch
137 const cyclicACMIPointPatch& neighbPatch() const
138 {
139 label patchi = cyclicACMIPolyPatch_.neighbPatchID();
140 const pointPatch& pp = this->boundaryMesh()[patchi];
141 return refCast<const cyclicACMIPointPatch>(pp);
142 }
143
144 //- Are the cyclic planes parallel
145 bool parallel() const
146 {
147 return cyclicACMIPolyPatch_.parallel();
148 }
149
150 //- Return face transformation tensor
151 const tensorField& forwardT() const
152 {
153 return cyclicACMIPolyPatch_.forwardT();
154 }
155
156 //- Return neighbour-cell transformation tensor
157 const tensorField& reverseT() const
158 {
159 return cyclicACMIPolyPatch_.reverseT();
160 }
161};
162
163
164// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165
166} // End namespace Foam
167
168// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
169
170#endif
171
172// ************************************************************************* //
Buffers for inter-processor communications streams (UOPstream, UIPstream).
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
Definition: boundaryMesh.H:63
coupled patch for post-processing. Used as the base class for processor and cyclic pointPatches
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual bool parallel() const
Are the cyclic planes parallel.
virtual const tensorField & forwardT() const
Return face transformation tensor.
Cyclic AMI point patch - place holder only.
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
virtual ~cyclicACMIPointPatch()
Destructor.
const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual void initMovePoints(PstreamBuffers &, const pointField &)
Initialise the patches for moving points.
virtual bool coupled() const
Is patch 'coupled'. Note that on AMI the geometry is not.
const tensorField & forwardT() const
Return face transformation tensor.
bool parallel() const
Are the cyclic planes parallel.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
virtual const word & constraintType() const
Return the constraint type this pointPatch implements.
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
TypeName(cyclicACMIPolyPatch::typeName_())
Runtime type information.
const cyclicACMIPointPatch & neighbPatch() const
Return neighbour point patch.
const cyclicACMIPolyPatch & cyclicACMIPatch() const
Return the underlying cyclicAMIPolyPatch.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
Cyclic patch for Arbitrarily Coupled Mesh Interface (ACMI).
virtual label neighbPatchID() const
Neighbour patch ID.
virtual const polyPatch & patch() const
Return the polyPatch.
Foam::pointBoundaryMesh.
Basic pointPatch represents a set of points from the mesh.
Definition: pointPatch.H:64
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:75
A class for handling words, derived from Foam::string.
Definition: word.H:68
Namespace for OpenFOAM.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:598
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73