mixtureKEpsilon.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 | Copyright (C) 2013-2015 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::RASModels::mixtureKEpsilon
26 
27 Group
28  grpRASTurbulence
29 
30 Description
31  Mixture k-epsilon turbulence model for two-phase gas-liquid systems
32 
33  The basic structure of the model is based on:
34  \verbatim
35  Behzadi, A., Issa, R. I., & Rusche, H. (2004).
36  Modelling of dispersed bubble and droplet flow at high phase fractions.
37  Chemical Engineering Science, 59(4), 759-770.
38  \endverbatim
39 
40  but an effective density for the gas is used in the averaging and an
41  alternative model for bubble-generated turbulence from:
42  \verbatim
43  Lahey Jr, R. T. (2005).
44  The simulation of multidimensional multiphase flows.
45  Nuclear Engineering and Design, 235(10), 1043-1060.
46  \endverbatim
47 
48  The default model coefficients are
49  \verbatim
50  mixtureKEpsilonCoeffs
51  {
52  Cmu 0.09;
53  C1 1.44;
54  C2 1.92;
55  C3 C2;
56  sigmak 1.0;
57  sigmaEps 1.3;
58  }
59  \endverbatim
60 
61 SourceFiles
62  mixtureKEpsilon.C
63 
64 \*---------------------------------------------------------------------------*/
65 
66 #ifndef mixtureKEpsilon_H
67 #define mixtureKEpsilon_H
68 
69 #include "RASModel.H"
70 #include "eddyViscosity.H"
71 
72 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
73 
74 namespace Foam
75 {
76 namespace RASModels
77 {
78 
79 /*---------------------------------------------------------------------------*\
80  Class mixtureKEpsilon Declaration
81 \*---------------------------------------------------------------------------*/
82 
83 template<class BasicTurbulenceModel>
84 class mixtureKEpsilon
85 :
86  public eddyViscosity<RASModel<BasicTurbulenceModel> >
87 {
88  // Private data
89 
91 
92 
93  // Private Member Functions
94 
95  // Disallow default bitwise copy construct and assignment
98 
99  //- Return the turbulence model for the other phase
101 
102 
103 protected:
104 
105  // Protected data
106 
107  // Model coefficients
108 
116 
117  // Fields
118 
121 
122  // Mixture fields
123 
128 
129 
130  // Protected Member Functions
131 
133 
134  void correctInletOutlet
135  (
136  volScalarField& vsf,
137  const volScalarField& refVsf
138  ) const;
139 
140  void initMixtureFields();
141 
142  virtual void correctNut();
143 
144  tmp<volScalarField> Ct2() const;
145 
148  tmp<volScalarField> rhom() const;
149 
151  (
152  const volScalarField& fc,
153  const volScalarField& fd
154  ) const;
155 
157  (
158  const volScalarField& fc,
159  const volScalarField& fd
160  ) const;
161 
163  (
164  const surfaceScalarField& fc,
165  const surfaceScalarField& fd
166  ) const;
167 
169  virtual tmp<fvScalarMatrix> kSource() const;
170  virtual tmp<fvScalarMatrix> epsilonSource() const;
171 
172  //- Return the effective diffusivity for k
173  tmp<volScalarField> DkEff(const volScalarField& nutm) const
174  {
175  return tmp<volScalarField>
176  (
177  new volScalarField
178  (
179  "DkEff",
180  nutm/sigmak_
181  )
182  );
183  }
184 
185  //- Return the effective diffusivity for epsilon
187  {
188  return tmp<volScalarField>
189  (
190  new volScalarField
191  (
192  "DepsilonEff",
193  nutm/sigmaEps_
194  )
195  );
196  }
197 
198 public:
199 
200  typedef typename BasicTurbulenceModel::alphaField alphaField;
201  typedef typename BasicTurbulenceModel::rhoField rhoField;
202  typedef typename BasicTurbulenceModel::transportModel transportModel;
203 
204 
205  //- Runtime type information
206  TypeName("mixtureKEpsilon");
207 
208 
209  // Constructors
210 
211  //- Construct from components
213  (
214  const alphaField& alpha,
215  const rhoField& rho,
216  const volVectorField& U,
217  const surfaceScalarField& alphaRhoPhi,
218  const surfaceScalarField& phi,
219  const transportModel& transport,
220  const word& propertiesName = turbulenceModel::propertiesName,
221  const word& type = typeName
222  );
223 
224 
225  //- Destructor
226  virtual ~mixtureKEpsilon()
227  {}
228 
229 
230  // Member Functions
231 
232  //- Re-read model coefficients if they have changed
233  virtual bool read();
234 
235  //- Return the turbulence kinetic energy
236  virtual tmp<volScalarField> k() const
237  {
238  return k_;
239  }
240 
241  //- Return the turbulence kinetic energy dissipation rate
242  virtual tmp<volScalarField> epsilon() const
243  {
244  return epsilon_;
245  }
246 
247  //- Solve the turbulence equations and correct the turbulence viscosity
248  virtual void correct();
249 };
250 
251 
252 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
253 
254 } // End namespace RASModels
255 } // End namespace Foam
256 
257 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
258 
259 #ifdef NoRepository
260 # include "mixtureKEpsilon.C"
261 #endif
262 
263 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
264 
265 #endif
266 
267 // ************************************************************************* //
Foam::RASModels::mixtureKEpsilon::mixFlux
tmp< surfaceScalarField > mixFlux(const surfaceScalarField &fc, const surfaceScalarField &fd) const
Definition: mixtureKEpsilon.C:461
Foam::RASModels::mixtureKEpsilon::mix
tmp< volScalarField > mix(const volScalarField &fc, const volScalarField &fd) const
Definition: mixtureKEpsilon.C:431
Foam::RASModels::mixtureKEpsilon::operator=
mixtureKEpsilon & operator=(const mixtureKEpsilon &)
Foam::RASModels::mixtureKEpsilon::rhoField
BasicTurbulenceModel::rhoField rhoField
Definition: mixtureKEpsilon.H:200
Foam::RASModels::mixtureKEpsilon::mixU
tmp< volScalarField > mixU(const volScalarField &fc, const volScalarField &fd) const
Definition: mixtureKEpsilon.C:445
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::RASModels::mixtureKEpsilon::km_
autoPtr< volScalarField > km_
Definition: mixtureKEpsilon.H:125
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:118
Foam::RASModels::mixtureKEpsilon::initMixtureFields
void initMixtureFields()
Definition: mixtureKEpsilon.C:221
Foam::RASModels::mixtureKEpsilon::correctInletOutlet
void correctInletOutlet(volScalarField &vsf, const volScalarField &refVsf) const
Definition: mixtureKEpsilon.C:194
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::constant::atomic::alpha
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Definition: readThermalProperties.H:216
Foam::RASModels::mixtureKEpsilon::epsilonBoundaryTypes
wordList epsilonBoundaryTypes(const volScalarField &epsilon) const
Definition: mixtureKEpsilon.C:172
Foam::RASModels::mixtureKEpsilon::bubbleG
tmp< volScalarField > bubbleG() const
Definition: mixtureKEpsilon.C:482
Foam::RASModels::mixtureKEpsilon::correct
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
Definition: mixtureKEpsilon.C:532
Foam::turbulenceModel::propertiesName
static const word propertiesName
Default name of the turbulence properties dictionary.
Definition: turbulenceModel.H:97
Foam::RASModels::mixtureKEpsilon::Cmu_
dimensionedScalar Cmu_
Definition: mixtureKEpsilon.H:108
Foam::RASModels::mixtureKEpsilon::k
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
Definition: mixtureKEpsilon.H:235
Foam::RASModels::mixtureKEpsilon::correctNut
virtual void correctNut()
Definition: mixtureKEpsilon.C:334
Foam::RASModels::mixtureKEpsilon::transportModel
BasicTurbulenceModel::transportModel transportModel
Definition: mixtureKEpsilon.H:201
Foam::RASModels::mixtureKEpsilon::epsilonSource
virtual tmp< fvScalarMatrix > epsilonSource() const
Definition: mixtureKEpsilon.C:525
U
U
Definition: pEqn.H:46
Foam::RASModels::mixtureKEpsilon::rhom
tmp< volScalarField > rhom() const
Definition: mixtureKEpsilon.C:420
eddyViscosity.H
Foam::RASModels::mixtureKEpsilon::epsilonm_
autoPtr< volScalarField > epsilonm_
Definition: mixtureKEpsilon.H:126
Foam::RASModels::mixtureKEpsilon::C1_
dimensionedScalar C1_
Definition: mixtureKEpsilon.H:109
Foam::RASModels::mixtureKEpsilon::liquidTurbulence
mixtureKEpsilon< BasicTurbulenceModel > & liquidTurbulence() const
Return the turbulence model for the other phase.
Definition: mixtureKEpsilon.C:343
Foam::RASModels::mixtureKEpsilon
Mixture k-epsilon turbulence model for two-phase gas-liquid systems.
Definition: mixtureKEpsilon.H:83
Foam::RASModels::mixtureKEpsilon::k_
volScalarField k_
Definition: mixtureKEpsilon.H:118
Foam::RASModels::mixtureKEpsilon::Ct2_
autoPtr< volScalarField > Ct2_
Definition: mixtureKEpsilon.H:123
Foam::RASModels::mixtureKEpsilon::~mixtureKEpsilon
virtual ~mixtureKEpsilon()
Destructor.
Definition: mixtureKEpsilon.H:225
Foam::RASModels::mixtureKEpsilon::rholEff
tmp< volScalarField > rholEff() const
Definition: mixtureKEpsilon.C:400
Foam::RASModels::mixtureKEpsilon::sigmak_
dimensionedScalar sigmak_
Definition: mixtureKEpsilon.H:113
Foam::RASModels::mixtureKEpsilon::DepsilonEff
tmp< volScalarField > DepsilonEff(const volScalarField &nutm) const
Return the effective diffusivity for epsilon.
Definition: mixtureKEpsilon.H:185
RASModel.H
Foam::dimensioned
Generic dimensioned Type class.
Definition: dimensionedScalarFwd.H:41
Foam::RASModels::mixtureKEpsilon::Ct2
tmp< volScalarField > Ct2() const
Definition: mixtureKEpsilon.C:373
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::RASModels::mixtureKEpsilon::rhom_
autoPtr< volScalarField > rhom_
Definition: mixtureKEpsilon.H:124
Foam::RASModels::mixtureKEpsilon::liquidTurbulencePtr_
mixtureKEpsilon< BasicTurbulenceModel > * liquidTurbulencePtr_
Definition: mixtureKEpsilon.H:89
Foam::RASModels::mixtureKEpsilon::read
virtual bool read()
Re-read model coefficients if they have changed.
Definition: mixtureKEpsilon.C:312
rho
rho
Definition: pEqn.H:3
Foam::autoPtr
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:117
Foam::RASModels::mixtureKEpsilon::epsilon
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
Definition: mixtureKEpsilon.H:241
Foam::RASModels::mixtureKEpsilon::rhogEff
tmp< volScalarField > rhogEff() const
Definition: mixtureKEpsilon.C:409
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::RASModels::mixtureKEpsilon::epsilon_
volScalarField epsilon_
Definition: mixtureKEpsilon.H:119
Foam::RASModels::mixtureKEpsilon::C2_
dimensionedScalar C2_
Definition: mixtureKEpsilon.H:110
Foam::RASModels::mixtureKEpsilon::DkEff
tmp< volScalarField > DkEff(const volScalarField &nutm) const
Return the effective diffusivity for k.
Definition: mixtureKEpsilon.H:172
Foam::RASModels::mixtureKEpsilon::kSource
virtual tmp< fvScalarMatrix > kSource() const
Definition: mixtureKEpsilon.C:518
Foam::eddyViscosity
Eddy viscosity turbulence model base class.
Definition: eddyViscosity.H:52
Foam::RASModels::mixtureKEpsilon::C3_
dimensionedScalar C3_
Definition: mixtureKEpsilon.H:111
Foam::RASModels::mixtureKEpsilon::alphaField
BasicTurbulenceModel::alphaField alphaField
Definition: mixtureKEpsilon.H:199
Foam::type
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:588
Foam::GeometricField
Generic GeometricField class.
Definition: surfaceFieldsFwd.H:52
Foam::RASModels::mixtureKEpsilon::sigmaEps_
dimensionedScalar sigmaEps_
Definition: mixtureKEpsilon.H:114
mixtureKEpsilon.C
Foam::RASModels::mixtureKEpsilon::TypeName
TypeName("mixtureKEpsilon")
Runtime type information.
Foam::RASModels::mixtureKEpsilon::Cp_
dimensionedScalar Cp_
Definition: mixtureKEpsilon.H:112
Foam::RASModels::mixtureKEpsilon::mixtureKEpsilon
mixtureKEpsilon(const mixtureKEpsilon &)