pressureInletVelocityFvPatchVectorField.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) 2011-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::pressureInletVelocityFvPatchVectorField
26 
27 Description
28  This velocity inlet boundary condition is applied to patches where the
29  pressure is specified. The inflow velocity is obtained from the flux with
30  a direction normal to the patch faces.
31 
32 Usage
33  Example of the boundary condition specification:
34  \verbatim
35  <patchName>
36  {
37  type pressureInletVelocity;
38  phi phi;
39  rho rho;
40  value uniform 0;
41  }
42  \endverbatim
43 
44  Note:
45  If reverse flow is possible or expected use
46  the pressureInletOutletVelocityFvPatchVectorField condition instead.
47 
48 See also
49  Foam::fixedValueFvPatchField
50  Foam::pressureInletOutletVelocityFvPatchVectorField
51 
52 SourceFiles
53  pressureInletVelocityFvPatchVectorField.C
54 
55 \*---------------------------------------------------------------------------*/
56 
57 #ifndef pressureInletVelocityFvPatchVectorField_H
58 #define pressureInletVelocityFvPatchVectorField_H
59 
60 #include "fvPatchFields.H"
62 
63 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 
65 namespace Foam
66 {
67 
68 /*---------------------------------------------------------------------------*\
69  Class pressureInletVelocityFvPatchVectorField Declaration
70 \*---------------------------------------------------------------------------*/
71 
73 :
74  public fixedValueFvPatchVectorField
75 {
76  // Private Data
77 
78  //- Flux field name
79  word phiName_;
80 
81  //- Density field name
82  word rhoName_;
83 
84 
85 public:
86 
87  //- Runtime type information
88  TypeName("pressureInletVelocity");
89 
90 
91  // Constructors
92 
93  //- Construct from patch, internal field and dictionary
95  (
96  const fvPatch&,
98  const dictionary&
99  );
100 
101  //- Construct by mapping given pressureInletVelocityFvPatchVectorField
102  // onto a new patch
104  (
106  const fvPatch&,
108  const fieldMapper&
109  );
110 
111  //- Disallow copy without setting internal field reference
113  (
115  ) = delete;
116 
117  //- Copy constructor setting internal field reference
119  (
122  );
123 
124  //- Construct and return a clone setting internal field reference
126  (
128  ) const
129  {
131  (
133  );
134  }
135 
136 
137  // Member Functions
138 
139  // Attributes
140 
141  //- Return true: this patch field is altered by assignment
142  virtual bool assignable() const
143  {
144  return true;
145  }
146 
147 
148  // Access
149 
150  //- Return the name of rho
151  const word& rhoName() const
152  {
153  return rhoName_;
154  }
155 
156  //- Return reference to the name of rho to allow adjustment
157  word& rhoName()
158  {
159  return rhoName_;
160  }
161 
162  //- Return the name of phi
163  const word& phiName() const
164  {
165  return phiName_;
166  }
167 
168  //- Return reference to the name of phi to allow adjustment
169  word& phiName()
170  {
171  return phiName_;
172  }
173 
174 
175  //- Update the coefficients associated with the patch field
176  virtual void updateCoeffs();
177 
178  //- Write
179  virtual void write(Ostream&) const;
180 
181 
182  // Member Operators
183 
184  virtual void operator=(const fvPatchField<vector>& pvf);
185 };
186 
187 
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 
190 } // End namespace Foam
191 
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 
194 #endif
195 
196 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
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
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:88
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
This velocity inlet boundary condition is applied to patches where the pressure is specified....
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("pressureInletVelocity")
Runtime type information.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
pressureInletVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void operator=(const fvPatchField< vector > &pvf)
virtual bool assignable() const
Return true: this patch field is altered by assignment.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.