Cantera
2.4.0
|
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_fp & | coeffs () 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... | |
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.
|
inline |
Default constructor.
Definition at line 349 of file RxnRates.h.
ChebyshevRate | ( | double | Tmin, |
double | Tmax, | ||
double | Pmin, | ||
double | Pmax, | ||
const Array2D & | coeffs | ||
) |
Constructor directly from coefficient array.
Definition at line 127 of file RxnRates.cpp.
References ChebyshevRate::chebCoeffs_, ChebyshevRate::coeffs(), ChebyshevRate::nP_, ChebyshevRate::nT_, ChebyshevRate::Pmax(), ChebyshevRate::Pmin(), ChebyshevRate::PrDen_, ChebyshevRate::Tmax(), ChebyshevRate::Tmin(), and ChebyshevRate::TrDen_.
|
inlinestatic |
return the rate coefficient type.
Definition at line 344 of file RxnRates.h.
|
inline |
Update concentration-dependent parts of the rate coefficient.
c | base-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_.
|
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_.
|
inline |
Minimum valid temperature [K].
Definition at line 405 of file RxnRates.h.
Referenced by ChebyshevRate::ChebyshevRate().
|
inline |
Maximum valid temperature [K].
Definition at line 410 of file RxnRates.h.
References ChebyshevRate::Tmax_.
Referenced by ChebyshevRate::ChebyshevRate().
|
inline |
Minimum valid pressure [Pa].
Definition at line 415 of file RxnRates.h.
Referenced by ChebyshevRate::ChebyshevRate().
|
inline |
Maximum valid pressure [Pa].
Definition at line 420 of file RxnRates.h.
References ChebyshevRate::Pmax_.
Referenced by ChebyshevRate::ChebyshevRate().
|
inline |
Number of points in the pressure direction.
Definition at line 425 of file RxnRates.h.
References ChebyshevRate::nP_.
|
inline |
Number of points in the temperature direction.
Definition at line 430 of file RxnRates.h.
References ChebyshevRate::nT_.
|
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().
|
protected |
valid temperature range
Definition at line 444 of file RxnRates.h.
Referenced by ChebyshevRate::Tmax().
|
protected |
valid pressure range
Definition at line 445 of file RxnRates.h.
Referenced by ChebyshevRate::Pmax().
|
protected |
terms appearing in the reduced temperature
Definition at line 446 of file RxnRates.h.
Referenced by ChebyshevRate::ChebyshevRate(), and ChebyshevRate::updateRC().
|
protected |
terms appearing in the reduced pressure
Definition at line 447 of file RxnRates.h.
Referenced by ChebyshevRate::ChebyshevRate(), and ChebyshevRate::update_C().
|
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().
|
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().
|
protected |
Chebyshev coefficients, length nP * nT.
Definition at line 451 of file RxnRates.h.
Referenced by ChebyshevRate::ChebyshevRate(), ChebyshevRate::coeffs(), and ChebyshevRate::update_C().
|
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().