27 #ifndef ANTIOCH_VAN_T_HOFF_RATE_H
28 #define ANTIOCH_VAN_T_HOFF_RATE_H
58 template<
typename CoeffType=
double>
59 class VantHoffRate:
public KineticsType<CoeffType>
76 const CoeffType
D=0.,
const CoeffType
Tref = 1.,
77 const CoeffType
rscale = Constants::R_universal<CoeffType>());
87 void set_D(
const CoeffType
D );
100 template <
typename VectorCoeffType>
113 template <
typename VectorCoeffType>
114 void reset_coefs(
const VectorCoeffType & coefficients);
116 CoeffType
Cf()
const;
117 CoeffType
eta()
const;
118 CoeffType
Ea()
const;
119 CoeffType
Ea_K()
const;
121 CoeffType
Tref()
const;
125 template <
typename StateType>
131 template <typename StateType>
137 template <typename StateType>
143 template <typename StateType>
149 template <typename StateType, typename VectorStateType>
155 template <typename StateType, typename VectorStateType>
161 template <typename StateType, typename VectorStateType>
167 template <typename StateType, typename VectorStateType>
179 template<typename CoeffType>
195 template<
typename CoeffType>
201 template<
typename CoeffType>
204 std::stringstream os;
206 if (_eta != 0.) os <<
"*(T/" << _Tref <<
")^" <<
_eta;
207 os <<
"*exp(-" << _raw_Ea <<
"/(R*T) + " << _D <<
"*T)";
213 template<
typename CoeffType>
223 template<
typename CoeffType>
233 template<
typename CoeffType>
242 template<
typename CoeffType>
251 template<
typename CoeffType>
260 template<
typename CoeffType>
269 template<
typename CoeffType>
277 template<
typename CoeffType>
278 template <
typename VectorCoeffType>
287 if(coefficients.size() == 6)
292 this->
set_Cf(coefficients[0]);
293 this->
set_eta(coefficients[1]);
294 this->
set_Ea(coefficients[2]);
295 this->
set_D(coefficients[3]);
298 template<
typename CoeffType>
331 this->
set_D(new_value);
342 template<
typename CoeffType>
388 template<
typename CoeffType>
393 template<
typename CoeffType>
398 template<
typename CoeffType>
403 template<
typename CoeffType>
408 template<
typename CoeffType>
413 template<
typename CoeffType>
418 template<
typename CoeffType>
423 template<
typename CoeffType>
424 template<
typename StateType>
428 StateType& drate_dT)
const
431 drate_dT = rate*(_D + _eta/T + _Ea/(T*T));
435 template<
typename CoeffType>
436 template<
typename StateType,
typename VectorStateType>
440 StateType& drate_dT)
const
443 drate_dT = rate*(_D + _eta/T.T() + _Ea/(T.temp_cache().T2));
447 template<
typename CoeffType>
451 _Cf = _raw_Cf *
ant_pow(KineticsModel::Tref<CoeffType>()/_Tref,_eta);
457 #endif // ANTIOCH_VAN_T_HOFF_RATE_H
void reset_coefs(const VectorCoeffType &coefficients)
reset the coeffs
_Cf * ant_exp(_eta *T.temp_cache().lnT-_Ea/T.T()+_D *T.T())) template< typename StateType
void set_parameter(KineticsModel::Parameters parameter, VectorCoeffType new_value)
for compatibility purpose with photochemistry (particle flux reactions)
base class for kinetics models
#define antioch_assert_greater(expr1, expr2)
CoeffType get_parameter(KineticsModel::Parameters parameter) const
get one parameter, characterized by enum
#define antioch_assert_not_equal_to(expr1, expr2)
#define antioch_assert_less(expr1, expr2)
void set_parameter(KineticsModel::Parameters parameter, CoeffType new_value)
set one parameter, characterized by enum
_Cf(*) StateType StateType &drate_d const)
void reset_Ea(const CoeffType Ea)
set _Ea, unit is K, _raw_Ea is computed
void set_Cf(const CoeffType Cf)
const std::string numeric() const
print equation
_Cf(* this)(T)*(_D+_eta/T+_Ea/(T *T))) template< typename StateType > void rate_and_derivative(const StateType &T
Simultaneously evaluate the rate and its derivative at T.
void set_D(const CoeffType D)
VantHoffRate(const CoeffType Cf=0., const CoeffType eta=0., const CoeffType Ea=0., const CoeffType D=0., const CoeffType Tref=1., const CoeffType rscale=Constants::R_universal< CoeffType >())
void set_Tref(const CoeffType Tref)
_Cf * ant_pow(T, _eta)*ant_exp(-_Ea/T+_D *T))) template< typename StateType > operator()(const StateType &T) const template< typename StateType > derivative(const StateType &T) const ANTIOCH_AUTOFUNC(StateType
_Cf VectorStateType VectorStateType(*) VectorStateType voi rate_and_derivative)(const KineticsConditions< StateType, VectorStateType > &T, StateType &rate, StateType &drate_dT) const
#define ANTIOCH_AUTOFUNC(Type, Expr)
const ANTIOCH_AUTO(StateType) KineticsTheoryThermalConductivity< ThermoEvaluator
Van't Hoff rate equation.
void set_rscale(const CoeffType rscale)
The parameters are reduced parameters.
void set_Ea(const CoeffType Ea)
set _raw_Ea, unit is known (cal.mol-1, J.mol-1, whatever), _Ea is computed
This class contains the conditions of the chemistry.
void set_eta(const CoeffType eta)
_Cf VectorStateType VectorStateType derivative(const KineticsConditions< StateType, VectorStateType > &T) const ANTIOCH_AUTOFUNC(StateType