SootLib
Loading...
Searching...
No Matches
coagulationModel_HM.cc
Go to the documentation of this file.
2#include "sootDefs.h"
3
4using namespace std;
5using namespace soot;
6
21
23 double m1,
24 double m2) const {
25
26 if (m1 <= mmin || m2 <= mmin) return 0.0;
27
28 double d1 = pow(6.*m1/(M_PI*rhoSoot), onethird);
29 double d2 = pow(6.*m1/(M_PI*rhoSoot), onethird);
30 double ds = d1 + d2;
31
32 //------------ free molecular rate
33
34 double mR = m1*m2/(m1+m2); // reduced mass
35 double K12_FM = eps_c * sqrt(M_PI*kb*state.T*0.5/mR) * ds*ds * FM_multiplier;
36
37 //------------ continuum rate
38
39 double mfp = state.getGasMeanFreePath();
40 double Kn1 = 2*mfp/d1;
41 double Kn2 = 2*mfp/d2;
42
43 double Cc1 = 1 + Kn1 * (1.257 + 0.4*exp(-1.1/Kn1)); // Seinfeld p. 372 eq. 9.34. This is for air at 298 K, 1 atm
44 double Cc2 = 1 + Kn2 * (1.257 + 0.4*exp(-1.1/Kn2)); // for D<<mfp_g, Cc = 1 + 1.657*Kn; Seinfeld p. 380: 10% error at Kn=1, 0% at Kn=0.01, 100
45
46 double K12_C = twothird*kb*state.T/state.muGas *(Cc1/d1 + Cc2/d2)*ds;
47
48 //------------ return harmonic mean
49
50 return K12_FM*K12_C / (K12_FM + K12_C);
51}
double getCoagulationSootRate(const state &state, double m1, double m2) const override
double FM_multiplier
multiply the FM rate by this (1.0 default, user set); make =9/2/eps_c for LL
double T
gas temperature (K)
Definition: state.h:23
double getGasMeanFreePath() const
Definition: state.h:52
double muGas
gas viscosity (kg/m*s)
Definition: state.h:27
Definition: sootDefs.h:11
const double kb
Boltzmann constant = Rg/Na: J/#*K.
Definition: sootDefs.h:16
const double rhoSoot
soot particle density
Definition: sootDefs.h:21
const double mmin
mass of a carbon atom (kg)
Definition: sootDefs.h:27
const double onethird
Definition: sootDefs.h:24
const double eps_c
coagulation constant/van der Waals enhancement factor: Harris and Kennedy CST 59:443-454 (1988) https...
Definition: sootDefs.h:19
const double twothird
Definition: sootDefs.h:25