BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / lagrangian / spray / submodels / BreakupModel / TAB / TAB.H
blob972ed7c2286e7d3d6c476a2a8a3b4e7c3f8fc831
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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::TAB
27 Description
28     The TAB Method for Numerical Calculation of Spray Droplet Breakup.
30     @verbatim
31         O'Rourke, P.J. and Amsden, A.A.,
32         "The TAB Method for Numerical Calculation of Spray Droplet Breakup,"
33         1987 SAE International Fuels and Lubricants Meeting and Exposition,
34         Toronto, Ontario, November 2-5, 1987,
35         Los Alamos National Laboratory document LA-UR-87-2105;
36         SAE Technical Paper Series, Paper 872089.
37     @endverbatim
39     This implementation follows the kiva version.
41 See Also
42     The Enhanced %TAB model - ETAB
44 \*---------------------------------------------------------------------------*/
46 #ifndef TAB_H
47 #define TAB_H
49 #include "BreakupModel.H"
50 #include "FixedList.H"
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 namespace Foam
56 /*---------------------------------------------------------------------------*\
57                        Class TAB Declaration
58 \*---------------------------------------------------------------------------*/
60 template<class CloudType>
61 class TAB
63     public BreakupModel<CloudType>
65 public:
67     //- Enumeration for the SMD brekup calculation
68     enum SMDMethods
69     {
70         method1,
71         method2
72     };
75 private:
77     // Private data
79         // Inverse function approximation of the Rossin-Rammler Distribution
80         // used when calculating the droplet size after breakup
81         FixedList<scalar, 100> rrd_;
84         // Model constants
86             scalar Cmu_;
87             scalar Comega_;
88             scalar WeCrit_;
89             word SMDCalcMethod_;
90             SMDMethods SMDMethod_;
93 public:
95     //- Runtime type information
96     TypeName("TAB");
99     // Constructors
101         //- Construct from dictionary
102         TAB(const dictionary& dict, CloudType& owner);
104         //- Construct copy
105         TAB(const TAB<CloudType>& im);
107         //- Construct and return a clone
108         virtual autoPtr<BreakupModel<CloudType> > clone() const
109         {
110             return autoPtr<BreakupModel<CloudType> >
111             (
112                 new TAB<CloudType>(*this)
113             );
114         }
117     //- Destructor
118     virtual ~TAB();
121     // Member Functions
123         //- update the parcel diameter
124         virtual bool update
125         (
126             const scalar dt,
127             const vector& g,
128             scalar& d,
129             scalar& tc,
130             scalar& ms,
131             scalar& nParticle,
132             scalar& KHindex,
133             scalar& y,
134             scalar& yDot,
135             const scalar d0,
136             const scalar rho,
137             const scalar mu,
138             const scalar sigma,
139             const vector& U,
140             const scalar rhoc,
141             const scalar muc,
142             const vector& Urel,
143             const scalar Urmag,
144             const scalar tMom,
145             const scalar averageParcelMass,
146             scalar& dChild,
147             scalar& massChild,
148             cachedRandom& rndGen
149     ) const;
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 #ifdef NoRepository
160 #   include "TAB.C"
161 #endif
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 #endif
167 // ************************************************************************* //