SootLib
Loading...
Searching...
No Matches
state.h
Go to the documentation of this file.
1#pragma once
2
3#include "sootDefs.h"
4
5#include <vector>
6
7namespace soot {
8
16
17class state {
18
20
21 public:
22
23 double T = 0;
24 double P = 0;
25 double rhoGas = 0;
26 double MWGas = 0;
27 double muGas = 0;
28 std::vector<double> yGas;
29 std::vector<double> yPah;
30
31 int nsoot;
32 std::vector<double> sootVar;
33 std::vector<double> absc;
34 std::vector<double> wts;
35 std::vector<double> sootScales;
36 double cMin = 100;
37
38
40
41 void setState(double T_, double P_, double rhoGas_, double muGas_,
42 std::vector<double> yGas_, std::vector<double> yPAH_,
43 std::vector<double> sootVar_, int nsoot_, double cMin_ = 100);
44
46 double getGasSpC(gasSp sp) const { return rhoGas * yGas[(int)sp] / gasSpMW[(int)sp]; }
47
49 double getGasSpP(gasSp sp) const { return yGas[(int)sp] * MWGas / gasSpMW[(int)sp] * P; }
50
52 double getGasMeanFreePath() const { return muGas/rhoGas*sqrt(M_PI*MWGas/(2.0*Rg*T)); }
53
55 double get_pahSpC(pahSp sp) const { return rhoGas * yPah[(int)sp] / pahSpMW[(int)sp]; }
56
58 double get_pahSpP(pahSp sp) const { return yPah[(int)sp] * MWGas / pahSpMW[(int)sp] * P; }
59
61 void setSootScales(std::vector<double> &sootScales_) { sootScales = sootScales_; }
62
64
65 state(size_t nsoot_=0) :
66 nsoot(nsoot_),
67 sootVar(std::vector<double>( nsoot_, 0.0)),
68 sootScales(std::vector<double>(nsoot_, 1.0)),
69 absc(std::vector<double>( nsoot_/2, 0.0)),
70 wts(std::vector<double>( nsoot_/2, 0.0)),
71 yGas(std::vector<double>( (int)gasSp::size, 0.0)),
72 yPah(std::vector<double>( (int)pahSp::size, 0.0)) { }
73 ~state() = default;
74
75};
76} // namespace soot
std::vector< double > wts
moment weights
Definition: state.h:34
double rhoGas
gas density (kg/m3)
Definition: state.h:25
std::vector< double > yPah
gas PAH species mass fractions
Definition: state.h:29
double get_pahSpP(pahSp sp) const
Definition: state.h:58
double T
gas temperature (K)
Definition: state.h:23
state(size_t nsoot_=0)
Definition: state.h:65
double getGasSpP(gasSp sp) const
Definition: state.h:49
void setState(double T_, double P_, double rhoGas_, double muGas_, std::vector< double > yGas_, std::vector< double > yPAH_, std::vector< double > sootVar_, int nsoot_, double cMin_=100)
Definition: state.cc:36
double getGasSpC(gasSp sp) const
Definition: state.h:46
double MWGas
gas mean molecular weight (kg/kmol)
Definition: state.h:26
double P
gas pressure (Pa)
Definition: state.h:24
std::vector< double > sootVar
soot variables (moments or # in sections>
Definition: state.h:32
double getGasMeanFreePath() const
Definition: state.h:52
double muGas
gas viscosity (kg/m*s)
Definition: state.h:27
int nsoot
# of soot variables
Definition: state.h:31
void setSootScales(std::vector< double > &sootScales_)
Definition: state.h:61
double get_pahSpC(pahSp sp) const
Definition: state.h:55
~state()=default
std::vector< double > yGas
gas species mass fractions
Definition: state.h:28
double cMin
soot min num carbon atoms (dynamic for PAH nucleation)
Definition: state.h:36
std::vector< double > absc
moment abscissas
Definition: state.h:33
std::vector< double > sootScales
soot scales for external numerical solvers
Definition: state.h:35
Definition: sootDefs.h:11
const std::vector< double > pahSpMW
Definition: sootDefs.h:93
gasSp
Definition: sootDefs.h:39
const double Rg
Universal gas constant: J/kmol*K.
Definition: sootDefs.h:17
pahSp
Definition: sootDefs.h:91
const std::vector< double > gasSpMW
(kg/kmol); make sure the order corresponds to the gasSp enum
Definition: sootDefs.h:74