pressureInletOutletParSlipVelocityFvPatchVectorField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 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::pressureInletOutletParSlipVelocityFvPatchVectorField
26 
27 Description
28  This velocity inlet/outlet boundary condition for pressure boundary where
29  the pressure is specified. A zero-gradient is applied for outflow (as
30  defined by the flux); for inflow, the velocity is obtained from the flux
31  with the specified inlet direction.
32 
33  A slip condition is applied tangential to the patch.
34 
35 Usage
36  \table
37  Property | Description | Required | Default value
38  phi | flux field name | no | phi
39  rho | density field name | no | rho
40  \endtable
41 
42  Example of the boundary condition specification:
43  \verbatim
44  <patchName>
45  {
46  type pressureInletOutletParSlipVelocity;
47  value uniform 0;
48  }
49  \endverbatim
50 
51  Note:
52  Sign conventions:
53  - positive flux (out of domain): apply zero-gradient condition
54  - negative flux (into of domain): derive from the flux with specified
55  direction
56 
57 See also
58  Foam::mixedFvPatchVectorField
59  Foam::pressureDirectedInletOutletVelocityFvPatchVectorField
60 
61 SourceFiles
62  pressureInletOutletParSlipVelocityFvPatchVectorField.C
63 
64 \*---------------------------------------------------------------------------*/
65 
66 #ifndef pressureInletOutletParSlipVelocityFvPatchVectorField_H
67 #define pressureInletOutletParSlipVelocityFvPatchVectorField_H
68 
69 #include "fvPatchFields.H"
70 #include "mixedFvPatchFields.H"
71 
72 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
73 
74 namespace Foam
75 {
76 
77 /*---------------------------------------------------------------------------*\
78  Class pressureInletOutletParSlipVelocityFvPatchVectorField Declaration
79 \*---------------------------------------------------------------------------*/
80 
81 class pressureInletOutletParSlipVelocityFvPatchVectorField
82 :
83  public mixedFvPatchVectorField
84 {
85  // Private Data
86 
87  //- Flux field name
88  word phiName_;
89 
90  //- Density field name
91  word rhoName_;
92 
93 
94 public:
95 
96  //- Runtime type information
97  TypeName("pressureInletOutletParSlipVelocity");
98 
99 
100  // Constructors
101 
102  //- Construct by mapping given
103  // pressureInletOutletParSlipVelocityFvPatchVectorField
104  // onto a new patch
106  (
108  const fvPatch&,
110  const fvPatchFieldMapper&
111  );
112 
113  //- Construct from patch, internal field and dictionary
115  (
116  const fvPatch&,
118  const dictionary&
119  );
120 
121  //- Disallow copy without setting internal field reference
123  (
125  ) = delete;
126 
127  //- Copy constructor setting internal field reference
129  (
132  );
133 
134  //- Construct and return a clone setting internal field reference
136  (
138  ) const
139  {
141  (
143  (
144  *this,
145  iF
146  )
147  );
148  }
149 
150 
151  // Member Functions
152 
153  // Attributes
154 
155  //- Return true: this patch field is altered by assignment
156  virtual bool assignable() const
157  {
158  return true;
159  }
160 
161 
162  // Access
163 
164  //- Return the name of rho
165  const word& rhoName() const
166  {
167  return rhoName_;
168  }
169 
170  //- Return reference to the name of rho to allow adjustment
171  word& rhoName()
172  {
173  return rhoName_;
174  }
175 
176  //- Return the name of phi
177  const word& phiName() const
178  {
179  return phiName_;
180  }
181 
182  //- Return reference to the name of phi to allow adjustment
183  word& phiName()
184  {
185  return phiName_;
186  }
187 
188 
189  //- Update the coefficients associated with the patch field
190  virtual void updateCoeffs();
191 
192  //- Write
193  virtual void write(Ostream&) const;
194 
195 
196  // Member Operators
197 
198  virtual void operator=(const fvPatchField<vector>& pvf);
199 };
200 
201 
202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
203 
204 } // End namespace Foam
205 
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
207 
208 #endif
209 
210 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Foam::fvPatchFieldMapper.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:87
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
This velocity inlet/outlet boundary condition for pressure boundary where the pressure is specified....
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
pressureInletOutletParSlipVelocityFvPatchVectorField(const pressureInletOutletParSlipVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
Construct by mapping given.
TypeName("pressureInletOutletParSlipVelocity")
Runtime type information.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual bool assignable() const
Return true: this patch field is altered by assignment.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.