TAB.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::TAB
26 
27 Description
28  The TAB Method for Numerical Calculation of Spray Droplet Breakup.
29 
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
38 
39  This implementation follows the kiva version.
40 
41 See also
42  The Enhanced %TAB model - ETAB
43 
44 \*---------------------------------------------------------------------------*/
45 
46 #ifndef TAB_H
47 #define TAB_H
48 
49 #include "BreakupModel.H"
50 #include "FixedList.H"
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 /*---------------------------------------------------------------------------*\
57  Class TAB Declaration
58 \*---------------------------------------------------------------------------*/
59 
60 template<class CloudType>
61 class TAB
62 :
63  public BreakupModel<CloudType>
64 {
65 public:
66 
67  //- Enumeration for the SMD breakup calculation
68  enum SMDMethods
69  {
70  method1,
72  };
73 
74 
75 private:
76 
77  // Private Data
78 
79  // Inverse function approximation of the Rossin-Rammler Distribution
80  // used when calculating the droplet size after breakup
82 
83 
84  // Model constants
85 
86  word SMDCalcMethod_;
87  SMDMethods SMDMethod_;
88 
89 
90 public:
91 
92  //- Runtime type information
93  TypeName("TAB");
94 
95 
96  // Constructors
97 
98  //- Construct from dictionary
99  TAB(const dictionary& dict, CloudType& owner);
100 
101  //- Construct copy
102  TAB(const TAB<CloudType>& im);
103 
104  //- Construct and return a clone
105  virtual autoPtr<BreakupModel<CloudType>> clone() const
106  {
108  (
109  new TAB<CloudType>(*this)
110  );
111  }
112 
113 
114  //- Destructor
115  virtual ~TAB();
116 
117 
118  // Member Functions
119 
120  //- Update the parcel diameter
121  virtual bool update
122  (
123  const scalar dt,
124  const vector& g,
125  scalar& d,
126  scalar& tc,
127  scalar& ms,
128  scalar& nParticle,
129  scalar& KHindex,
130  scalar& y,
131  scalar& yDot,
132  const scalar d0,
133  const scalar rho,
134  const scalar mu,
135  const scalar sigma,
136  const vector& U,
137  const scalar rhoc,
138  const scalar muc,
139  const vector& Urel,
140  const scalar Urmag,
141  const scalar tMom,
142  const label injectori,
143  scalar& dChild,
144  scalar& massChild
145  );
146 };
147 
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 } // End namespace Foam
152 
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 
155 #ifdef NoRepository
156  #include "TAB.C"
157 #endif
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 #endif
162 
163 // ************************************************************************* //
scalar y
Templated break-up model class.
Definition: BreakupModel.H:55
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:80
The TAB Method for Numerical Calculation of Spray Droplet Breakup.
Definition: TAB.H:63
TypeName("TAB")
Runtime type information.
virtual bool update(const scalar dt, const vector &g, scalar &d, scalar &tc, scalar &ms, scalar &nParticle, scalar &KHindex, scalar &y, scalar &yDot, const scalar d0, const scalar rho, const scalar mu, const scalar sigma, const vector &U, const scalar rhoc, const scalar muc, const vector &Urel, const scalar Urmag, const scalar tMom, const label injectori, scalar &dChild, scalar &massChild)
Update the parcel diameter.
Definition: TAB.C:89
virtual ~TAB()
Destructor.
Definition: TAB.C:81
TAB(const dictionary &dict, CloudType &owner)
Construct from dictionary.
Definition: TAB.C:32
SMDMethods
Enumeration for the SMD breakup calculation.
Definition: TAB.H:68
@ method1
Definition: TAB.H:69
@ method2
Definition: TAB.H:70
virtual autoPtr< BreakupModel< CloudType > > clone() const
Construct and return a clone.
Definition: TAB.H:104
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:110
A class for handling words, derived from string.
Definition: word.H:62
U
Definition: pEqn.H:72
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar mu
Atomic mass unit.
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59