Cantera  2.4.0
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ChebyshevRate Class Reference

Pressure-dependent rate expression where the rate coefficient is expressed as a bivariate Chebyshev polynomial in temperature and pressure. More...

#include <RxnRates.h>

Public Member Functions

 ChebyshevRate ()
 Default constructor. More...
 
 ChebyshevRate (double Tmin, double Tmax, double Pmin, double Pmax, const Array2D &coeffs)
 Constructor directly from coefficient array. More...
 
void update_C (const doublereal *c)
 Update concentration-dependent parts of the rate coefficient. More...
 
doublereal updateRC (doublereal logT, doublereal recipT) const
 Update the value the rate constant. More...
 
double Tmin () const
 Minimum valid temperature [K]. More...
 
double Tmax () const
 Maximum valid temperature [K]. More...
 
double Pmin () const
 Minimum valid pressure [Pa]. More...
 
double Pmax () const
 Maximum valid pressure [Pa]. More...
 
size_t nPressure () const
 Number of points in the pressure direction. More...
 
size_t nTemperature () const
 Number of points in the temperature direction. More...
 
const vector_fpcoeffs () const
 Access the Chebyshev coefficients. More...
 

Static Public Member Functions

static int type ()
 return the rate coefficient type. More...
 

Protected Attributes

double Tmin_
 
double Tmax_
 valid temperature range More...
 
double Pmin_
 
double Pmax_
 valid pressure range More...
 
double TrNum_
 
double TrDen_
 terms appearing in the reduced temperature More...
 
double PrNum_
 
double PrDen_
 terms appearing in the reduced pressure More...
 
size_t nP_
 number of points in the pressure direction More...
 
size_t nT_
 number of points in the temperature direction More...
 
vector_fp chebCoeffs_
 Chebyshev coefficients, length nP * nT. More...
 
vector_fp dotProd_
 dot product of chebCoeffs with the reduced pressure polynomial More...
 

Detailed Description

Pressure-dependent rate expression where the rate coefficient is expressed as a bivariate Chebyshev polynomial in temperature and pressure.

The rate constant can be written as:

\[ \log k(T,P) = \sum_{t=1}^{N_T} \sum_{p=1}^{N_P} \alpha_{tp} \phi_t(\tilde{T}) \phi_p(\tilde{P}) \]

where \(\alpha_{tp}\) are the constants defining the rate, \(\phi_n(x)\) is the Chebyshev polynomial of the first kind of degree n evaluated at x, and

\[ \tilde{T} \equiv \frac{2T^{-1} - T_\mathrm{min}^{-1} - T_\mathrm{max}^{-1}} {T_\mathrm{max}^{-1} - T_\mathrm{min}^{-1}} \]

\[ \tilde{P} \equiv \frac{2 \log P - \log P_\mathrm{min} - \log P_\mathrm{max}} {\log P_\mathrm{max} - \log P_\mathrm{min}} \]

are reduced temperature and reduced pressures which map the ranges \( (T_\mathrm{min}, T_\mathrm{max}) \) and \( (P_\mathrm{min}, P_\mathrm{max}) \) to (-1, 1).

A Chebyshev rate expression is specified in terms of the coefficient matrix \( \alpha \) and the temperature and pressure ranges. Note that the Chebyshev polynomials are not defined outside the interval (-1,1), and therefore extrapolation of rates outside the range of temperatures and pressures for which they are defined is strongly discouraged.

Definition at line 340 of file RxnRates.h.

Constructor & Destructor Documentation

◆ ChebyshevRate() [1/2]

ChebyshevRate ( )
inline

Default constructor.

Definition at line 349 of file RxnRates.h.

◆ ChebyshevRate() [2/2]

ChebyshevRate ( double  Tmin,
double  Tmax,
double  Pmin,
double  Pmax,
const Array2D coeffs 
)

Member Function Documentation

◆ type()

static int type ( )
inlinestatic

return the rate coefficient type.

Definition at line 344 of file RxnRates.h.

◆ update_C()

void update_C ( const doublereal *  c)
inline

Update concentration-dependent parts of the rate coefficient.

Parameters
cbase-10 logarithm of the pressure in Pa

Definition at line 366 of file RxnRates.h.

References ChebyshevRate::chebCoeffs_, ChebyshevRate::dotProd_, ChebyshevRate::nP_, ChebyshevRate::nT_, and ChebyshevRate::PrDen_.

◆ updateRC()

doublereal updateRC ( doublereal  logT,
doublereal  recipT 
) const
inline

Update the value the rate constant.

This function returns the actual value of the rate constant.

Definition at line 389 of file RxnRates.h.

References ChebyshevRate::dotProd_, ChebyshevRate::nT_, and ChebyshevRate::TrDen_.

◆ Tmin()

double Tmin ( ) const
inline

Minimum valid temperature [K].

Definition at line 405 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Tmax()

double Tmax ( ) const
inline

Maximum valid temperature [K].

Definition at line 410 of file RxnRates.h.

References ChebyshevRate::Tmax_.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Pmin()

double Pmin ( ) const
inline

Minimum valid pressure [Pa].

Definition at line 415 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Pmax()

double Pmax ( ) const
inline

Maximum valid pressure [Pa].

Definition at line 420 of file RxnRates.h.

References ChebyshevRate::Pmax_.

Referenced by ChebyshevRate::ChebyshevRate().

◆ nPressure()

size_t nPressure ( ) const
inline

Number of points in the pressure direction.

Definition at line 425 of file RxnRates.h.

References ChebyshevRate::nP_.

◆ nTemperature()

size_t nTemperature ( ) const
inline

Number of points in the temperature direction.

Definition at line 430 of file RxnRates.h.

References ChebyshevRate::nT_.

◆ coeffs()

const vector_fp& coeffs ( ) const
inline

Access the Chebyshev coefficients.

\( \alpha_{t,p} = \mathrm{coeffs}[N_P*t + p] \) where \( 0 <= t < N_T \) and \( 0 <= p < N_P \).

Definition at line 439 of file RxnRates.h.

References ChebyshevRate::chebCoeffs_.

Referenced by ChebyshevRate::ChebyshevRate().

Member Data Documentation

◆ Tmax_

double Tmax_
protected

valid temperature range

Definition at line 444 of file RxnRates.h.

Referenced by ChebyshevRate::Tmax().

◆ Pmax_

double Pmax_
protected

valid pressure range

Definition at line 445 of file RxnRates.h.

Referenced by ChebyshevRate::Pmax().

◆ TrDen_

double TrDen_
protected

terms appearing in the reduced temperature

Definition at line 446 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate(), and ChebyshevRate::updateRC().

◆ PrDen_

double PrDen_
protected

terms appearing in the reduced pressure

Definition at line 447 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate(), and ChebyshevRate::update_C().

◆ nP_

size_t nP_
protected

number of points in the pressure direction

Definition at line 449 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate(), ChebyshevRate::nPressure(), and ChebyshevRate::update_C().

◆ nT_

size_t nT_
protected

number of points in the temperature direction

Definition at line 450 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate(), ChebyshevRate::nTemperature(), ChebyshevRate::update_C(), and ChebyshevRate::updateRC().

◆ chebCoeffs_

vector_fp chebCoeffs_
protected

Chebyshev coefficients, length nP * nT.

Definition at line 451 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate(), ChebyshevRate::coeffs(), and ChebyshevRate::update_C().

◆ dotProd_

vector_fp dotProd_
protected

dot product of chebCoeffs with the reduced pressure polynomial

Definition at line 452 of file RxnRates.h.

Referenced by ChebyshevRate::update_C(), and ChebyshevRate::updateRC().


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