28 #ifndef ANTIOCH_ARRHENIUS_RATE_H
29 #define ANTIOCH_ARRHENIUS_RATE_H
58 template<
typename CoeffType=
double>
72 ArrheniusRate (
const CoeffType
Cf=0.,
const CoeffType
Ea=0.,
const CoeffType
rscale = Constants::R_universal<CoeffType>());
93 template <
typename VectorCoeffType>
106 template <
typename VectorCoeffType>
107 void reset_coefs(
const VectorCoeffType & coefficients);
109 CoeffType
Cf()
const;
110 CoeffType
Ea()
const;
111 CoeffType
Ea_K()
const;
115 template <
typename StateType>
121 template <typename StateType>
127 template <typename StateType>
133 template <typename StateType>
139 template <typename StateType, typename VectorStateType>
145 template <typename StateType, typename VectorStateType>
151 template <typename StateType, typename VectorStateType>
157 template <typename StateType,typename VectorStateType>
166 template<typename CoeffType>
177 template<
typename CoeffType>
183 template<
typename CoeffType>
186 std::stringstream os;
188 os <<
"*exp(-" << _raw_Ea <<
"/(R*T))";
193 template<
typename CoeffType>
201 template<
typename CoeffType>
210 template<
typename CoeffType>
219 template<
typename CoeffType>
228 template<
typename CoeffType>
229 template <
typename VectorCoeffType>
235 if(coefficients.size() == 3)this->
set_rscale(coefficients[2]);
236 this->
set_Cf(coefficients[0]);
237 this->
set_Ea(coefficients[1]);
240 template<
typename CoeffType>
269 template<
typename CoeffType>
299 template<
typename CoeffType>
304 template<
typename CoeffType>
309 template<
typename CoeffType>
314 template<
typename CoeffType>
319 template<
typename CoeffType>
320 template<
typename StateType>
324 StateType& drate_dT)
const
327 drate_dT = rate*_Ea/(T*T);
331 template<
typename CoeffType>
332 template <
typename StateType,
typename VectorStateType>
336 StateType& drate_dT)
const
339 drate_dT = rate * _Ea/(T.temp_cache().T2);
345 #endif // ANTIOCH_ARRHENIUS_RATE_H
base class for kinetics models
#define antioch_assert_greater(expr1, expr2)
_Cf * ant_exp(-_Ea/T))) template< typename StateType > operator()(const StateType &T) const template< typename StateType > derivative(const StateType &T) const ANTIOCH_AUTOFUNC(StateType
#define antioch_assert_less(expr1, expr2)
void set_Cf(const CoeffType Cf)
ArrheniusRate(const CoeffType Cf=0., const CoeffType Ea=0., const CoeffType rscale=Constants::R_universal< CoeffType >())
const std::string numeric() const
print equation
CoeffType get_parameter(KineticsModel::Parameters parameter) const
get one parameter, characterized by enum
void set_parameter(KineticsModel::Parameters parameter, VectorCoeffType new_value)
for compatibility purpose with photochemistry (particle flux reactions)
_Cf(* this)(T)*(_Ea/(T *T))) template< typename StateType > void rate_and_derivative(const StateType &T
Simultaneously evaluate the rate and its derivative at T.
_Cf VectorStateType VectorStateType derivative(const KineticsConditions< StateType, VectorStateType > &T) const ANTIOCH_AUTOFUNC(StateType
_Cf(*) StateType StateType &drate_d const)
void reset_Ea(const CoeffType Ea)
set Ea, no rescaling, unit is K
#define ANTIOCH_AUTOFUNC(Type, Expr)
const ANTIOCH_AUTO(StateType) KineticsTheoryThermalConductivity< ThermoEvaluator
void set_parameter(KineticsModel::Parameters parameter, CoeffType new_value)
set one parameter, characterized by enum
_Cf VectorStateType VectorStateType(*) VectorStateType voi rate_and_derivative)(const KineticsConditions< StateType, VectorStateType > &T, StateType &rate, StateType &drate_dT) const
The parameters are reduced parameters.
void set_Ea(const CoeffType Ea)
set Ea, rescale the value, unit is known
This class contains the conditions of the chemistry.
void set_rscale(const CoeffType rscale)
void reset_coefs(const VectorCoeffType &coefficients)
reset the coeffs