27 #ifndef ANTIOCH_KOOIJ_RATE_H
28 #define ANTIOCH_KOOIJ_RATE_H
58 template<
typename CoeffType=
double>
59 class KooijRate :
public KineticsType<CoeffType>
74 KooijRate (
const CoeffType
Cf=0.,
const CoeffType
eta=0.,
const CoeffType
Ea=0.,
const CoeffType
Tref = 1.,
75 const CoeffType
rscale = Constants::R_universal<CoeffType>());
96 template <
typename VectorCoeffType>
109 template <
typename VectorCoeffType>
110 void reset_coefs(
const VectorCoeffType & coefficients);
112 CoeffType
Cf()
const;
113 CoeffType
eta()
const;
114 CoeffType
Ea()
const;
115 CoeffType
Ea_K()
const;
116 CoeffType
Tref()
const;
120 template <
typename StateType>
126 template <typename StateType>
132 template <typename StateType>
138 template <typename StateType>
144 template <typename StateType, typename VectorStateType>
150 template <typename StateType, typename VectorStateType>
156 template <typename StateType, typename VectorStateType>
162 template <typename StateType,typename VectorStateType>
174 template<typename CoeffType>
190 template<
typename CoeffType>
196 template<
typename CoeffType>
199 std::stringstream os;
201 if (_eta != 0.) os <<
"*(T/" << _Tref <<
")^" <<
_eta;
202 os <<
"*exp(-" << _raw_Ea <<
"/(R*T))";
208 template<
typename CoeffType>
218 template<
typename CoeffType>
228 template<
typename CoeffType>
237 template<
typename CoeffType>
246 template<
typename CoeffType>
255 template<
typename CoeffType>
264 template<
typename CoeffType>
265 template <
typename VectorCoeffType>
274 if(coefficients.size() == 5)
279 this->
set_Cf(coefficients[0]);
280 this->
set_eta(coefficients[1]);
281 this->
set_Ea(coefficients[2]);
284 template<
typename CoeffType>
323 template<
typename CoeffType>
364 template<
typename CoeffType>
369 template<
typename CoeffType>
374 template<
typename CoeffType>
379 template<
typename CoeffType>
384 template<
typename CoeffType>
389 template<
typename CoeffType>
394 template<
typename CoeffType>
395 template<
typename StateType>
399 StateType& drate_dT)
const
402 drate_dT = rate/T*(_eta + _Ea/T);
407 template<
typename CoeffType>
408 template<
typename StateType,
typename VectorStateType>
412 StateType& drate_dT)
const
415 drate_dT = rate/T.T()*(_eta + _Ea/T.T());
420 template<
typename CoeffType>
424 _Cf = _raw_Cf * ant_pow(KineticsModel::Tref<CoeffType>()/_Tref,_eta);
430 #endif // ANTIOCH_KOOIJ_RATE_H
const std::string numeric() const
print equation
void set_Tref(const CoeffType Tref)
_Cf(* this)(T)/T *(_eta+_Ea/T)) template< typename StateType > void rate_and_derivative(const StateType &T
Simultaneously evaluate the rate and its derivative at T.
void set_Ea(const CoeffType Ea)
set _raw_Ea, unit is known (cal.mol-1, J.mol-1, whatever), _Ea is computed
base class for kinetics models
#define antioch_assert_greater(expr1, expr2)
_Cf * ant_exp(_eta *ant_log(T)-_Ea/T))) template< typename StateType > operator()(const StateType &T) const template< typename StateType > derivative(const StateType &T) const ANTIOCH_AUTOFUNC(StateType
#define antioch_assert_not_equal_to(expr1, expr2)
#define antioch_assert_less(expr1, expr2)
void set_rscale(const CoeffType scale)
void set_parameter(KineticsModel::Parameters parameter, CoeffType new_value)
set one parameter, characterized by enum
_Cf(*) StateType StateType &drate_d const)
_Cf VectorStateType VectorStateType(*) VectorStateType voi rate_and_derivative)(const KineticsConditions< StateType, VectorStateType > &T, StateType &rate, StateType &drate_dT) const
void set_parameter(KineticsModel::Parameters parameter, VectorCoeffType new_value)
for compatibility purpose with photochemistry (particle flux reactions)
_Cf VectorStateType VectorStateType derivative(const KineticsConditions< StateType, VectorStateType > &T) const ANTIOCH_AUTOFUNC(StateType
void set_Cf(const CoeffType Cf)
CoeffType get_parameter(KineticsModel::Parameters parameter) const
get one parameter, characterized by enum
void reset_coefs(const VectorCoeffType &coefficients)
reset the coeffs
void reset_Ea(const CoeffType Ea)
set _Ea, unit is K, _raw_Ea is computed
void set_eta(const CoeffType eta)
#define ANTIOCH_AUTOFUNC(Type, Expr)
const ANTIOCH_AUTO(StateType) KineticsTheoryThermalConductivity< ThermoEvaluator
The parameters are reduced parameters.
This class contains the conditions of the chemistry.
KooijRate(const CoeffType Cf=0., const CoeffType eta=0., const CoeffType Ea=0., const CoeffType Tref=1., const CoeffType rscale=Constants::R_universal< CoeffType >())