cyclicAMIPolyPatch.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) 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 Class
27  Foam::cyclicAMIPolyPatch
28 
29 Description
30  Cyclic patch for Arbitrary Mesh Interface (AMI)
31 
32 SourceFiles
33  cyclicAMIPolyPatch.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef cyclicAMIPolyPatch_H
38 #define cyclicAMIPolyPatch_H
39 
40 #include "coupledPolyPatch.H"
42 #include "polyBoundaryMesh.H"
43 #include "coupleGroupIdentifier.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 
50 /*---------------------------------------------------------------------------*\
51  Class cyclicAMIPolyPatch Declaration
52 \*---------------------------------------------------------------------------*/
53 
55 :
56  public coupledPolyPatch
57 {
58  // Private Member Functions
59 
60  //- Return normal of face at max distance from rotation axis
61  vector findFaceNormalMaxRadius(const pointField& faceCentres) const;
62 
63  void calcTransforms
64  (
65  const primitivePatch& half0,
66  const pointField& half0Ctrs,
67  const vectorField& half0Areas,
68  const pointField& half1Ctrs,
69  const vectorField& half1Areas
70  );
71 
72 
73 protected:
74 
75  // Protected data
76 
77  //- Name of other half
78  mutable word nbrPatchName_;
79 
80  //- Optional patchGroup to find neighbPatch
82 
83  //- Index of other half
84  mutable label nbrPatchID_;
85 
86 
87  // Transformations
88 
89  // For rotation
90 
91  //- Axis of rotation for rotational cyclics
93 
94  //- Point on axis of rotation for rotational cyclics
96 
97  //- Flag to show whether the rotation angle is defined
99 
100  //- Rotation angle
101  scalar rotationAngle_;
102 
103 
104  // For translation
105 
106  //- Translation vector
108 
109 
110  //- AMI interpolation class
112 
113  //- AMI method
115 
116  //- Flag to indicate that slave patch should be reversed for AMI
117  const bool AMIReverse_;
118 
119  //- Flag to indicate that patches should match/overlap
120  bool AMIRequireMatch_;
121 
122  //- Low weight correction threshold for AMI
123  const scalar AMILowWeightCorrection_;
124 
125  //- Projection surface
127 
128  //- Dictionary used during projection surface construction
129  const dictionary surfDict_;
130 
131 
132  // Protected Member Functions
133 
134  //- Reset the AMI interpolator
135  virtual void resetAMI
136  (
139  ) const;
140 
141  //- Recalculate the transformation tensors
142  virtual void calcTransforms();
143 
144  //- Initialise the calculation of the patch geometry
145  virtual void initGeometry(PstreamBuffers&);
146 
147  //- Calculate the patch geometry
148  virtual void calcGeometry(PstreamBuffers&);
149 
150  //- Initialise the patches for moving points
151  virtual void initMovePoints(PstreamBuffers& pBufs, const pointField&);
152 
153  //- Correct patches after moving points
154  virtual void movePoints(PstreamBuffers& pBufs, const pointField&);
155 
156  //- Initialise the update of the patch topology
157  virtual void initUpdateMesh(PstreamBuffers&);
158 
159  //- Update of the patch topology
160  virtual void updateMesh(PstreamBuffers&);
161 
162  //- Clear geometry
163  virtual void clearGeom();
164 
165 
166 public:
167 
168  //- Runtime type information
169  TypeName("cyclicAMI");
170 
171 
172  // Constructors
173 
174  //- Construct from (base coupled patch) components
176  (
177  const word& name,
178  const label size,
179  const label start,
180  const label index,
181  const polyBoundaryMesh& bm,
182  const word& patchType,
184  );
185 
186  //- Construct from dictionary
188  (
189  const word& name,
190  const dictionary& dict,
191  const label index,
192  const polyBoundaryMesh& bm,
193  const word& patchType
194  );
195 
196  //- Construct as copy, resetting the boundary mesh
198 
199  //- Construct given the original patch and resetting the
200  // face list and boundary mesh information
202  (
203  const cyclicAMIPolyPatch& pp,
204  const polyBoundaryMesh& bm,
205  const label index,
206  const label newSize,
207  const label newStart,
208  const word& nbrPatchName
209  );
210 
211  //- Construct given the original patch and a map
213  (
214  const cyclicAMIPolyPatch& pp,
215  const polyBoundaryMesh& bm,
216  const label index,
217  const labelUList& mapAddressing,
218  const label newStart
219  );
220 
221 
222  //- Construct and return a clone, resetting the boundary mesh
223  virtual autoPtr<polyPatch> clone(const polyBoundaryMesh& bm) const
224  {
226  }
227 
228  //- Construct and return a clone, resetting the face list
229  // and boundary mesh
231  (
232  const polyBoundaryMesh& bm,
233  const label index,
234  const label newSize,
235  const label newStart
236  ) const
237  {
238  return autoPtr<polyPatch>
239  (
241  (
242  *this,
243  bm,
244  index,
245  newSize,
246  newStart,
248  )
249  );
250  }
251 
252  //- Construct and return a clone, resetting the face list
253  // and boundary mesh
255  (
256  const polyBoundaryMesh& bm,
257  const label index,
258  const labelUList& mapAddressing,
259  const label newStart
260  ) const
261  {
262  return autoPtr<polyPatch>
263  (
265  (
266  *this,
267  bm,
268  index,
269  mapAddressing,
270  newStart
271  )
272  );
273  }
274 
275 
276  //- Destructor
277  virtual ~cyclicAMIPolyPatch();
278 
279 
280  // Member Functions
281 
282  // Access
283 
284  //- Is patch 'coupled'. Note that on AMI the geometry is not
285  // coupled but the fields are!
286  virtual bool coupled() const
287  {
288  return false;
289  }
290 
291  //- Neighbour patch name
292  inline const word& neighbPatchName() const;
293 
294  //- Neighbour patch ID
295  virtual label neighbPatchID() const;
296 
297  //- Does this side own the patch?
298  virtual bool owner() const;
299 
300  //- Return a reference to the neighbour patch
301  virtual const cyclicAMIPolyPatch& neighbPatch() const;
302 
303  //- Return a reference to the projection surface
304  const autoPtr<searchableSurface>& surfPtr() const;
305 
306  //- Return a reference to the AMI interpolator
307  const AMIPatchToPatchInterpolation& AMI() const;
308 
309  //- Return true if applying the low weight correction
310  bool applyLowWeightCorrection() const;
311 
312 
313  // Transformations
314 
315  //- Axis of rotation for rotational cyclic AMI
316  inline const vector& rotationAxis() const;
317 
318  //- Point on axis of rotation for rotational cyclic AMI
319  inline const point& rotationCentre() const;
320 
321  //- Translation vector for translational cyclic AMI
322  inline const vector& separationVector() const;
323 
324  //- Transform patch-based positions from nbr side to this side
325  virtual void transformPosition(pointField&) const;
326 
327  //- Transform a patch-based position from nbr side to this side
328  virtual void transformPosition
329  (
330  point& l,
331  const label facei
332  ) const;
333 
334  //- Transform a patch-based position from this side to nbr side
335  virtual void reverseTransformPosition
336  (
337  point& l,
338  const label facei
339  ) const;
340 
341  //- Transform a patch-based direction from this side to nbr side
342  virtual void reverseTransformDirection
343  (
344  vector& d,
345  const label facei
346  ) const;
347 
348 
349  // Interpolations
350 
351  //- Interpolate field
352  template<class Type>
354  (
355  const Field<Type>& fld,
356  const UList<Type>& defaultValues = UList<Type>()
357  ) const;
358 
359  //- Interpolate tmp field
360  template<class Type>
362  (
363  const tmp<Field<Type>>& tFld,
364  const UList<Type>& defaultValues = UList<Type>()
365  ) const;
366 
367  //- Low-level interpolate List
368  template<class Type, class CombineOp>
369  void interpolate
370  (
371  const UList<Type>& fld,
372  const CombineOp& cop,
373  List<Type>& result,
374  const UList<Type>& defaultValues = UList<Type>()
375  ) const;
376 
377 
378  //- Calculate the patch geometry
379  virtual void calcGeometry
380  (
381  const primitivePatch& referPatch,
382  const pointField& thisCtrs,
383  const vectorField& thisAreas,
384  const pointField& thisCc,
385  const pointField& nbrCtrs,
386  const vectorField& nbrAreas,
387  const pointField& nbrCc
388  );
389 
390  //- Initialize ordering for primitivePatch. Does not
391  // refer to *this (except for name() and type() etc.)
392  virtual void initOrder
393  (
395  const primitivePatch&
396  ) const;
397 
398  //- Return new ordering for primitivePatch.
399  // Ordering is -faceMap: for every face
400  // index of the new face -rotation:for every new face the clockwise
401  // shift of the original face. Return false if nothing changes
402  // (faceMap is identity, rotation is 0), true otherwise.
403  virtual bool order
404  (
406  const primitivePatch&,
408  labelList& rotation
409  ) const;
410 
411  //- Return face index on neighbour patch which shares point p
412  // following trajectory vector n
414  (
415  const label facei,
416  const vector& n,
417  point& p
418  ) const;
419 
420  //- Write the polyPatch data as a dictionary
421  virtual void write(Ostream&) const;
422 };
423 
424 
425 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
426 
427 } // End namespace Foam
428 
429 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
430 
431 #include "cyclicAMIPolyPatchI.H"
432 
433 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
434 
435 #ifdef NoRepository
437 #endif
438 
439 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
440 
441 #endif
442 
443 // ************************************************************************* //
Foam::AMIInterpolation::interpolationMethod
interpolationMethod
Enumeration specifying interpolation method.
Definition: AMIInterpolation.H:90
Foam::coupleGroupIdentifier
Encapsulates using patchGroups to specify coupled patch.
Definition: coupleGroupIdentifier.H:64
Foam::labelList
List< label > labelList
A List of labels.
Definition: List.H:74
Foam::cyclicAMIPolyPatch::order
virtual bool order(PstreamBuffers &, const primitivePatch &, labelList &faceMap, labelList &rotation) const
Return new ordering for primitivePatch.
Definition: cyclicAMIPolyPatch.C:980
Foam::pointField
vectorField pointField
pointField is a vectorField.
Definition: pointFieldFwd.H:44
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::faceMap
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
Definition: blockMeshMergeFast.C:94
Foam::cyclicAMIPolyPatch::owner
virtual bool owner() const
Does this side own the patch?
Definition: cyclicAMIPolyPatch.C:751
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
Foam::polyBoundaryMesh
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
Definition: polyBoundaryMesh.H:62
Foam::cyclicAMIPolyPatch::nbrPatchName_
word nbrPatchName_
Name of other half.
Definition: cyclicAMIPolyPatch.H:77
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:59
Foam::cyclicAMIPolyPatch::initOrder
virtual void initOrder(PstreamBuffers &, const primitivePatch &) const
Initialize ordering for primitivePatch. Does not.
Definition: cyclicAMIPolyPatch.C:972
Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
cyclicAMIPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType, const transformType transform=UNKNOWN)
Construct from (base coupled patch) components.
Definition: cyclicAMIPolyPatch.C:480
Foam::cyclicAMIPolyPatch::rotationCentre_
point rotationCentre_
Point on axis of rotation for rotational cyclics.
Definition: cyclicAMIPolyPatch.H:94
Foam::AMIInterpolation::imFaceAreaWeight
Definition: AMIInterpolation.H:94
Foam::cyclicAMIPolyPatch::initGeometry
virtual void initGeometry(PstreamBuffers &)
Initialise the calculation of the patch geometry.
Definition: cyclicAMIPolyPatch.C:403
coupleGroupIdentifier.H
Foam::PstreamBuffers
Buffers for inter-processor communications streams (UOPstream, UIPstream).
Definition: PstreamBuffers.H:88
Foam::cyclicAMIPolyPatch::reverseTransformPosition
virtual void reverseTransformPosition(point &l, const label facei) const
Transform a patch-based position from this side to nbr side.
Definition: cyclicAMIPolyPatch.C:901
Foam::cyclicAMIPolyPatch::surfDict_
const dictionary surfDict_
Dictionary used during projection surface construction.
Definition: cyclicAMIPolyPatch.H:128
Foam::cyclicAMIPolyPatch::surfPtr
const autoPtr< searchableSurface > & surfPtr() const
Return a reference to the projection surface.
Definition: cyclicAMIPolyPatch.C:765
Foam::cyclicAMIPolyPatch::coupleGroup_
const coupleGroupIdentifier coupleGroup_
Optional patchGroup to find neighbPatch.
Definition: cyclicAMIPolyPatch.H:80
cyclicAMIPolyPatchTemplates.C
Foam::coupledPolyPatch
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
Definition: coupledPolyPatch.H:53
Foam::cyclicAMIPolyPatch::nbrPatchID_
label nbrPatchID_
Index of other half.
Definition: cyclicAMIPolyPatch.H:83
Foam::AMIMethod
Base class for Arbitrary Mesh Interface (AMI) methods.
Definition: AMIMethod.H:60
Foam::cyclicAMIPolyPatch::separationVector
const vector & separationVector() const
Translation vector for translational cyclic AMI.
Definition: cyclicAMIPolyPatchI.H:55
Foam::cyclicAMIPolyPatch::initMovePoints
virtual void initMovePoints(PstreamBuffers &pBufs, const pointField &)
Initialise the patches for moving points.
Definition: cyclicAMIPolyPatch.C:425
Foam::cyclicAMIPolyPatch::coupled
virtual bool coupled() const
Is patch 'coupled'. Note that on AMI the geometry is not.
Definition: cyclicAMIPolyPatch.H:285
Foam::vectorField
Field< vector > vectorField
Specialisation of Field<T> for vector.
Definition: primitiveFieldsFwd.H:54
Foam::cyclicAMIPolyPatch::updateMesh
virtual void updateMesh(PstreamBuffers &)
Update of the patch topology.
Definition: cyclicAMIPolyPatch.C:464
n
label n
Definition: TABSMDCalcMethod2.H:31
Foam::cyclicAMIPolyPatch::transformPosition
virtual void transformPosition(pointField &) const
Transform patch-based positions from nbr side to this side.
Definition: cyclicAMIPolyPatch.C:827
coupledPolyPatch.H
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:62
Foam::cyclicAMIPolyPatch::separationVector_
vector separationVector_
Translation vector.
Definition: cyclicAMIPolyPatch.H:106
Foam::cyclicAMIPolyPatch::calcGeometry
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
Definition: cyclicAMIPolyPatch.C:418
Foam::Field< vector >
Foam::cyclicAMIPolyPatch::write
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
Definition: cyclicAMIPolyPatch.C:1044
Foam::cyclicAMIPolyPatch::AMIPtr_
autoPtr< AMIPatchToPatchInterpolation > AMIPtr_
AMI interpolation class.
Definition: cyclicAMIPolyPatch.H:110
Foam::cyclicAMIPolyPatch::pointFace
label pointFace(const label facei, const vector &n, point &p) const
Return face index on neighbour patch which shares point p.
Definition: cyclicAMIPolyPatch.C:998
Foam::cyclicAMIPolyPatch::movePoints
virtual void movePoints(PstreamBuffers &pBufs, const pointField &)
Correct patches after moving points.
Definition: cyclicAMIPolyPatch.C:444
Foam::coupledPolyPatch::UNKNOWN
Definition: coupledPolyPatch.H:61
Foam::cyclicAMIPolyPatch::TypeName
TypeName("cyclicAMI")
Runtime type information.
fld
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
Definition: gmvOutputLagrangian.H:23
Foam::cyclicAMIPolyPatch::interpolate
tmp< Field< Type > > interpolate(const Field< Type > &fld, const UList< Type > &defaultValues=UList< Type >()) const
Interpolate field.
Foam::cyclicAMIPolyPatch::calcTransforms
virtual void calcTransforms()
Recalculate the transformation tensors.
Definition: cyclicAMIPolyPatch.C:367
Foam::cyclicAMIPolyPatch::rotationAxis_
vector rotationAxis_
Axis of rotation for rotational cyclics.
Definition: cyclicAMIPolyPatch.H:91
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::cyclicAMIPolyPatch::rotationAngle_
scalar rotationAngle_
Rotation angle.
Definition: cyclicAMIPolyPatch.H:100
AMIPatchToPatchInterpolation.H
Foam::cyclicAMIPolyPatch::neighbPatchID
virtual label neighbPatchID() const
Neighbour patch ID.
Definition: cyclicAMIPolyPatch.C:715
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
Foam::cyclicAMIPolyPatch::neighbPatch
virtual const cyclicAMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
Definition: cyclicAMIPolyPatch.C:757
Foam::AMIPatchToPatchInterpolation
AMIInterpolation< PrimitivePatch< face, SubList, const pointField & >, PrimitivePatch< face, SubList, const pointField & > > AMIPatchToPatchInterpolation
Definition: AMIPatchToPatchInterpolation.H:45
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::cyclicAMIPolyPatch::rotationAngleDefined_
bool rotationAngleDefined_
Flag to show whether the rotation angle is defined.
Definition: cyclicAMIPolyPatch.H:97
Foam::vector
Vector< scalar > vector
A scalar version of the templated Vector.
Definition: vector.H:51
Foam::polyPatch::start
label start() const
Return start label of this patch in the polyMesh face list.
Definition: polyPatch.H:311
Foam::coupledPolyPatch::transform
virtual transformType transform() const
Type of transform.
Definition: coupledPolyPatch.H:258
cyclicAMIPolyPatchI.H
Foam::cyclicAMIPolyPatch::rotationAxis
const vector & rotationAxis() const
Axis of rotation for rotational cyclic AMI.
Definition: cyclicAMIPolyPatchI.H:43
Foam::cyclicAMIPolyPatch::resetAMI
virtual void resetAMI(const AMIPatchToPatchInterpolation::interpolationMethod &AMIMethod=AMIPatchToPatchInterpolation::imFaceAreaWeight) const
Reset the AMI interpolator.
Definition: cyclicAMIPolyPatch.C:294
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::cyclicAMIPolyPatch::AMI
const AMIPatchToPatchInterpolation & AMI() const
Return a reference to the AMI interpolator.
Definition: cyclicAMIPolyPatch.C:796
Foam::cyclicAMIPolyPatch::clone
virtual autoPtr< polyPatch > clone(const polyBoundaryMesh &bm) const
Construct and return a clone, resetting the boundary mesh.
Definition: cyclicAMIPolyPatch.H:222
Foam::polyPatch::faceCentres
const vectorField::subField faceCentres() const
Return face centres.
Definition: polyPatch.C:311
Foam::cyclicAMIPolyPatch::applyLowWeightCorrection
bool applyLowWeightCorrection() const
Return true if applying the low weight correction.
Definition: cyclicAMIPolyPatch.C:814
Foam::cyclicAMIPolyPatch::initUpdateMesh
virtual void initUpdateMesh(PstreamBuffers &)
Initialise the update of the patch topology.
Definition: cyclicAMIPolyPatch.C:455
Foam::cyclicAMIPolyPatch::clearGeom
virtual void clearGeom()
Clear geometry.
Definition: cyclicAMIPolyPatch.C:470
Foam::Vector< scalar >
Foam::List< Type >
Foam::cyclicAMIPolyPatch::reverseTransformDirection
virtual void reverseTransformDirection(vector &d, const label facei) const
Transform a patch-based direction from this side to nbr side.
Definition: cyclicAMIPolyPatch.C:939
Foam::AMIInterpolation
Interpolation class dealing with transfer of data between two primitive patches with an arbitrary mes...
Definition: AMIInterpolation.H:81
Foam::UList< label >
Foam::cyclicAMIPolyPatch::neighbPatchName
const word & neighbPatchName() const
Neighbour patch name.
Definition: cyclicAMIPolyPatchI.H:30
polyBoundaryMesh.H
Foam::cyclicAMIPolyPatch::surfPtr_
autoPtr< searchableSurface > surfPtr_
Projection surface.
Definition: cyclicAMIPolyPatch.H:125
Foam::cyclicAMIPolyPatch::AMIMethod_
const AMIPatchToPatchInterpolation::interpolationMethod AMIMethod_
AMI method.
Definition: cyclicAMIPolyPatch.H:113
Foam::cyclicAMIPolyPatch::rotationCentre
const point & rotationCentre() const
Point on axis of rotation for rotational cyclic AMI.
Definition: cyclicAMIPolyPatchI.H:49
Foam::primitivePatch
PrimitivePatch< face, SubList, const pointField & > primitivePatch
Addressing for a faceList slice.
Definition: primitivePatch.H:47
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:56
Foam::cyclicAMIPolyPatch::AMILowWeightCorrection_
const scalar AMILowWeightCorrection_
Low weight correction threshold for AMI.
Definition: cyclicAMIPolyPatch.H:122
Foam::point
vector point
Point is a vector.
Definition: point.H:43
Foam::coupledPolyPatch::transformType
transformType
Definition: coupledPolyPatch.H:59
Foam::cyclicAMIPolyPatch::AMIRequireMatch_
bool AMIRequireMatch_
Flag to indicate that patches should match/overlap.
Definition: cyclicAMIPolyPatch.H:119
Foam::cyclicAMIPolyPatch::AMIReverse_
const bool AMIReverse_
Flag to indicate that slave patch should be reversed for AMI.
Definition: cyclicAMIPolyPatch.H:116
Foam::patchIdentifier::name
const word & name() const
Return the patch name.
Definition: patchIdentifier.H:109
Foam::patchIdentifier::index
label index() const
The index of this patch in the boundaryMesh.
Definition: patchIdentifier.H:133
Foam::cyclicAMIPolyPatch::~cyclicAMIPolyPatch
virtual ~cyclicAMIPolyPatch()
Destructor.
Definition: cyclicAMIPolyPatch.C:709
Foam::PrimitivePatch
A list of faces which address into the list of points.
Definition: PrimitivePatch.H:90
Foam::cyclicAMIPolyPatch
Cyclic patch for Arbitrary Mesh Interface (AMI)
Definition: cyclicAMIPolyPatch.H:53