uniformTotalPressureFvPatchScalarField.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-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::uniformTotalPressureFvPatchScalarField
28
29Group
30 grpInletBoundaryConditions grpOutletBoundaryConditions
31
32Description
33 This boundary condition provides a time-varying form of the uniform total
34 pressure boundary condition Foam::totalPressureFvPatchField.
35
36Usage
37 \table
38 Property | Description | Required | Default value
39 U | Velocity field name | no | U
40 phi | Flux field name | no | phi
41 rho | Density field name | no | rho
42 psi | Compressibility field name | no | none
43 gamma | (Cp/Cv) | no | 1
44 p0 | Total pressure as a function of time | yes |
45 \endtable
46
47 Example of the boundary condition specification:
48 \verbatim
49 <patchName>
50 {
51 type uniformTotalPressure;
52 p0 uniform 1e5;
53 }
54 \endverbatim
55
56 The \c p0 entry is specified as a Function1 type, able to describe
57 time varying functions.
58
59See also
60 Foam::Function1Types
61 Foam::uniformFixedValueFvPatchField
62 Foam::totalPressureFvPatchField
63
64SourceFiles
65 uniformTotalPressureFvPatchScalarField.C
66
67\*---------------------------------------------------------------------------*/
68
69#ifndef uniformTotalPressureFvPatchScalarField_H
70#define uniformTotalPressureFvPatchScalarField_H
71
73#include "Function1.H"
74
75// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
76
77namespace Foam
78{
79
80/*---------------------------------------------------------------------------*\
81 Class uniformTotalPressureFvPatchField Declaration
82\*---------------------------------------------------------------------------*/
83
84class uniformTotalPressureFvPatchScalarField
85:
86 public fixedValueFvPatchScalarField
87{
88 // Private data
89
90 //- Name of the velocity field
91 word UName_;
92
93 //- Name of the flux transporting the field
94 word phiName_;
95
96 //- Name of the density field used to normalise the mass flux
97 //- if necessary
98 word rhoName_;
99
100 //- Name of the compressibility field used to calculate the wave speed
101 word psiName_;
102
103 //- Heat capacity ratio
104 scalar gamma_;
105
106 //- Table of time vs total pressure, including the bounding treatment
107 autoPtr<Function1<scalar>> p0_;
108
109
110public:
111
112 //- Runtime type information
113 TypeName("uniformTotalPressure");
114
115
116 // Constructors
117
118 //- Construct from patch and internal field
120 (
121 const fvPatch&,
123 );
124
125 //- Construct from patch, internal field and dictionary
127 (
128 const fvPatch&,
130 const dictionary&
131 );
132
133 //- Construct by mapping given patch field onto a new patch
135 (
137 const fvPatch&,
139 const fvPatchFieldMapper&
140 );
141
142 //- Construct as copy
144 (
146 );
148 //- Construct and return a clone
149 virtual tmp<fvPatchScalarField> clone() const
150 {
152 (
154 );
155 }
156
157 //- Construct as copy setting internal field reference
159 (
162 );
163
164 //- Construct and return a clone setting internal field reference
166 (
168 ) const
169 {
171 (
173 );
174 }
175
176
177 // Member functions
178
179 // Access
180
181 //- Return the name of the velocity field
182 const word& UName() const
184 return UName_;
185 }
186
187 //- Return reference to the name of the velocity field
188 // to allow adjustment
189 word& UName()
190 {
191 return UName_;
192 }
193
194 //- Return the heat capacity ratio
195 scalar gamma() const
196 {
197 return gamma_;
198 }
200 //- Return reference to the heat capacity ratio to allow adjustment
201 scalar& gamma()
202 {
203 return gamma_;
204 }
205
206
207 // Evaluation functions
208
209 //- Inherit updateCoeffs from fixedValueFvPatchScalarField
210 using fixedValueFvPatchScalarField::updateCoeffs;
211
212 //- Update the coefficients associated with the patch field
213 // using the given patch velocity field
214 virtual void updateCoeffs(const vectorField& Up);
215
216 //- Update the coefficients associated with the patch field
217 virtual void updateCoeffs();
218
219
220 //- Write
221 virtual void write(Ostream&) const;
222};
224
225// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
226
227} // End namespace Foam
228
229// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
230
231#endif
232
233// ************************************************************************* //
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:62
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
A class for managing temporary objects.
Definition: tmp.H:65
This boundary condition provides a time-varying form of the uniform total pressure boundary condition...
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
scalar & gamma()
Return reference to the heat capacity ratio to allow adjustment.
TypeName("uniformTotalPressure")
Runtime type information.
virtual tmp< fvPatchScalarField > clone() const
Construct and return a clone.
const word & UName() const
Return the name of the velocity field.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A class for handling words, derived from Foam::string.
Definition: word.H:68
Namespace for OpenFOAM.
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73