outletInletFvPatchField.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::outletInletFvPatchField
28 
29 Group
30  grpInletBoundaryConditions
31 
32 Description
33  This boundary condition provides a generic inflow condition, with
34  specified outflow for the case of reverse flow.
35 
36 Usage
37  \table
38  Property | Description | Required | Default value
39  phi | Flux field name | no | phi
40  outletValue | Outlet value for reverse flow | yes |
41  value | initial field value | optional |
42  \endtable
43 
44  Example of the boundary condition specification:
45  \verbatim
46  <patchName>
47  {
48  type outletInlet;
49  phi phi;
50  outletValue uniform 0;
51  value uniform 0;
52  }
53  \endverbatim
54 
55  The mode of operation is determined by the sign of the flux across the
56  patch faces.
57 
58 Note
59  Sign conventions:
60  - Positive flux (out of domain): apply the "outletValue" fixed-value
61  - Negative flux (into domain): apply zero-gradient condition
62 
63 See also
64  Foam::mixedFvPatchField
65  Foam::zeroGradientFvPatchField
66  Foam::inletOutletFvPatchField
67 
68 SourceFiles
69  outletInletFvPatchField.C
70 
71 \*---------------------------------------------------------------------------*/
72 
73 #ifndef Foam_outletInletFvPatchField_H
74 #define Foam_outletInletFvPatchField_H
75 
76 #include "mixedFvPatchField.H"
77 
78 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
79 
80 namespace Foam
81 {
82 
83 /*---------------------------------------------------------------------------*\
84  Class outletInletFvPatch Declaration
85 \*---------------------------------------------------------------------------*/
86 
87 template<class Type>
88 class outletInletFvPatchField
89 :
90  public mixedFvPatchField<Type>
91 {
92 protected:
93 
94  // Protected Data
95 
96  //- Name of flux field (default: phi)
97  word phiName_;
98 
99 
100 public:
101 
102  //- Runtime type information
103  TypeName("outletInlet");
104 
105 
106  // Constructors
107 
108  //- Construct from patch and internal field
110  (
111  const fvPatch&,
113  );
115  //- Construct from patch, internal field and dictionary
117  (
118  const fvPatch&,
120  const dictionary&
121  );
122 
123  //- Construct by mapping given outletInletFvPatchField onto a new patch
125  (
127  const fvPatch&,
129  const fvPatchFieldMapper&
130  );
131 
132  //- Construct as copy
134  (
136  );
137 
138  //- Construct and return a clone
139  virtual tmp<fvPatchField<Type>> clone() const
140  {
141  return tmp<fvPatchField<Type>>
142  (
144  );
145  }
146 
147  //- Construct as copy setting internal field reference
149  (
152  );
153 
154  //- Construct and return a clone setting internal field reference
156  (
158  ) const
159  {
160  return tmp<fvPatchField<Type>>
161  (
162  new outletInletFvPatchField<Type>(*this, iF)
163  );
164  }
165 
166 
167  // Member functions
169  //- Update the coefficients associated with the patch field
170  virtual void updateCoeffs();
171 
172  //- Write
173  virtual void write(Ostream&) const;
174 };
175 
176 
177 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178 
179 } // End namespace Foam
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 #ifdef NoRepository
184  #include "outletInletFvPatchField.C"
185 #endif
186 
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 
189 #endif
190 
191 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
outletInletFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A FieldMapper for finite-volume patch fields.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
virtual void write(Ostream &) const
Write.
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...
Definition: areaFieldsFwd.H:42
A class for managing temporary objects.
Definition: HashPtrTable.H:50
TypeName("outletInlet")
Runtime type information.
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
word phiName_
Name of flux field (default: phi)
This boundary condition provides a generic inflow condition, with specified outflow for the case of r...
Namespace for OpenFOAM.