Cantera  2.5.1
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 355 of file RxnRates.h.

Constructor & Destructor Documentation

◆ ChebyshevRate() [1/2]

ChebyshevRate ( )
inline

Default constructor.

Definition at line 369 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.

Deprecated:
To be removed after Cantera 2.5.

Definition at line 362 of file RxnRates.h.

References Cantera::warn_deprecated().

◆ 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 386 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 409 of file RxnRates.h.

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

◆ Tmin()

double Tmin ( ) const
inline

Minimum valid temperature [K].

Definition at line 425 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Tmax()

double Tmax ( ) const
inline

Maximum valid temperature [K].

Definition at line 430 of file RxnRates.h.

References ChebyshevRate::Tmax_.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Pmin()

double Pmin ( ) const
inline

Minimum valid pressure [Pa].

Definition at line 435 of file RxnRates.h.

Referenced by ChebyshevRate::ChebyshevRate().

◆ Pmax()

double Pmax ( ) const
inline

Maximum valid pressure [Pa].

Definition at line 440 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 445 of file RxnRates.h.

References ChebyshevRate::nP_.

◆ nTemperature()

size_t nTemperature ( ) const
inline

Number of points in the temperature direction.

Definition at line 450 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 459 of file RxnRates.h.

References ChebyshevRate::chebCoeffs_.

Referenced by ChebyshevRate::ChebyshevRate().

Member Data Documentation

◆ Tmax_

double Tmax_
protected

valid temperature range

Definition at line 464 of file RxnRates.h.

Referenced by ChebyshevRate::Tmax().

◆ Pmax_

double Pmax_
protected

valid pressure range

Definition at line 465 of file RxnRates.h.

Referenced by ChebyshevRate::Pmax().

◆ TrDen_

double TrDen_
protected

terms appearing in the reduced temperature

Definition at line 466 of file RxnRates.h.

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

◆ PrDen_

double PrDen_
protected

terms appearing in the reduced pressure

Definition at line 467 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 469 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 470 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 471 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 472 of file RxnRates.h.

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


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