initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / applications / solvers / multiphase / interPhaseChangeFoam / phaseChangeTwoPhaseMixtures / SchnerrSauer / SchnerrSauer.H
blob0544524ffc6224d7a7b553e808553feb8a058864
1 /*---------------------------------------------------------------------------*\
2   ========Merkle=                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 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 Generac License as published by the
13     Free Software Foundation; either  2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the ho it will be useful, but WITHOUT
17     ANY WARRANTY; without even the imarranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.he GNU General Public License
19     for more details.
21     You should have received a copy oNU General Public License
22     along with OpenFOAM; if not, write Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floorn, MA 02110-1301 USA
25 Class
26     Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer
28 Description
29     SchnerrSauer cavitation model.
31     Reference:
32     @verbatim
33         Schnerr, G. H., And Sauer, J.,
34         "Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
35         Proc. 4th International Conference on Multiphase Flow,
36         New Orleans, U.S.A., 2001.
37     @verbatim
39 SourceFiles
40     SchnerrSauer.C
42 \*--------------------------------------------------------------------*/
44 #ifndef SchnerrSauer_H
45 #define SchnerrSauer_H
47 #include "phaseChangeTwoPhaseMixture.H"
49 // * * * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * //
51 namespace Foam
53 namespace phaseChangeTwoPhaseMixtures
56 /*--------------------------------------------------------------------*\
57                               Class SchnerrSauer
58 \*--------------------------------------------------------------------*/
60 class SchnerrSauer
62     public phaseChangeTwoPhaseMixture
64     // Private data
66         //- Bubble number density
67         dimensionedScalar n_;
69         //- Nucleation site diameter
70         dimensionedScalar dNuc_;
72         //- Condensation rate coefficient
73         dimensionedScalar Cc_;
75         //- Vapourisation rate coefficient
76         dimensionedScalar Cv_;
78         dimensionedScalar p0_;
80         //- Nucleation site volume-fraction
81         dimensionedScalar alphaNuc() const;
83         //- Reciprocal bubble radius
84         tmp<volScalarField>rRb(const volScalarField& limitedAlpha1) const;
86         //- Part of the condensation and vapourisation rates
87         tmp<volScalarField> pCoeff(const volScalarField& p) const;
90 public:
92     //- Runtime type information
93     TypeName("SchnerrSauer");
96     // Constructors
98         //- construct from components
99         SchnerrSauer
100         (
101             const volVectorField& U,
102             const surfaceScalarField& phi,
103             const word& alpha1Name = "alpha1"
104         );
107     // Destructor
109         virtual ~SchnerrSauer()
110         {}
113     // Member Functions
115         //- Return the mass condensation and vaporisation rates as a
116         //  coefficient to multiply (1 - alphal) for the condensation rate
117         //  and a coefficient to multiply  alphal for the vaporisation rate
118         virtual Pair<tmp<volScalarField> > mDotAlphal() const;
120         //- Return the mass condensation and vaporisation rates as an
121         //  explicit term for the condensation rate and a coefficient to
122         //  multiply (p - pSat) for the vaporisation rate
123         virtual Pair<tmp<volScalarField> > mDotP() const;
125         //- Correct the SchnerrSauer phaseChange model
126         virtual void correct();
128         //- Read the transportProperties dictionary and update
129         virtual bool read();
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace phaseChangeTwoPhaseMixtures
136 } // End namespace Foam
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 #endif
142 // ************************************************************************* //