cyclicSlipPointPatch.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 OpenFOAM Foundation
9  Copyright (C) 2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::cyclicSlipPointPatch
29 
30 Description
31  Cyclic patch with slip constraint
32 
33 SourceFiles
34  cyclicSlipPointPatch.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef cyclicSlipPointPatch_H
39 #define cyclicSlipPointPatch_H
40 
41 #include "cyclicPointPatch.H"
42 #include "cyclicSlipPolyPatch.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class cyclicSlipPointPatch Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 :
55  public cyclicPointPatch
56 {
57 
58 public:
59 
60  //- Runtime type information
61  TypeName(cyclicSlipPolyPatch::typeName_());
62 
63 
64  // Constructors
65 
66  //- Construct from components
68  (
69  const polyPatch& patch,
70  const pointBoundaryMesh& bm
71  )
72  :
74  {}
75 
76  //- Construct given the original patch and a map
78  (
80  const pointBoundaryMesh& bm,
81  const label index,
82  const labelUList& mapAddressing,
83  const labelUList& reversePointMap
84  )
85  :
86  cyclicPointPatch(patch, bm, index, mapAddressing, reversePointMap)
87  {}
88 
89  //- Construct and return a subset clone,
90  //- resetting the point list and boundary mesh
92  (
93  const pointBoundaryMesh& bm,
94  const label index,
95  const labelUList& mapAddressing,
96  const labelUList& reversePointMap
97  ) const
98  {
100  (
101  *this,
102  bm,
103  index,
104  mapAddressing,
105  reversePointMap
106  );
107  }
108 
109 
110  //- Destructor
111  virtual ~cyclicSlipPointPatch() = default;
112 
113 
114  // Member Functions
115 
116  //- Return point unit normals.
117  virtual const vectorField& pointNormals() const;
118 
119  //- Accumulate the effect of constraint direction of this patch
120  virtual void applyConstraint
121  (
122  const label pointi,
124  ) const;
125 };
126 
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 } // End namespace Foam
131 
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 
134 #endif
135 
136 // ************************************************************************* //
A pointBoundaryMesh is a pointPatch list with registered IO, a reference to the associated pointMesh...
virtual void applyConstraint(const label pointi, pointConstraint &) const
Accumulate the effect of constraint direction of this patch.
virtual const polyPatch & patch() const
Return the polyPatch.
Cyclic patch for post-processing.
virtual label index() const
Return the index of this patch in the pointBoundaryMesh.
cyclicSlipPointPatch(const polyPatch &patch, const pointBoundaryMesh &bm)
Construct from components.
Accumulates point constraints through successive applications of the applyConstraint function...
virtual autoPtr< pointPatch > clone(const pointBoundaryMesh &bm, const label index, const labelUList &mapAddressing, const labelUList &reversePointMap) const
Construct and return a subset clone, resetting the point list and boundary mesh.
TypeName(cyclicSlipPolyPatch::typeName_())
Runtime type information.
virtual const vectorField & pointNormals() const
Return point unit normals.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
virtual ~cyclicSlipPointPatch()=default
Destructor.
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:69
Cyclic patch with slip constraint.
Namespace for OpenFOAM.