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  \endtable
42 
43  Example of the boundary condition specification:
44  \verbatim
45  <patchName>
46  {
47  type outletInlet;
48  phi phi;
49  outletValue uniform 0;
50  value uniform 0;
51  }
52  \endverbatim
53 
54  The mode of operation is determined by the sign of the flux across the
55  patch faces.
56 
57 Note
58  Sign conventions:
59  - Positive flux (out of domain): apply the "outletValue" fixed-value
60  - Negative flux (into of domain): apply zero-gradient condition
61 
62 See also
63  Foam::mixedFvPatchField
64  Foam::zeroGradientFvPatchField
65  Foam::inletOutletFvPatchField
66 
67 SourceFiles
68  outletInletFvPatchField.C
69 
70 \*---------------------------------------------------------------------------*/
71 
72 #ifndef outletInletFvPatchField_H
73 #define outletInletFvPatchField_H
74 
75 #include "mixedFvPatchField.H"
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 namespace Foam
80 {
81 
82 /*---------------------------------------------------------------------------*\
83  Class outletInletFvPatch Declaration
84 \*---------------------------------------------------------------------------*/
85 
86 template<class Type>
87 class outletInletFvPatchField
88 :
89  public mixedFvPatchField<Type>
90 {
91 
92 protected:
93 
94  // Protected data
95 
96  //- Name of flux field
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  );
114 
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
168 
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
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:120
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:68
outletInletFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A class for handling words, derived from Foam::string.
Definition: word.H:63
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:55
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.
This boundary condition provides a generic inflow condition, with specified outflow for the case of r...
Namespace for OpenFOAM.