nonuniformTransformCyclicPointPatch.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::nonuniformTransformCyclicPointPatch
29 
30 Description
31  Cyclic patch with slip constraint
32 
33 SourceFiles
34  nonuniformTransformCyclicPointPatch.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef nonuniformTransformCyclicPointPatch_H
39 #define nonuniformTransformCyclicPointPatch_H
40 
41 #include "cyclicPointPatch.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class nonuniformTransformCyclicPointPatch Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 :
55  public cyclicPointPatch
56 {
57 
58 public:
59 
60  //- Runtime type information
61  TypeName(nonuniformTransformCyclicPolyPatch::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  {
99  return autoPtr<pointPatch>::
100  NewFrom<nonuniformTransformCyclicPointPatch>
101  (
102  *this,
103  bm,
104  index,
105  mapAddressing,
106  reversePointMap
107  );
108  }
109 
110 
111  // Destructor
112 
113  virtual ~nonuniformTransformCyclicPointPatch() = default;
114 
115 
116  // Member Functions
117 
118  //- Return point unit normals.
119  virtual const vectorField& pointNormals() const;
120 
121  //- Accumulate the effect of constraint direction of this patch
122  virtual void applyConstraint
123  (
124  const label pointi,
126  ) const;
127 };
128 
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 } // End namespace Foam
133 
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 
136 #endif
137 
138 // ************************************************************************* //
virtual void applyConstraint(const label pointi, pointConstraint &) const
Accumulate the effect of constraint direction of this patch.
Foam::pointBoundaryMesh.
TypeName(nonuniformTransformCyclicPolyPatch::typeName_())
Runtime type information.
virtual const polyPatch & patch() const
Return the polyPatch.
virtual const vectorField & pointNormals() const
Return point unit normals.
Cyclic patch for post-processing.
virtual label index() const
Return the index of this patch in the pointBoundaryMesh.
Accumulates point constraints through successive applications of the applyConstraint function...
virtual ~nonuniformTransformCyclicPointPatch()=default
nonuniformTransformCyclicPointPatch(const polyPatch &patch, const pointBoundaryMesh &bm)
Construct from components.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
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.
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:69
Namespace for OpenFOAM.