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-2012 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  \heading Patch usage
41 
42  \table
43  Property | Description | Required | Default value
44  phi | flux field name | no | phi
45  rho | density field name | no | rho
46  neigPhi | name of flux field on neighbour mesh | yes |
47  \endtable
48 
49  Example of the boundary condition specification:
50  \verbatim
51  myPatch
52  {
53  type mappedFlowRate;
54  phi phi;
55  rho rho;
56  neigPhi phi;
57  value uniform (0 0 0); // placeholder
58  }
59  \endverbatim
60 
61 SourceFiles
62  mappedFlowRateFvPatchVectorField.C
63 
64 \*---------------------------------------------------------------------------*/
65 
66 #ifndef mappedFlowRateFvPatchVectorField_H
67 #define mappedFlowRateFvPatchVectorField_H
68 
70 
71 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
72 
73 namespace Foam
74 {
75 /*---------------------------------------------------------------------------*\
76  Class flowRateInletVelocityFvPatch Declaration
77 \*---------------------------------------------------------------------------*/
78 
79 class mappedFlowRateFvPatchVectorField
80 :
81  public fixedValueFvPatchVectorField
82 {
83  // Private data
84 
85  //- Name of the neighbor flux setting the inlet mass flux
86  word nbrPhiName_;
87 
88  //- Name of the local mass flux
89  word phiName_;
90 
91  //- Name of the density field used to normalize the mass flux
92  word rhoName_;
93 
94 
95 public:
96 
97  //- Runtime type information
98  TypeName("mappedFlowRate");
99 
100 
101  // Constructors
102 
103  //- Construct from patch and internal field
105  (
106  const fvPatch&,
108  );
109 
110  //- Construct from patch, internal field and dictionary
112  (
113  const fvPatch&,
115  const dictionary&
116  );
117 
118  //- Construct by mapping given
119  // mappedFlowRateFvPatchVectorField
120  // onto a new patch
122  (
124  const fvPatch&,
126  const fvPatchFieldMapper&
127  );
128 
129  //- Construct as copy
131  (
133  );
134 
135  //- Construct and return a clone
136  virtual tmp<fvPatchVectorField> clone() const
137  {
139  (
141  );
142  }
143 
144  //- Construct as copy setting internal field reference
146  (
149  );
150 
151  //- Construct and return a clone setting internal field reference
153  (
155  ) const
156  {
158  (
159  new mappedFlowRateFvPatchVectorField(*this, iF)
160  );
161  }
162 
163 
164  // Member functions
165 
166 
167  //- Update the coefficients associated with the patch field
168  virtual void updateCoeffs();
169 
170  //- Write
171  virtual void write(Ostream&) const;
172 
173 };
174 
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 } // End namespace Foam
179 
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
181 
182 #endif
183 
184 // ************************************************************************* //
Foam::mappedFlowRateFvPatchVectorField::phiName_
word phiName_
Name of the local mass flux.
Definition: mappedFlowRateFvPatchVectorField.H:108
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::mappedFlowRateFvPatchVectorField::clone
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
Definition: mappedFlowRateFvPatchVectorField.H:155
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:118
Foam::mappedFlowRateFvPatchVectorField::write
virtual void write(Ostream &) const
Write.
Definition: mappedFlowRateFvPatchVectorField.C:184
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
Foam::mappedFlowRateFvPatchVectorField::updateCoeffs
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Definition: mappedFlowRateFvPatchVectorField.C:104
Foam::mappedFlowRateFvPatchVectorField::TypeName
TypeName("mappedFlowRate")
Runtime type information.
Foam::mappedFlowRateFvPatchVectorField::rhoName_
word rhoName_
Name of the density field used to normalize the mass flux.
Definition: mappedFlowRateFvPatchVectorField.H:111
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::mappedFlowRateFvPatchVectorField::mappedFlowRateFvPatchVectorField
mappedFlowRateFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
Definition: mappedFlowRateFvPatchVectorField.C:36
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::mappedFlowRateFvPatchVectorField::nbrPhiName_
word nbrPhiName_
Name of the neighbor flux setting the inlet mass flux.
Definition: mappedFlowRateFvPatchVectorField.H:105
Foam::mappedFlowRateFvPatchVectorField
Describes a volumetric/mass flow normal vector boundary condition by its magnitude as an integral ove...
Definition: mappedFlowRateFvPatchVectorField.H:98
fixedValueFvPatchFields.H
Foam::fvPatchFieldMapper
Foam::fvPatchFieldMapper.
Definition: fvPatchFieldMapper.H:45
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:53
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:51