FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

SchnerrSauer.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   ========Merkle=                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::phaseChangeTwoPhaseMixtures::SchnerrSauer
00026 
00027 Description
00028     SchnerrSauer cavitation model.
00029 
00030     Reference:
00031     @verbatim
00032         Schnerr, G. H., And Sauer, J.,
00033         "Physical and Numerical Modeling of Unsteady Cavitation Dynamics",
00034         Proc. 4th International Conference on Multiphase Flow,
00035         New Orleans, U.S.A., 2001.
00036     @endverbatim
00037 
00038 SourceFiles
00039     SchnerrSauer.C
00040 
00041 \*--------------------------------------------------------------------*/
00042 
00043 #ifndef SchnerrSauer_H
00044 #define SchnerrSauer_H
00045 
00046 #include "../phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H"
00047 
00048 // * * * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * //
00049 
00050 namespace Foam
00051 {
00052 namespace phaseChangeTwoPhaseMixtures
00053 {
00054 
00055 /*--------------------------------------------------------------------*\
00056                               Class SchnerrSauer
00057 \*--------------------------------------------------------------------*/
00058 
00059 class SchnerrSauer
00060 :
00061     public phaseChangeTwoPhaseMixture
00062 {
00063     // Private data
00064 
00065         //- Bubble number density
00066         dimensionedScalar n_;
00067 
00068         //- Nucleation site diameter
00069         dimensionedScalar dNuc_;
00070 
00071         //- Condensation rate coefficient
00072         dimensionedScalar Cc_;
00073 
00074         //- Vapourisation rate coefficient
00075         dimensionedScalar Cv_;
00076 
00077         dimensionedScalar p0_;
00078 
00079         //- Nucleation site volume-fraction
00080         dimensionedScalar alphaNuc() const;
00081 
00082         //- Reciprocal bubble radius
00083         tmp<volScalarField>rRb(const volScalarField& limitedAlpha1) const;
00084 
00085         //- Part of the condensation and vapourisation rates
00086         tmp<volScalarField> pCoeff(const volScalarField& p) const;
00087 
00088 
00089 public:
00090 
00091     //- Runtime type information
00092     TypeName("SchnerrSauer");
00093 
00094 
00095     // Constructors
00096 
00097         //- construct from components
00098         SchnerrSauer
00099         (
00100             const volVectorField& U,
00101             const surfaceScalarField& phi,
00102             const word& alpha1Name = "alpha1"
00103         );
00104 
00105 
00106     // Destructor
00107 
00108         virtual ~SchnerrSauer()
00109         {}
00110 
00111 
00112     // Member Functions
00113 
00114         //- Return the mass condensation and vaporisation rates as a
00115         //  coefficient to multiply (1 - alphal) for the condensation rate
00116         //  and a coefficient to multiply  alphal for the vaporisation rate
00117         virtual Pair<tmp<volScalarField> > mDotAlphal() const;
00118 
00119         //- Return the mass condensation and vaporisation rates as an
00120         //  explicit term for the condensation rate and a coefficient to
00121         //  multiply (p - pSat) for the vaporisation rate
00122         virtual Pair<tmp<volScalarField> > mDotP() const;
00123 
00124         //- Correct the SchnerrSauer phaseChange model
00125         virtual void correct();
00126 
00127         //- Read the transportProperties dictionary and update
00128         virtual bool read();
00129 };
00130 
00131 
00132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00133 
00134 } // End namespace phaseChangeTwoPhaseMixtures
00135 } // End namespace Foam
00136 
00137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00138 
00139 #endif
00140 
00141 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines