RadLib
Loading...
Searching...
No Matches
rad_rcslw Class Reference

#include <rad_rcslw.h>

Inheritance diagram for rad_rcslw:
[legend]
Collaboration diagram for rad_rcslw:
[legend]

Public Member Functions

void get_k_a (std::vector< double > &kabs, std::vector< double > &awts, const double T, const double P_not_used, const double fvsoot, const double xH2O, const double xCO2, const double xCO, const double xCH4_not_used)
 
void get_k_a_oneband (double &kabs, double &awts, const int iband, const double T, const double P_not_used, const double fvsoot, const double xH2O, const double xCO2, const double xCO, const double xCH4_not_used)
 
 rad_rcslw (const int p_nGG, const double TbTref, const double p_P, const double fvsoot, const double xH2O, const double xCO2, const double xCO)
 
virtual ~rad_rcslw ()
 
- Public Member Functions inherited from rad
int get_nGG ()
 
int get_nGGa ()
 
 rad (const int p_nGG, const int p_nGGa)
 
virtual ~rad ()
 

Protected Attributes

double P
 system pressure (atm); assumed constant
 
double Tref
 reference temperature (K) for setting F grid (normally same as Tb)
 
double Tb
 black temperature (K)
 
std::vector< double > P_table
 pressures (atm, abscissas) in table
 
std::vector< double > C_table
 cross sections (m2/mol abscissas) in table
 
std::vector< double > Tg_table
 gas temperatures (K, abscissas) in table
 
std::vector< double > Tb_table
 blackbody temperature (K, abscissas) in table
 
std::vector< double > xH2O_table
 mole fractions H2O (abscissas) in table
 
std::vector< double > F_pts
 albdf grid
 
std::vector< double > Ft_pts
 albdf grid (t for tilde)
 
std::vector< double > Falbdf_CO2
 CO2 albdf table values (with abscissas above)
 
std::vector< double > Falbdf_CO
 CO albdf table values.
 
std::vector< double > Falbdf_H2O
 H2O albdf table values.
 
int nP
 number of P values (abscissas) in table
 
int nC
 number of C values (abscissas) in table
 
int nTg
 number of Tg values (abscissas) in table
 
int nTb
 number of Tb values (abscissas) in table
 
int ny_H2O
 number of h2o values (abscissas) in table
 
double Cmin
 minimum absorption cross section
 
double Cmax
 maximum absorption cross section
 
double Fmin
 minimum albdf, corresponding to Cmin
 
double Fmax
 maximum albdf, corresponding to Cmax
 
- Protected Attributes inherited from rad
int nGG
 number of gray gases, not including the clear gas
 
int nGGa
 number of grey gases including the clear gas
 

Private Member Functions

double get_F_albdf (const double C, double Tg, double Tb, double xCO2, double xCO, double xH2O, double fvsoot)
 
double get_FI_albdf (const double F, const double Tg, const double Tb, const double xCO2, const double xCO, const double xH2O, const double fvsoot)
 
void get_FI_albdf_tables (const std::string Ptable_file_name, const int nx, const int ny, const int nz, std::vector< double > &myarray)
 
void get_FI_albdf_tables (const std::string Ptable_file_name, const int nx, const int ny, const int nz, const int nw, std::vector< double > &myarray)
 
void set_Fpts (void)
 
void set_Falbdf_CO2_CO_H2O_at_P ()
 
double F_albdf_soot (const double C, const double Tg, const double Tb, const double fvsoot)
 

Additional Inherited Members

- Static Public Attributes inherited from rad
static constexpr double sigma = 5.670367E-8
 Stephan-Boltzmann constant.
 

Detailed Description

Class implementing rcslw object. Radiation properties for the Rank Correlated, SLW model. A variable number of gray gases may be used. This is a very accurate model, but somewhat more expensive to compute than others. get_k_a, and get_k_a_oneband are the primary interfaces.

Definition at line 20 of file rad_rcslw.h.

Constructor & Destructor Documentation

◆ rad_rcslw()

rad_rcslw::rad_rcslw ( const int  p_nGG,
const double  TbTref,
const double  p_P,
const double  fvsoot,
const double  xH2O,
const double  xCO2,
const double  xCO 
)

Constructor function

Parameters
p_nGGinput: number of gray gases not including the gray gas
TbTrefinput: black temperature and reference temperature (K); set once, assumed constant
p_Pinput: system pressure (Pa); set once, assumed constant
fvsootinput: soot volume fraction
xH2Oinput: H2O mole fraction
xCO2input: CO2 mole fraction
xCOinput: CO mole fraction

Definition at line 32 of file rad_rcslw.cc.

Here is the call graph for this function:

◆ ~rad_rcslw()

virtual rad_rcslw::~rad_rcslw ( )
inlinevirtual

Definition at line 109 of file rad_rcslw.h.

Member Function Documentation

◆ get_k_a()

void rad_rcslw::get_k_a ( std::vector< double > &  kabs,
std::vector< double > &  awts,
const double  T,
const double  P_not_used,
const double  fvsoot,
const double  xH2O,
const double  xCO2,
const double  xCO,
const double  xCH4_not_used 
)
virtual

This is the class interface function Given the gas state, set the k and a vectors.

These can then be accessed by the user.

Return through arg list the local gray gas coefficients (kabs) and the local weights (awts).

Parameters
kabsoutput: absorption coefficients (1/m) for nGG+1 (nGG gray gases + clear gas)
awtsoutput: weights (unitless; sums to 1) for nGG+1 (nGG gray gases + clear gas)
Tinput: gas temperature
P_not_usedinput: Pressure (Pa) NOT USED; HERE FOR INTERFACE; P IS SET BY CONSTRUCTOR
fvsootinput: soot volume fraction = rho*Ysoot/rhosoot
xH2Oinput: mole fraction H2O
xCO2input: mole fraction CO2
xCOinput: mole fraction CO
xCH4_not_usedinput: mole fraction CH4 NOT USED; HERE FOR INTERFACE; (... pass in 0.0)

Implements rad.

Definition at line 160 of file rad_rcslw.cc.

Here is the call graph for this function:

◆ get_k_a_oneband()

void rad_rcslw::get_k_a_oneband ( double &  kabs,
double &  awts,
const int  iband,
const double  T,
const double  P_not_used,
const double  fvsoot,
const double  xH2O,
const double  xCO2,
const double  xCO,
const double  xCH4_not_used 
)
virtual

This is the class interface function Given the gas state, set the k and a vectors.

These can then be accessed by the user.

Return through arg list the local gray gas coefficients (kabs) and the local weights (awts).

Parameters
kabsoutput: absorption coefficient (1/m) for band/gas iband: ranges from 0 to nGG inclusive
awtsoutput: weight (unitless; total sums to 1) for band/gas iband: ranges from 0 to nGG inclusive
ibandinput: which band to compute
Tinput: gas temperature
P_not_usedinput: Pressure (Pa) NOT USED; HERE FOR INTERFACE; P IS SET BY CONSTRUCTOR
fvsootinput: soot volume fraction = rho*Ysoot/rhosoot
xH2Oinput: mole fraction H2O
xCO2input: mole fraction CO2
xCOinput: mole fraction CO
xCH4_not_usedinput: mole fraction CH4 NOT USED; HERE FOR INTERFACE; (... pass in 0.0)

Implements rad.

Definition at line 99 of file rad_rcslw.cc.

Here is the call graph for this function:

◆ get_F_albdf()

double rad_rcslw::get_F_albdf ( const double  C,
double  Tg,
double  Tb,
double  xCO2,
double  xCO,
double  xH2O,
double  fvsoot 
)
private

Get the albdf function F

Parameters
Cinput: cross section (m2/mol)
Tginput: gas temperature
Tbinput: black temperature
xCO2input: mole fraction CO2
xCOinput: mole fraction CO
xH2Oinput: mole fraction H2O
fvsootinput: soot volume fraction
Returns
the albdf function F

Definition at line 222 of file rad_rcslw.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_FI_albdf()

double rad_rcslw::get_FI_albdf ( const double  F,
const double  Tg,
const double  Tb,
const double  xCO2,
const double  xCO,
const double  xH2O,
const double  fvsoot 
)
private

Inverse F_albdf: pass in albdf F and get out Cross section C

Parameters
Finput: albdf
Tginput: gas temperature
Tbinput: black temperature
xCO2input: mole fraction CO2
xCOinput: mole fraction CO
xH2Oinput: mole fraction H2O
fvsootinput: soot volume fraction = rho*Ysoot/rhoSoot
Returns
Cross section C (m2/mol).

Definition at line 276 of file rad_rcslw.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_FI_albdf_tables() [1/2]

void rad_rcslw::get_FI_albdf_tables ( const std::string  Ptable_file_name,
const int  nx,
const int  ny,
const int  nz,
std::vector< double > &  myarray 
)
private
Here is the caller graph for this function:

◆ get_FI_albdf_tables() [2/2]

void rad_rcslw::get_FI_albdf_tables ( const std::string  Ptable_file_name,
const int  nx,
const int  ny,
const int  nz,
const int  nw,
std::vector< double > &  myarray 
)
private

◆ set_Fpts()

void rad_rcslw::set_Fpts ( void  )
private

Set grid of F points based on Gauss-Legendre Quadrature.

Definition at line 343 of file rad_rcslw.cc.

Here is the caller graph for this function:

◆ set_Falbdf_CO2_CO_H2O_at_P()

void rad_rcslw::set_Falbdf_CO2_CO_H2O_at_P ( )
private

Read the albdf table for CO2, CO, and H2O. Separate files are given for various pressures. Interpolate the files to the desired pressure: P. Reshape from the given 1D to the 3D (CO/CO2) or 4D (H2O) tables.

Definition at line 435 of file rad_rcslw.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ F_albdf_soot()

double rad_rcslw::F_albdf_soot ( const double  C,
const double  Tg,
const double  Tb,
const double  fvsoot 
)
private

Get soot albdf F

Parameters
Cinput: cross section (m2/mol)
Tginput: gas temperature
Tbinput: black temperature
fvsootinput: soot volume fraction
Returns
the albdf function F for soot Note: This comes from Solovjov and Webb, J. Heat Transfer, 123(3):450-457 (2001), and from Chang and Rhee (eq. 5), Int. Comm. Heat and Mass Transfer, 11(5):451-455 (1984).

For computing csoot, see Radiative Heat Transfer, 3rd edition, by Modest, pages 424-425:

    ksoot = 1.23, 1.95,  1.30,    0.92,  0.71, for
    nsoot = 2.21, 2.63,  2.19,    1.89,  2.31,
            Lee,  Stull, Dalzell, Chang, Felske, respectively

See also Williams, Shaddix et al. Int. J. Heat and Mass Transfer 50:1616-1630 (2007),

    ksoot = 1.03,    0.56,                0.43,         0.89,     0.80 for
    nsoot = 1.75,    1.57,                1.90,         1.99,     1.55
            Shaddix, Dalzell and Sarofim, Lee and Tien, Krishnan, Mountain and Mulholland, respectively

Note, these give Planck Mean absorption coefficients of \((3.72*c_{soot}/C_2)*fv*T\), where \(C_2 = 0.014388\, m\cdot K\).

    Hence, (3.72*csoot/C2) = 1361, 1141, 1423, 1476, 835.0 for Lee, Stull, ...
                           = 1817, 1265, 744.2, 1319, 1785 for Shaddix, Dalzell and Sarofim, ...

Shaddix's constants give \(c_{soot} = 7.03\), which is the same as the value of 7 presented in Solovjov 2001 for Eq. 16 proposed by Hottel and Sarofim in their 1967 textbook Radiative Transfer.

Definition at line 619 of file rad_rcslw.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ P

double rad_rcslw::P
protected

system pressure (atm); assumed constant

Definition at line 27 of file rad_rcslw.h.

◆ Tref

double rad_rcslw::Tref
protected

reference temperature (K) for setting F grid (normally same as Tb)

Definition at line 28 of file rad_rcslw.h.

◆ Tb

double rad_rcslw::Tb
protected

black temperature (K)

Definition at line 29 of file rad_rcslw.h.

◆ P_table

std::vector<double> rad_rcslw::P_table
protected

pressures (atm, abscissas) in table

Definition at line 31 of file rad_rcslw.h.

◆ C_table

std::vector<double> rad_rcslw::C_table
protected

cross sections (m2/mol abscissas) in table

Definition at line 32 of file rad_rcslw.h.

◆ Tg_table

std::vector<double> rad_rcslw::Tg_table
protected

gas temperatures (K, abscissas) in table

Definition at line 33 of file rad_rcslw.h.

◆ Tb_table

std::vector<double> rad_rcslw::Tb_table
protected

blackbody temperature (K, abscissas) in table

Definition at line 34 of file rad_rcslw.h.

◆ xH2O_table

std::vector<double> rad_rcslw::xH2O_table
protected

mole fractions H2O (abscissas) in table

Definition at line 35 of file rad_rcslw.h.

◆ F_pts

std::vector<double> rad_rcslw::F_pts
protected

albdf grid

Definition at line 37 of file rad_rcslw.h.

◆ Ft_pts

std::vector<double> rad_rcslw::Ft_pts
protected

albdf grid (t for tilde)

Definition at line 38 of file rad_rcslw.h.

◆ Falbdf_CO2

std::vector<double> rad_rcslw::Falbdf_CO2
protected

CO2 albdf table values (with abscissas above)

Definition at line 40 of file rad_rcslw.h.

◆ Falbdf_CO

std::vector<double> rad_rcslw::Falbdf_CO
protected

CO albdf table values.

Definition at line 41 of file rad_rcslw.h.

◆ Falbdf_H2O

std::vector<double> rad_rcslw::Falbdf_H2O
protected

H2O albdf table values.

Definition at line 42 of file rad_rcslw.h.

◆ nP

int rad_rcslw::nP
protected

number of P values (abscissas) in table

Definition at line 44 of file rad_rcslw.h.

◆ nC

int rad_rcslw::nC
protected

number of C values (abscissas) in table

Definition at line 45 of file rad_rcslw.h.

◆ nTg

int rad_rcslw::nTg
protected

number of Tg values (abscissas) in table

Definition at line 46 of file rad_rcslw.h.

◆ nTb

int rad_rcslw::nTb
protected

number of Tb values (abscissas) in table

Definition at line 47 of file rad_rcslw.h.

◆ ny_H2O

int rad_rcslw::ny_H2O
protected

number of h2o values (abscissas) in table

Definition at line 48 of file rad_rcslw.h.

◆ Cmin

double rad_rcslw::Cmin
protected

minimum absorption cross section

Definition at line 50 of file rad_rcslw.h.

◆ Cmax

double rad_rcslw::Cmax
protected

maximum absorption cross section

Definition at line 51 of file rad_rcslw.h.

◆ Fmin

double rad_rcslw::Fmin
protected

minimum albdf, corresponding to Cmin

Definition at line 52 of file rad_rcslw.h.

◆ Fmax

double rad_rcslw::Fmax
protected

maximum albdf, corresponding to Cmax

Definition at line 53 of file rad_rcslw.h.


The documentation for this class was generated from the following files: