freestreamVelocityFvPatchVectorField.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) 2018-2022 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::freestreamVelocityFvPatchVectorField
26 
27 Description
28  This boundary condition provides a free-stream condition for velocity.
29 
30  It is an inlet-outlet condition that uses the velocity orientation to
31  continuously blend between fixed value for normal inlet and zero gradient
32  for normal outlet flow.
33 
34 Usage
35  \table
36  Property | Description | Required | Default value
37  freestreamValue | freestream velocity | yes |
38  \endtable
39 
40  Example of the boundary condition specification:
41  \verbatim
42  <patchName>
43  {
44  type freestreamVelocity;
45  freestreamValue uniform (300 0 0);
46  }
47  \endverbatim
48 
49  Note:
50  This condition is designed to operate with the freestreamPressure
51  condition
52 
53 See also
54  Foam::mixedFvPatchField
55  Foam::freestreamFvPatchField
56 
57 SourceFiles
58  freestreamVelocityFvPatchVectorField.C
59 
60 \*---------------------------------------------------------------------------*/
61 
62 #ifndef freestreamVelocityFvPatchVectorField_H
63 #define freestreamVelocityFvPatchVectorField_H
64 
65 #include "fvPatchFields.H"
66 #include "mixedFvPatchFields.H"
67 
68 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69 
70 namespace Foam
71 {
72 
73 /*---------------------------------------------------------------------------*\
74  Class freestreamVelocityFvPatchVectorField Declaration
75 \*---------------------------------------------------------------------------*/
76 
77 class freestreamVelocityFvPatchVectorField
78 :
79  public mixedFvPatchVectorField
80 {
81 
82 public:
83 
84  //- Runtime type information
85  TypeName("freestreamVelocity");
86 
87 
88  // Constructors
89 
90  //- Construct from patch and internal field
92  (
93  const fvPatch&,
95  );
96 
97  //- Construct from patch, internal field and dictionary
99  (
100  const fvPatch&,
102  const dictionary&
103  );
104 
105  //- Construct by mapping given freestreamVelocityFvPatchVectorField onto
106  // a new patch
108  (
110  const fvPatch&,
112  const fvPatchFieldMapper&
113  );
114 
115  //- Disallow copy without setting internal field reference
117  (
119  ) = delete;
120 
121  //- Copy constructor setting internal field reference
123  (
126  );
127 
128  //- Construct and return a clone setting internal field reference
130  (
132  ) const
133  {
135  (
137  );
138  }
140 
141  // Member Functions
142 
143  const vectorField& freestreamValue() const
144  {
145  return refValue();
146  }
147 
149  {
150  return refValue();
151  }
153 
154  // Evaluation functions
155 
156  //- Update the coefficients associated with the patch field
157  virtual void updateCoeffs();
158 
159 
160  //- Write
161  virtual void write(Ostream&) const;
162 };
163 
164 
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 
167 } // End namespace Foam
168 
169 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
170 
171 #endif
172 
173 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:63
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Foam::fvPatchFieldMapper.
This boundary condition provides a free-stream condition for velocity.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:54
TypeName("freestreamVelocity")
Runtime type information.
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
freestreamVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.