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-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::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, internal field and dictionary
92  (
93  const fvPatch&,
95  const dictionary&
96  );
97 
98  //- Construct by mapping given freestreamVelocityFvPatchVectorField onto
99  // a new patch
101  (
103  const fvPatch&,
105  const fvPatchFieldMapper&
106  );
107 
108  //- Disallow copy without setting internal field reference
110  (
112  ) = delete;
113 
114  //- Copy constructor setting internal field reference
116  (
119  );
120 
121  //- Construct and return a clone setting internal field reference
123  (
125  ) const
126  {
128  (
130  );
131  }
132 
133 
134  // Member Functions
135 
136  const vectorField& freestreamValue() const
137  {
138  return refValue();
139  }
140 
142  {
143  return refValue();
144  }
145 
146 
147  // Evaluation functions
148 
149  //- Update the coefficients associated with the patch field
150  virtual void updateCoeffs();
151 
152 
153  //- Write
154  virtual void write(Ostream&) const;
155 };
156 
157 
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 
160 } // End namespace Foam
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 #endif
165 
166 // ************************************************************************* //
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
This boundary condition provides a free-stream condition for velocity.
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("freestreamVelocity")
Runtime type information.
freestreamVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Foam::fvPatchFieldMapper.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.
Field< vector > vectorField
Specialisation of Field<T> for vector.