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-2019 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  //- Copy constructor
129  (
131  );
132 
133  //- Construct and return a clone
134  virtual tmp<fvPatchScalarField> clone() const
135  {
137  (
139  );
140  }
141 
142  //- Copy constructor setting internal field reference
144  (
147  );
149  //- Construct and return a clone setting internal field reference
151  (
153  ) const
154  {
156  (
158  (
159  *this,
160  iF
161  )
162  );
163  }
164 
166  // Member Functions
167 
168  // Evaluation functions
169 
170  //- Return the current modelled pressure field on the patch faces
171  tmp<scalarField> p() const;
172 
173  //- Return the current modelled pressure field in the neighbour cell
174  tmp<scalarField> pn() const;
175 
176  //- Update the coefficients associated with the patch field
177  virtual void updateCoeffs();
178 
179 
180  //- Write
181  virtual void write(Ostream&) const;
182 };
183 
184 
185 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 
187 } // End namespace Foam
188 
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190 
191 
192 #endif
193 
194 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
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:61
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:53
TypeName("wavePressure")
Runtime type information.
virtual tmp< fvPatchScalarField > clone() const
Construct and return a clone.
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.