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-2023 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 
53 See also
54  Foam::MRFPatchField
55  Foam::MRFZone
56 
57 SourceFiles
58  MRFslipFvPatchVectorField.C
59 
60 \*---------------------------------------------------------------------------*/
61 
62 #ifndef MRFslipFvPatchVectorField_H
63 #define MRFslipFvPatchVectorField_H
64 
65 #include "MRFPatchField.H"
67 
68 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69 
70 namespace Foam
71 {
72 
73 /*---------------------------------------------------------------------------*\
74  Class MRFslipFvPatchVectorField Declaration
75 \*---------------------------------------------------------------------------*/
76 
77 class MRFslipFvPatchVectorField
78 :
79  public fixedValueFvPatchVectorField,
80  public MRFPatchField
81 {
82 
83 public:
84 
85  //- Runtime type information
86  TypeName("MRFslip");
87 
88 
89  // Constructors
90 
91  //- Construct from patch, internal field and dictionary
92  MRFslipFvPatchVectorField
93  (
94  const fvPatch&,
95  const DimensionedField<vector, volMesh>&,
96  const dictionary&
97  );
98 
99  //- Construct by mapping given MRFslipFvPatchVectorField
100  // onto a new patch
101  MRFslipFvPatchVectorField
102  (
103  const MRFslipFvPatchVectorField&,
104  const fvPatch&,
105  const DimensionedField<vector, volMesh>&,
106  const fvPatchFieldMapper&
107  );
108 
109  //- Disallow copy without setting internal field reference
110  MRFslipFvPatchVectorField
111  (
112  const MRFslipFvPatchVectorField&
113  ) = delete;
114 
115  //- Copy constructor setting internal field reference
116  MRFslipFvPatchVectorField
117  (
118  const MRFslipFvPatchVectorField&,
119  const DimensionedField<vector, volMesh>&
120  );
121 
122  //- Construct and return a clone setting internal field reference
123  virtual tmp<fvPatchVectorField> clone
124  (
125  const DimensionedField<vector, volMesh>& iF
126  ) const
127  {
128  return tmp<fvPatchVectorField>
129  (
130  new MRFslipFvPatchVectorField(*this, iF)
131  );
132  }
133 
134 
135  // Member Functions
136 
137  // Evaluation functions
138 
139  //- Update the coefficients associated with the patch field
140  virtual void updateCoeffs();
141 
142 
143  // I-O
144 
145  //- Write
146  virtual void write(Ostream&) const;
147 };
148 
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 } // End namespace Foam
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 #endif
157 
158 // ************************************************************************* //
void write(std::ostream &os, const bool binary, List< floatScalar > &fField)
Write floats ascii or binary.
Namespace for OpenFOAM.
T clone(const T &t)
Definition: List.H:55
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73