mappedFlowRateFvPatchVectorField.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 | Copyright (C) 2011-2016 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::mappedFlowRateFvPatchVectorField
26 
27 Group
28  grpInletBoundaryConditions grpCoupledBoundaryConditions
29 
30 Description
31  Describes a volumetric/mass flow normal vector boundary condition by its
32  magnitude as an integral over its area.
33 
34  The inlet mass flux is taken from the neighbour region.
35 
36  The basis of the patch (volumetric or mass) is determined by the
37  dimensions of the flux, phi. The current density is used to correct the
38  velocity when applying the mass basis.
39 
40 Usage
41  \table
42  Property | Description | Required | Default value
43  phi | flux field name | no | phi
44  rho | density field name | no | rho
45  neigPhi | name of flux field on neighbour mesh | yes |
46  \endtable
47 
48  Example of the boundary condition specification:
49  \verbatim
50  <patchName>
51  {
52  type mappedFlowRate;
53  phi phi;
54  rho rho;
55  neigPhi phi;
56  value uniform (0 0 0); // placeholder
57  }
58  \endverbatim
59 
60 SourceFiles
61  mappedFlowRateFvPatchVectorField.C
62 
63 \*---------------------------------------------------------------------------*/
64 
65 #ifndef mappedFlowRateFvPatchVectorField_H
66 #define mappedFlowRateFvPatchVectorField_H
67 
69 
70 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71 
72 namespace Foam
73 {
74 /*---------------------------------------------------------------------------*\
75  Class flowRateInletVelocityFvPatch Declaration
76 \*---------------------------------------------------------------------------*/
77 
78 class mappedFlowRateFvPatchVectorField
79 :
80  public fixedValueFvPatchVectorField
81 {
82  // Private data
83 
84  //- Name of the neighbor flux setting the inlet mass flux
85  word nbrPhiName_;
86 
87  //- Name of the local mass flux
88  word phiName_;
89 
90  //- Name of the density field used to normalize the mass flux
91  word rhoName_;
92 
93 
94 public:
95 
96  //- Runtime type information
97  TypeName("mappedFlowRate");
98 
99 
100  // Constructors
101 
102  //- Construct from patch and internal field
104  (
105  const fvPatch&,
107  );
108 
109  //- Construct from patch, internal field and dictionary
111  (
112  const fvPatch&,
114  const dictionary&
115  );
116 
117  //- Construct by mapping given
118  // mappedFlowRateFvPatchVectorField
119  // onto a new patch
121  (
123  const fvPatch&,
125  const fvPatchFieldMapper&
126  );
127 
128  //- Construct as copy
130  (
132  );
133 
134  //- Construct and return a clone
135  virtual tmp<fvPatchVectorField> clone() const
136  {
138  (
140  );
141  }
142 
143  //- Construct as copy setting internal field reference
145  (
148  );
149 
150  //- Construct and return a clone setting internal field reference
152  (
154  ) const
155  {
157  (
158  new mappedFlowRateFvPatchVectorField(*this, iF)
159  );
160  }
161 
162 
163  // Member functions
164 
165 
166  //- Update the coefficients associated with the patch field
167  virtual void updateCoeffs();
168 
169  //- Write
170  virtual void write(Ostream&) const;
172 };
173 
174 
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 
177 } // End namespace Foam
178 
179 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 
181 #endif
182 
183 // ************************************************************************* //
Describes a volumetric/mass flow normal vector boundary condition by its magnitude as an integral ove...
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
Foam::fvPatchFieldMapper.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
mappedFlowRateFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
A class for managing temporary objects.
Definition: PtrList.H:54
TypeName("mappedFlowRate")
Runtime type information.
Namespace for OpenFOAM.