wavePressureFvPatchScalarField.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) 2017-2020 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::wavePressureFvPatchScalarField
26 
27 Description
28  This boundary condition provides a wavePressure condition. This sets the
29  pressure to a value specified by a superposition of wave models. All the
30  wave modelling parameters are obtained from a centrally registered
31  waveSuperposition class.
32 
33  This functions like an outletInlet condition. Faces on which the flow is
34  leaving the domain have a value set by the wave model. Faces on which the
35  flow is entering the domain have the gradient set. This gradient is
36  calculated numerically by evaluating the wave model on both the patch face
37  and the adjacent cell.
38 
39  Use of this boundary condition triggers a consistent behaviour in the
40  corresponding velocity and phase-fraction conditions.
41 
42 Usage
43  \table
44  Property | Description | Req'd? | Default
45  U | name of the velocity field | no | U
46  rho | name of the density field | no | rho
47  \endtable
48 
49  Example of the boundary condition specification:
50  \verbatim
51  <patchName>
52  {
53  type wavePressure;
54  U U;
55  rho rho;
56  }
57  \endverbatim
58 
59 See also
60  Foam::waveSuperposition
61 
62 SourceFiles
63  wavePressureFvPatchScalarField.C
64 
65 \*---------------------------------------------------------------------------*/
66 
67 #ifndef wavePressureFvPatchScalarField_H
68 #define wavePressureFvPatchScalarField_H
69 
70 #include "mixedFvPatchFields.H"
71 
72 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
73 
74 namespace Foam
75 {
76 
77 /*---------------------------------------------------------------------------*\
78  Class wavePressureFvPatchScalarField Declaration
79 \*---------------------------------------------------------------------------*/
80 
81 class wavePressureFvPatchScalarField
82 :
83  public mixedFvPatchScalarField
84 {
85  // Private Data
86 
87  //- Name of the velocity field
88  const word UName_;
89 
90  //- Name of the density field
91  const word rhoName_;
92 
93 
94 public:
95 
96  //- Runtime type information
97  TypeName("wavePressure");
98 
99 
100  // Constructors
101 
102  //- Construct from patch and internal field
104  (
105  const fvPatch&,
107  );
108 
109  //- Construct from patch, internal field and dictionary
111  (
112  const fvPatch&,
114  const dictionary&
115  );
116 
117  //- Construct by mapping given mixedTypeFvPatchField
118  // onto a new patch
120  (
122  const fvPatch&,
124  const fvPatchFieldMapper&
125  );
126 
127  //- Disallow copy without setting internal field reference
129  (
131  ) = delete;
132 
133  //- Copy constructor setting internal field reference
135  (
138  );
139 
140  //- Construct and return a clone setting internal field reference
142  (
144  ) const
145  {
147  (
149  (
150  *this,
151  iF
152  )
153  );
154  }
155 
157  // Member Functions
158 
159  // Evaluation functions
160 
161  //- Return the current modelled pressure field on the patch faces
162  tmp<scalarField> p() const;
163 
164  //- Return the current modelled pressure field in the neighbour cell
165  tmp<scalarField> pn() const;
166 
167  //- Update the coefficients associated with the patch field
168  virtual void updateCoeffs();
169 
170 
171  //- Write
172  virtual void write(Ostream&) const;
173 };
174 
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 } // End namespace Foam
179 
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
181 
182 
183 #endif
184 
185 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
tmp< scalarField > p() const
Return the current modelled pressure field on the patch faces.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:62
Foam::fvPatchFieldMapper.
virtual void write(Ostream &) const
Write.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:54
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("wavePressure")
Runtime type information.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
wavePressureFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
tmp< scalarField > pn() const
Return the current modelled pressure field in the neighbour cell.
A class for managing temporary objects.
Definition: PtrList.H:53
This boundary condition provides a wavePressure condition. This sets the pressure to a value specifie...
Namespace for OpenFOAM.