pressureDirectedInletVelocityFvPatchVectorField.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-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::pressureDirectedInletVelocityFvPatchVectorField
28 
29 Group
30  grpInletBoundaryConditions
31 
32 Description
33  This velocity inlet boundary condition is applied to patches where the
34  pressure is specified. The inflow velocity is obtained from the flux with
35  the specified inlet direction" direction.
36 
37 Usage
38  \table
39  Property | Description | Required | Default value
40  phi | flux field name | no | phi
41  rho | density field name | no | rho
42  inletDirection | inlet direction per patch face | yes |
43  \endtable
44 
45  Example of the boundary condition specification:
46  \verbatim
47  <patchName>
48  {
49  type pressureDirectedInletVelocity;
50  phi phi;
51  rho rho;
52  inletDirection uniform (1 0 0);
53  value uniform 0;
54  }
55  \endverbatim
56 
57 Note
58  If reverse flow is possible or expected use the
59  pressureDirectedInletOutletVelocityFvPatchVectorField condition instead.
60 
61 
62 See also
63  Foam::fixedValueFvPatchField
64  Foam::pressureDirectedInletOutletVelocityFvPatchVectorField
65 
66 SourceFiles
67  pressureDirectedInletVelocityFvPatchVectorField.C
68 
69 \*---------------------------------------------------------------------------*/
70 
71 #ifndef pressureDirectedInletVelocityFvPatchVectorField_H
72 #define pressureDirectedInletVelocityFvPatchVectorField_H
73 
74 #include "fvPatchFields.H"
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 namespace Foam
80 {
81 
82 /*---------------------------------------------------------------------------*\
83  Class pressureDirectedInletVelocityFvPatchVectorField Declaration
84 \*---------------------------------------------------------------------------*/
85 
86 class pressureDirectedInletVelocityFvPatchVectorField
87 :
88  public fixedValueFvPatchVectorField
89 {
90  // Private data
91 
92  //- Flux field name
93  word phiName_;
94 
95  //- Density field name
96  word rhoName_;
97 
98  //- Inlet direction
99  vectorField inletDir_;
100 
102 public:
103 
104  //- Runtime type information
105  TypeName("pressureDirectedInletVelocity");
106 
107 
108  // Constructors
109 
110  //- Construct from patch and internal field
112  (
113  const fvPatch&,
115  );
116 
117  //- Construct from patch, internal field and dictionary
119  (
120  const fvPatch&,
122  const dictionary&
123  );
124 
125  //- Construct by mapping given
126  // pressureDirectedInletVelocityFvPatchVectorField
127  // onto a new patch
129  (
131  const fvPatch&,
133  const fvPatchFieldMapper&
134  );
135 
136  //- Construct as copy
138  (
140  );
141 
142  //- Construct and return a clone
143  virtual tmp<fvPatchVectorField> clone() const
144  {
146  (
148  );
149  }
150 
151  //- Construct as copy setting internal field reference
153  (
156  );
157 
158  //- Construct and return a clone setting internal field reference
160  (
162  ) const
163  {
165  (
167  (
168  *this,
169  iF
170  )
171  );
172  }
173 
174 
175  // Member Functions
176 
177  //- True: this patch field is altered by assignment
178  virtual bool assignable() const { return true; }
179 
180 
181  // Access
182 
183  //- Return the name of rho
184  const word& rhoName() const
185  {
186  return rhoName_;
187  }
188 
189  //- Return reference to the name of rho to allow adjustment
190  word& rhoName()
191  {
192  return rhoName_;
193  }
194 
195  //- Return the name of phi
196  const word& phiName() const
197  {
198  return phiName_;
199  }
200 
201  //- Return reference to the name of phi to allow adjustment
202  word& phiName()
203  {
204  return phiName_;
205  }
206 
207 
208  // Mapping functions
209 
210  //- Map (and resize as needed) from self given a mapping object
211  virtual void autoMap
212  (
213  const fvPatchFieldMapper&
214  );
215 
216  //- Reverse map the given fvPatchField onto this fvPatchField
217  virtual void rmap
218  (
219  const fvPatchVectorField&,
220  const labelList&
221  );
222 
223 
224  //- Update the coefficients associated with the patch field
225  virtual void updateCoeffs();
227  //- Write
228  virtual void write(Ostream&) const;
229 
230 
231  // Member operators
232 
233  virtual void operator=(const fvPatchField<vector>& pvf);
234 };
235 
236 
237 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
238 
239 } // End namespace Foam
240 
241 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
243 #endif
244 
245 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
virtual bool assignable() const
True: this patch field is altered by assignment.
pressureDirectedInletVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A class for handling words, derived from Foam::string.
Definition: word.H:63
A FieldMapper for finite-volume patch fields.
TypeName("pressureDirectedInletVelocity")
Runtime type information.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
virtual void rmap(const fvPatchVectorField &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: areaFieldsFwd.H:42
This velocity inlet boundary condition is applied to patches where the pressure is specified...
Field< vector > vectorField
Specialisation of Field<T> for vector.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
Namespace for OpenFOAM.