MRFslipFvPatchVectorField.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) 2022-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::MRFslipFvPatchVectorField
26 
27 Description
28  Rotating wall-velocity condition to be used for a slip-wall rotating with
29  the moving frame in an MRF (multi-reference frame) or SRF (single reference
30  frame) case.
31 
32  SRF cases are simply MRF cases with a single MRF zone which covers the
33  entire domain.
34 
35 Usage
36  Example of the boundary condition specification for an SRF case or MRF
37  case with a single zone:
38  \verbatim
39  <patchName>
40  {
41  type MRFslip;
42  }
43  \endverbatim
44  or if the case has several MRF zones the particular zone this patch is in
45  must be named explicitly, e.g.:
46  \verbatim
47  <patchName>
48  {
49  type MRFslip;
50  MRFZoneName rotor;
51  }
52  \endverbatim
53 
54 See also
55  Foam::MRFPatchField
56  Foam::MRFZone
57 
58 SourceFiles
59  MRFslipFvPatchVectorField.C
60 
61 \*---------------------------------------------------------------------------*/
62 
63 #ifndef MRFslipFvPatchVectorField_H
64 #define MRFslipFvPatchVectorField_H
65 
66 #include "MRFPatchField.H"
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 namespace Foam
72 {
73 
74 /*---------------------------------------------------------------------------*\
75  Class MRFslipFvPatchVectorField Declaration
76 \*---------------------------------------------------------------------------*/
77 
79 :
80  public fixedValueFvPatchVectorField,
81  public MRFPatchField
82 {
83 
84 public:
85 
86  //- Runtime type information
87  TypeName("MRFslip");
88 
89 
90  // Constructors
91 
92  //- Construct from patch, internal field and dictionary
94  (
95  const fvPatch&,
97  const dictionary&
98  );
99 
100  //- Construct by mapping given MRFslipFvPatchVectorField
101  // onto a new patch
103  (
105  const fvPatch&,
107  const fieldMapper&
108  );
109 
110  //- Disallow copy without setting internal field reference
112  (
114  ) = delete;
115 
116  //- Copy constructor setting internal field reference
118  (
121  );
122 
123  //- Construct and return a clone setting internal field reference
125  (
127  ) const
128  {
130  (
131  new MRFslipFvPatchVectorField(*this, iF)
132  );
133  }
134 
135 
136  // Member Functions
137 
138  // Evaluation functions
139 
140  //- Update the coefficients associated with the patch field
141  virtual void updateCoeffs();
142 
143 
144  // I-O
145 
146  //- Write
147  virtual void write(Ostream&) const;
148 };
149 
150 
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 
153 } // End namespace Foam
154 
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 
157 #endif
158 
159 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Rotating wall-velocity condition to be used for a slip-wall rotating with the moving frame in an MRF ...
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
virtual void write(Ostream &) const
Write.
MRFslipFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
TypeName("MRFslip")
Runtime type information.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
Abstract base class for field mapping.
Definition: fieldMapper.H:48
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.