SchnerrSauer.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  Copyright (C) 2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer
29 
30 Description
31  SchnerrSauer cavitation model.
32 
33  Reference:
34  \verbatim
35  Schnerr, G. H., And Sauer, J.,
36  "Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
37  Proc. 4th International Conference on Multiphase Flow,
38  New Orleans, U.S.A., 2001.
39  \endverbatim
40 
41 SourceFiles
42  SchnerrSauer.C
43 
44 \*--------------------------------------------------------------------*/
45 
46 #ifndef SchnerrSauer_H
47 #define SchnerrSauer_H
48 
50 
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 
53 namespace Foam
54 {
55 namespace phaseChangeTwoPhaseMixtures
56 {
57 
58 /*--------------------------------------------------------------------*\
59  Class SchnerrSauer
60 \*--------------------------------------------------------------------*/
61 
62 class SchnerrSauer
63 :
65 {
66  // Private data
67 
68  //- Bubble number density
70 
71  //- Nucleation site diameter
72  dimensionedScalar dNuc_;
73 
74  //- Condensation rate coefficient
76 
77  //- Vapourisation rate coefficient
79 
81 
82  //- Nucleation site volume-fraction
83  dimensionedScalar alphaNuc() const;
84 
85  //- Reciprocal bubble radius
86  tmp<volScalarField>rRb(const volScalarField& limitedAlpha1) const;
87 
88  //- Part of the condensation and vapourisation rates
89  tmp<volScalarField> pCoeff(const volScalarField& p) const;
90 
91 
92 public:
93 
94  //- Runtime type information
95  TypeName("SchnerrSauer");
96 
97 
98  // Constructors
99 
100  //- Construct from components
102  (
103  const volVectorField& U,
104  const surfaceScalarField& phi
105  );
106 
107 
108  //- Destructor
109  virtual ~SchnerrSauer() = default;
110 
111 
112  // Member Functions
113 
114  //- Return the mass condensation and vaporisation rates as a
115  // coefficient to multiply (1 - alphal) for the condensation rate
116  // and a coefficient to multiply alphal for the vaporisation rate
117  virtual Pair<tmp<volScalarField>> mDotAlphal() const;
118 
119  //- Return the mass condensation and vaporisation rates as coefficients
120  // to multiply (p - pSat)
121  virtual Pair<tmp<volScalarField>> mDotP() const;
122 
123  //- Correct the SchnerrSauer phaseChange model
124  virtual void correct();
125 
126  //- Read the transportProperties dictionary and update
127  virtual bool read();
128 };
129 
130 
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 
133 } // End namespace phaseChangeTwoPhaseMixtures
134 } // End namespace Foam
135 
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 
138 #endif
139 
140 // ************************************************************************* //
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::SchnerrSauer
SchnerrSauer(const volVectorField &U, const surfaceScalarField &phi)
Construct from components.
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::TypeName
TypeName("SchnerrSauer")
Runtime type information.
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::read
virtual bool read()
Read the transportProperties dictionary and update.
Foam::dimensioned< scalar >
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::mDotP
virtual Pair< tmp< volScalarField > > mDotP() const
Return the mass condensation and vaporisation rates as coefficients.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer
SchnerrSauer cavitation model.
Definition: SchnerrSauer.H:61
Foam::phaseChangeTwoPhaseMixture
Definition: phaseChangeTwoPhaseMixture.H:57
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::correct
virtual void correct()
Correct the SchnerrSauer phaseChange model.
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::~SchnerrSauer
virtual ~SchnerrSauer()=default
Destructor.
Foam::Pair
An ordered pair of two objects of type <T> with first() and second() elements.
Definition: Pair.H:54
phaseChangeTwoPhaseMixture.H
Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer::mDotAlphal
virtual Pair< tmp< volScalarField > > mDotAlphal() const
Return the mass condensation and vaporisation rates as a.
Foam::incompressibleTwoPhaseMixture::U
const volVectorField & U() const
Return const-access to the mixture velocity.
Definition: incompressibleTwoPhaseMixture.H:129
Foam::GeometricField< scalar, fvPatchField, volMesh >