mappedFilmWallPolyPatch.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2023-2024 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::mappedFilmWallPolyPatch
26 
27 Description
28  Wall patch which holds a mapping engine to map values from another patch
29 
30 SourceFiles
31  mappedFilmWallPolyPatch.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef mappedFilmWallPolyPatch_H
36 #define mappedFilmWallPolyPatch_H
37 
38 #include "filmWallPolyPatch.H"
39 #include "mappedPatchBase.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 class polyMesh;
47 
48 /*---------------------------------------------------------------------------*\
49  Class mappedFilmWallPolyPatch Declaration
50 \*---------------------------------------------------------------------------*/
51 
53 :
54  public filmWallPolyPatch,
55  public mappedPatchBase
56 {
57 protected:
58 
59  // Protected Member Functions
60 
61  //- Calculate the patch geometry
62  virtual void calcGeometry(PstreamBuffers&);
63 
64  //- Correct patches after moving points
65  virtual void movePoints(PstreamBuffers&, const pointField&);
66 
67  //- Update of the patch topology
68  virtual void topoChange(PstreamBuffers&);
69 
70 
71 public:
72 
73  //- Runtime type information
74  TypeName("mappedFilmWall");
75 
76 
77  // Constructors
78 
79  //- Construct from components
81  (
82  const word& name,
83  const label size,
84  const label start,
85  const label index,
86  const polyBoundaryMesh& bm,
87  const word& patchType
88  );
89 
90  //- Construct from components
92  (
93  const word& name,
94  const label size,
95  const label start,
96  const label index,
97  const word& neighbourRegion,
98  const word& neighbourPatch,
99  const polyBoundaryMesh& bm
100  );
101 
102  //- Construct from dictionary
104  (
105  const word& name,
106  const dictionary& dict,
107  const label index,
108  const polyBoundaryMesh& bm,
109  const word& patchType
110  );
111 
112  //- Construct as copy, resetting the boundary mesh
114  (
116  const polyBoundaryMesh&
117  );
118 
119  //- Construct given the original patch and resetting the
120  // face list and boundary mesh information
122  (
123  const mappedFilmWallPolyPatch& pp,
124  const polyBoundaryMesh& bm,
125  const label index,
126  const label newSize,
127  const label newStart
128  );
129 
130  //- Construct and return a clone, resetting the boundary mesh
131  virtual autoPtr<polyPatch> clone(const polyBoundaryMesh& bm) const
132  {
133  return autoPtr<polyPatch>(new mappedFilmWallPolyPatch(*this, bm));
134  }
135 
136  //- Construct and return a clone, resetting the face list
137  // and boundary mesh
138  virtual autoPtr<polyPatch> clone
139  (
140  const polyBoundaryMesh& bm,
141  const label index,
142  const label newSize,
143  const label newStart
144  ) const
145  {
146  return autoPtr<polyPatch>
147  (
149  (
150  *this,
151  bm,
152  index,
153  newSize,
154  newStart
155  )
156  );
157  }
158 
159 
160  //- Destructor
161  virtual ~mappedFilmWallPolyPatch();
162 
163 
164  // Member Functions
165 
166  //- Write the polyPatch data as a dictionary
167  virtual void write(Ostream&) const;
168 };
169 
170 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 } // End namespace Foam
174 
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 
177 #endif
178 
179 // ************************************************************************* //
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
autoPtr< PrimitivePatch< SubList< face >, const pointField & > > clone() const
Construct and return a clone.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
label size() const
Return the number of elements in the UList.
Definition: UListI.H:311
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
Foam::filmWallPolyPatch.
Wall patch which holds a mapping engine to map values from another patch.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
virtual void calcGeometry(PstreamBuffers &)
Calculate the patch geometry.
TypeName("mappedFilmWall")
Runtime type information.
virtual ~mappedFilmWallPolyPatch()
Destructor.
virtual void movePoints(PstreamBuffers &, const pointField &)
Correct patches after moving points.
mappedFilmWallPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType)
Construct from components.
virtual void topoChange(PstreamBuffers &)
Update of the patch topology.
Engine and base class for poly patches which provides interpolative mapping between two globally conf...
label index() const
Return the index of this patch in the boundaryMesh.
const word & name() const
Return name.
Foam::polyBoundaryMesh.
label start() const
Return start label of this patch in the polyMesh face list.
Definition: polyPatch.H:280
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.
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:59
dictionary dict