multiphaseStabilizedTurbulence.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) 2019 OpenCFD Ltd
9 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::fv::multiphaseStabilizedTurbulence
28 
29 Group
30  grpFvOptionsSources
31 
32 Description
33  Applies corrections to the turbulence kinetic energy equation and turbulence
34  viscosity field for incompressible multiphase flow cases.
35 
36  Turbulence kinetic energy is over-predicted in VOF solvers at the phase
37  interface and throughout the water column in nearly-potential flow regions
38  beneath surface waves.
39 
40  This fvOption applies corrections based on the references:
41  \verbatim
42  Buoyancy source term in turbulence kinetic energy equation:
43  Devolder, B., Rauwoens, P., and Troch, P. (2017).
44  Application of a buoyancy-modified k-w SST turbulence model to
45  simulate wave run-up around a monopile subjected to regular waves
46  using OpenFOAM.
47  Coastal Engineering, 125, 81-94.
48 
49  Correction to turbulence viscosity:
50  Larsen, B.E. and Fuhrman, D.R. (2018).
51  On the over-production of turbulence beneath surface waves in
52  Reynolds-averaged Navier-Stokes models
53  J. Fluid Mech, 853, 419-460
54  \endverbatim
55 
56 Usage
57  Example usage:
58 
59  \verbatim
60  multiphaseStabilizedTurbulence1
61  {
62  type multiphaseStabilizedTurbulence;
63  active yes;
64 
65  multiphaseStabilizedTurbulenceCoeffs
66  {
67  // Optional coefficients
68  lambda2 0.1; // A value of 0 sets the nut correction to 0
69  Cmu 0.09; // from k-epsilon model
70  C 1.51; // from k-omega model
71  alpha 1.36; // 1/Prt
72  }
73  }
74  \endverbatim
75 
76  The model C coefficient for the k-epsilon model equates to C2/C1 = 1.33;
77  the (default) value of 1.51 comes from the k-omega model and is more
78  conservative.
79 
80 SourceFiles
81  multiphaseStabilizedTurbulence.C
82 
83 \*---------------------------------------------------------------------------*/
84 
85 #ifndef fv_multiphaseStabilizedTurbulence_H
86 #define fv_multiphaseStabilizedTurbulence_H
87 
88 #include "fvOption.H"
89 #include "dimensionedScalar.H"
90 
91 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
92 
93 namespace Foam
94 {
95 namespace fv
96 {
97 
98 /*---------------------------------------------------------------------------*\
99  Class multiphaseStabilizedTurbulence Declaration
100 \*---------------------------------------------------------------------------*/
101 
103 :
104  public option
105 {
106  // Private data
107 
108  //- Name of density field
109  const word rhoName_;
110 
111 
112  // Model coefficients
113 
114  //- k-epsilon model Cmu coefficient
115  dimensionedScalar Cmu_;
116 
117  //- Model coefficient
118  // For k-epsilon models this equates to C2/C1 = 1.33 and for
119  // k-omega = 1.51. Here the default is the more conservative 1.51
121 
122  //- lambda2 coefficient; default = 0.1
123  dimensionedScalar lambda2_;
124 
125  //- Buoyancy coefficient
126  dimensionedScalar alpha_;
127 
128 
129  // Private Member Functions
130 
131  //- No copy construct
133  (
135  ) = delete;
136 
137  //- No copy assignment
138  void operator=(const multiphaseStabilizedTurbulence&) = delete;
139 
140 
141 public:
142 
143  //- Runtime type information
144  TypeName("multiphaseStabilizedTurbulence");
145 
146 
147  // Constructors
148 
149  //- Construct from explicit source name and mesh
151  (
152  const word& sourceName,
153  const word& modelType,
154  const dictionary& dict,
155  const fvMesh& mesh
156  );
157 
158 
159  // Member Functions
160 
161  //- Add explicit contribution to compressible k equation
162  virtual void addSup
163  (
164  const volScalarField& rho,
165  fvMatrix<scalar>& eqn,
166  const label fieldi
167  );
168 
169  //- Add explicit contribution to incompressible k equation
170  virtual void addSup
171  (
172  fvMatrix<scalar>& eqn,
173  const label fieldi
174  );
175 
176  //- Correct the turbulence viscosity
177  virtual void correct(volScalarField& field);
178 
179  //- Read source dictionary
180  virtual bool read(const dictionary& dict)
181  {
182  return true;
183  }
184 };
185 
186 
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 
189 } // End namespace fv
190 } // End namespace Foam
191 
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 
194 #endif
195 
196 // ************************************************************************* //
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
Foam::fv::multiphaseStabilizedTurbulence
Applies corrections to the turbulence kinetic energy equation and turbulence viscosity field for inco...
Definition: multiphaseStabilizedTurbulence.H:101
Foam::fv::multiphaseStabilizedTurbulence::TypeName
TypeName("multiphaseStabilizedTurbulence")
Runtime type information.
rho
rho
Definition: readInitialConditions.H:88
Foam::fv::multiphaseStabilizedTurbulence::read
virtual bool read(const dictionary &dict)
Read source dictionary.
Definition: multiphaseStabilizedTurbulence.H:179
Foam::fv::option
Finite volume options abstract base class. Provides a base set of controls, e.g.:
Definition: fvOption.H:69
field
rDeltaTY field()
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
Foam::fv::multiphaseStabilizedTurbulence::correct
virtual void correct(volScalarField &field)
Correct the turbulence viscosity.
Definition: multiphaseStabilizedTurbulence.C:197
Foam::dimensioned< scalar >
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:84
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
fv
labelList fv(nPoints)
dimensionedScalar.H
Foam::fv::multiphaseStabilizedTurbulence::addSup
virtual void addSup(const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
Add explicit contribution to compressible k equation.
Definition: multiphaseStabilizedTurbulence.C:134
fvOption.H
Foam::fv::option::mesh
const fvMesh & mesh() const
Return const access to the mesh database.
Definition: fvOptionI.H:36
Foam::fvMatrix
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvPatchField.H:76
Foam::GeometricField< scalar, fvPatchField, volMesh >