rmgpy.kinetics.Chebyshev

class rmgpy.kinetics.Chebyshev(coeffs=None, kunits='', highPlimit=None, Tmin=None, Tmax=None, Pmin=None, Pmax=None, comment='')

A model of a phenomenological rate coefficient \(k(T,P)\) using a set of Chebyshev polynomials in temperature and pressure. The attributes are:

Attribute Description
coeffs Matrix of Chebyshev coefficients, such that the resulting \(k(T,P)\) has units of cm^3, mol, s
kunits The units of the rate coefficient
degreeT The number of terms in the inverse temperature direction
degreeP The number of terms in the log pressure direction
Tmin The minimum temperature at which the model is valid, or zero if unknown or undefined
Tmax The maximum temperature at which the model is valid, or zero if unknown or undefined
Pmin The minimum pressure at which the model is valid, or zero if unknown or undefined
Pmax The maximum pressure at which the model is valid, or zero if unknown or undefined
comment Information about the model (e.g. its source)

The Chebyshev polynomial formulation is a means of fitting a wide range of complex \(k(T,P)\) behavior. However, there is no meaningful physical interpretation of the polynomial-based fit, and one must take care to minimize the magnitude of Runge’s phenomenon. The formulation is as follows:

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

Above, \(\alpha_{tp}\) is a constant, \(\phi_n(x)\) is the Chebyshev polynomial 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 pressure designed to map the ranges \((T_\mathrm{min}, T_\mathrm{max})\) and \((P_\mathrm{min}, P_\mathrm{max})\) to \((-1, 1)\).

Pmax

The maximum pressure at which the model is valid, or None if not defined.

Pmin

The minimum pressure at which the model is valid, or None if not defined.

Tmax

The maximum temperature at which the model is valid, or None if not defined.

Tmin

The minimum temperature at which the model is valid, or None if not defined.

changeRate(self, double factor)

Changes kinetics rates by a multiple factor.

coeffs

The Chebyshev coefficients.

comment

comment: str

degreeP

degreeP: ‘int’

degreeT

degreeT: ‘int’

discrepancy(self, KineticsModel otherKinetics) → double

Returns some measure of the discrepancy based on two different reaction models.

efficiencies

efficiencies: dict

fitToData(self, ndarray Tlist, ndarray Plist, ndarray K, str kunits, int degreeT, int degreeP, double Tmin, double Tmax, double Pmin, double Pmax)

Fit a Chebyshev kinetic model to a set of rate coefficients K, which is a matrix corresponding to the temperatures Tlist in K and pressures Plist in Pa. degreeT and degreeP are the degree of the polynomials in temperature and pressure, while Tmin, Tmax, Pmin, and Pmax set the edges of the valid temperature and pressure ranges in K and bar, respectively.

getCanteraEfficiencies(self, speciesList)

Returns a dictionary containing the collider efficiencies for this PDepKineticsModel object suitable for setting the efficiencies in the following cantera reaction objects: ThreeBodyReaction, FalloffReaction,`ChemicallyActivatedReaction`

getEffectiveColliderEfficiencies(self, list species) → ndarray

Return the effective collider efficiencies for all species in the form of a numpy array. This function helps assist rapid effective pressure calculations in the solver.

getEffectivePressure(self, double P, list species, ndarray fractions) → double

Return the effective pressure in Pa for a system at a given pressure P in Pa composed of the given list of species (Species or Molecule objects) with the given fractions.

getRateCoefficient(self, double T, double P=0) → double

Return the rate coefficient in the appropriate combination of m^3, mol, and s at temperature T in K and pressure P in Pa by evaluating the Chebyshev expression.

highPlimit

highPlimit: rmgpy.kinetics.model.KineticsModel

isIdenticalTo(self, KineticsModel otherKinetics) → bool

Checks to see if kinetics matches that of other kinetics and returns True if coeffs, kunits, Tmin,

isPressureDependent(self) → bool

Return True since all objects derived from PDepKineticsModel represent pressure-dependent kinetics.

isPressureValid(self, double P) → bool

Return True if the pressure P in Pa is within the valid pressure range of the kinetic data, or False if not. If the minimum and maximum pressure are not defined, True is returned.

isSimilarTo(self, KineticsModel otherKinetics) → bool

Returns True if rates of reaction at temperatures 500,1000,1500,2000 K and 1 and 10 bar are within +/ .5 for log(k), in other words, within a factor of 3.

isTemperatureValid(self, double T) → bool

Return True if the temperature T in K is within the valid temperature range of the kinetic data, or False if not. If the minimum and maximum temperature are not defined, True is returned.

kunits

kunits: str

setCanteraKinetics(self, ctReaction, speciesList)

Sets the kinetics parameters for a Cantera ChebyshevReaction() object Uses set_parameters(self,Tmin,Tmax,Pmin,Pmax,coeffs) where T’s are in units of K, P’s in units of Pa, and coeffs is 2D array of (nTemperature, nPressure).

toHTML(self)

Return an HTML rendering.