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 as copy setting internal field reference
144  (
147  );
148 
149  //- Return a clone
150  virtual tmp<fvPatchField<vector>> clone() const
151  {
152  return fvPatchField<vector>::Clone(*this);
153  }
154 
155  //- Clone with an internal field reference
157  (
159  ) const
160  {
161  return fvPatchField<vector>::Clone(*this, iF);
162  }
163 
164 
165  // Member Functions
166 
167  //- True: this patch field is altered by assignment
168  virtual bool assignable() const { return true; }
169 
170 
171  // Access
172 
173  //- Return the name of rho
174  const word& rhoName() const
175  {
176  return rhoName_;
177  }
178 
179  //- Return reference to the name of rho to allow adjustment
180  word& rhoName()
181  {
182  return rhoName_;
183  }
184 
185  //- Return the name of phi
186  const word& phiName() const
187  {
188  return phiName_;
189  }
190 
191  //- Return reference to the name of phi to allow adjustment
192  word& phiName()
193  {
194  return phiName_;
195  }
196 
197 
198  // Mapping functions
199 
200  //- Map (and resize as needed) from self given a mapping object
201  virtual void autoMap
202  (
203  const fvPatchFieldMapper&
204  );
205 
206  //- Reverse map the given fvPatchField onto this fvPatchField
207  virtual void rmap
208  (
209  const fvPatchVectorField&,
210  const labelList&
211  );
212 
213 
214  //- Update the coefficients associated with the patch field
215  virtual void updateCoeffs();
217  //- Write
218  virtual void write(Ostream&) const;
219 
220 
221  // Member operators
222 
223  virtual void operator=(const fvPatchField<vector>& pvf);
224 };
225 
226 
227 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
228 
229 } // End namespace Foam
230 
231 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
233 #endif
234 
235 // ************************************************************************* //
virtual tmp< fvPatchField< vector > > clone() const
Return a clone.
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.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
Definition: fvPatchField.H:597
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.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
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.