Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / applications / solvers / multiphase / interPhaseChangeFoam / phaseChangeTwoPhaseMixtures / SchnerrSauer / SchnerrSauer.H
blobd0f680c887ae0b3c236a63740b5c947c44bdc8cf
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2011 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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.
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.
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/>.
24 Class
25     Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer
27 Description
28     SchnerrSauer cavitation model.
30     Reference:
31     \verbatim
32         Schnerr, G. H., And Sauer, J.,
33         "Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
34         Proc. 4th International Conference on Multiphase Flow,
35         New Orleans, U.S.A., 2001.
36     \endverbatim
38 SourceFiles
39     SchnerrSauer.C
41 \*--------------------------------------------------------------------*/
43 #ifndef SchnerrSauer_H
44 #define SchnerrSauer_H
46 #include "phaseChangeTwoPhaseMixture.H"
48 // * * * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * //
50 namespace Foam
52 namespace phaseChangeTwoPhaseMixtures
55 /*--------------------------------------------------------------------*\
56                               Class SchnerrSauer
57 \*--------------------------------------------------------------------*/
59 class SchnerrSauer
61     public phaseChangeTwoPhaseMixture
63     // Private data
65         //- Bubble number density
66         dimensionedScalar n_;
68         //- Nucleation site diameter
69         dimensionedScalar dNuc_;
71         //- Condensation rate coefficient
72         dimensionedScalar Cc_;
74         //- Vapourisation rate coefficient
75         dimensionedScalar Cv_;
77         dimensionedScalar p0_;
79         //- Nucleation site volume-fraction
80         dimensionedScalar alphaNuc() const;
82         //- Reciprocal bubble radius
83         tmp<volScalarField>rRb(const volScalarField& limitedAlpha1) const;
85         //- Part of the condensation and vapourisation rates
86         tmp<volScalarField> pCoeff(const volScalarField& p) const;
89 public:
91     //- Runtime type information
92     TypeName("SchnerrSauer");
95     // Constructors
97         //- construct from components
98         SchnerrSauer
99         (
100             const volVectorField& U,
101             const surfaceScalarField& phi,
102             const word& alpha1Name = "alpha1"
103         );
106     //- Destructor
107     virtual ~SchnerrSauer()
108     {}
111     // Member Functions
113         //- Return the mass condensation and vaporisation rates as a
114         //  coefficient to multiply (1 - alphal) for the condensation rate
115         //  and a coefficient to multiply  alphal for the vaporisation rate
116         virtual Pair<tmp<volScalarField> > mDotAlphal() const;
118         //- Return the mass condensation and vaporisation rates as an
119         //  explicit term for the condensation rate and a coefficient to
120         //  multiply (p - pSat) for the vaporisation rate
121         virtual Pair<tmp<volScalarField> > mDotP() const;
123         //- Correct the SchnerrSauer phaseChange model
124         virtual void correct();
126         //- Read the transportProperties dictionary and update
127         virtual bool read();
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 } // End namespace phaseChangeTwoPhaseMixtures
134 } // End namespace Foam
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 #endif
140 // ************************************************************************* //