outletInletFaPatchField.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) 2023 OpenCFD Ltd.
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::outletInletFaPatchField
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 edges.
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::mixedFaPatchField
65  Foam::zeroGradientFaPatchField
66  Foam::inletOutletFaPatchField
67 
68 SourceFiles
69  outletInletFaPatchField.C
70 
71 \*---------------------------------------------------------------------------*/
72 
73 #ifndef Foam_outletInletFaPatchField_H
74 #define Foam_outletInletFaPatchField_H
75 
76 #include "mixedFaPatchField.H"
77 
78 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
79 
80 namespace Foam
81 {
82 
83 /*---------------------------------------------------------------------------*\
84  Class outletInletFaPatch Declaration
85 \*---------------------------------------------------------------------------*/
86 
87 template<class Type>
88 class outletInletFaPatchField
89 :
90  public mixedFaPatchField<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 faPatch&,
113  );
115  //- Construct from patch, internal field and dictionary
117  (
118  const faPatch&,
120  const dictionary&
121  );
122 
123  //- Construct by mapping given outletInletFaPatchField onto a new patch
125  (
127  const faPatch&,
129  const faPatchFieldMapper&
130  );
131 
132  //- Construct as copy
134  (
136  );
137 
138  //- Construct as copy setting internal field reference
140  (
143  );
144 
145  //- Return clone
146  virtual tmp<faPatchField<Type>> clone() const
147  {
148  return faPatchField<Type>::Clone(*this);
149  }
150 
151  //- Clone with an internal field reference
153  (
155  ) const
156  {
157  return faPatchField<Type>::Clone(*this, iF);
158  }
159 
160 
161  // Member Functions
162 
163  //- Update the coefficients associated with the patch field
164  virtual void updateCoeffs();
165 
166  //- Write includes "value" entry
167  virtual void write(Ostream&) const;
168 };
169 
170 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 } // End namespace Foam
174 
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 
177 #ifdef NoRepository
178  #include "outletInletFaPatchField.C"
179 #endif
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 #endif
184 
185 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
This boundary condition provides a generic inflow condition, with specified outflow for the case of r...
static tmp< faPatchField< Type > > Clone(const DerivedPatchField &pf)
Clone a patch field with its own internal field reference.
Definition: faPatchField.H:541
Finite area patch class. Used for 2-D non-Euclidian finite area method.
Definition: faPatch.H:72
virtual void write(Ostream &) const
Write includes "value" entry.
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...
outletInletFaPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
A FieldMapper for finite-area patch fields.
word phiName_
Name of flux field (default: phi)
TypeName("outletInlet")
Runtime type information.
Namespace for OpenFOAM.
virtual tmp< faPatchField< Type > > clone() const
Return clone.