From cf40d8b8615074642d9a07337253ee986e660c02 Mon Sep 17 00:00:00 2001 From: Harry Moffat Date: Mon, 29 Dec 2008 17:48:50 +0000 Subject: [PATCH] doxygen update --- Cantera/src/kinetics/FalloffFactory.cpp | 380 +++++++++++++++++++++--- 1 file changed, 340 insertions(+), 40 deletions(-) diff --git a/Cantera/src/kinetics/FalloffFactory.cpp b/Cantera/src/kinetics/FalloffFactory.cpp index e43ee471c..ecdcd4521 100755 --- a/Cantera/src/kinetics/FalloffFactory.cpp +++ b/Cantera/src/kinetics/FalloffFactory.cpp @@ -30,15 +30,38 @@ namespace Cantera { //! The 3-parameter Troe falloff parameterization. /*! - * This parameterization is - * defined by - * \f[ F = F_{cent}^{1/(1 + f_1^2)} \f] + * The falloff function defines the value of \f$ F \f$ in the following + * rate expression + * + * \f[ + * k = k_{\infty} \left( \frac{P_r}{1 + P_r} \right) F + * \f] + * where + * \f[ + * P_r = \frac{k_0 [M]}{k_{\infty}} + * \f] + * + * This parameterization is defined by + * \f[ + * F = F_{cent}^{1/(1 + f_1^2)} + * \f] * where - * \f[ F_{cent} = (1 - A)\exp(-T/T_3) + A \exp(-T/T_1) \f] - * \f[ f_1 = (\log_{10} P_r + C) / \left(N - 0.14 - * (\log_{10} P_r + C)\right) \f] - * \f[ C = -0.4 - 0.67 \log_{10} F_{cent} \f] - * \f[ N = 0.75 - 1.27 \log_{10} F_{cent} \f] + * \f[ + * F_{cent} = (1 - A)\exp(-T/T_3) + A \exp(-T/T_1) + * \f] + * + * \f[ + * f_1 = (\log_{10} P_r + C) / \left(N - 0.14 + * (\log_{10} P_r + C)\right) + * \f] + * + * \f[ + * C = -0.4 - 0.67 \log_{10} F_{cent} + * \f] + * + * \f[ + * N = 0.75 - 1.27 \log_{10} F_{cent} + * \f] * * There are a few requirements for the parameters * @@ -53,10 +76,10 @@ namespace Cantera { class Troe3 : public Falloff { public: - /// Default constructor. + //! Default constructor. Troe3() : m_a (0.0), m_rt3 (0.0), m_rt1 (0.0) {} - // Destructor. Does nothing. + //! Destructor. Does nothing. virtual ~Troe3() {} /** @@ -87,12 +110,26 @@ namespace Cantera { } } + //! Update the temperature parameters in the representation + /*! + * The workspace has a length of one + * + * @param T Temperature (Kelvin) + * @param work Vector of working space representing + * the temperature dependent part of the + * parameterization. + */ virtual void updateTemp(doublereal T, workPtr work) const { doublereal Fcent = (1.0 - m_a) * exp(- T * m_rt3 ) + m_a * exp(- T * m_rt1 ); *work = log10( fmaxx( Fcent, SmallNumber ) ); } + //! Function that returns F + /*! + * @param pr Value of the reduced pressure for this reaction + * @param work Pointer to the previously saved work space + */ virtual doublereal F(doublereal pr, const_workPtr work) const { doublereal lpr,f1,lgf, cc, nn; lpr = log10( fmaxx(pr,SmallNumber) ); @@ -103,28 +140,66 @@ namespace Cantera { return pow(10.0, lgf ); } + //! Utility function that returns the size of the workspace virtual size_t workSize() { return 1; } protected: - doublereal m_a, m_rt3, m_rt1; + //! parameter a in the 4-parameter Troe falloff function + /*! + * This is unitless + */ + doublereal m_a; - private: + //! parameter 1/T_3 in the 4-parameter Troe falloff function + /*! + * This has units of Kelvin-1 + */ + doublereal m_rt3; + + //! parameter 1/T_1 in the 4-parameter Troe falloff function + /*! + * This has units of Kelvin-1 + */ + doublereal m_rt1; }; - //! The 4-parameter Troe falloff parameterization. /*! + * The falloff function defines the value of \f$ F \f$ in the following + * rate expression + * + * \f[ + * k = k_{\infty} \left( \frac{P_r}{1 + P_r} \right) F + * \f] + * where + * \f[ + * P_r = \frac{k_0 [M]}{k_{\infty}} + * \f] + * * This parameterization is defined by * - * \f[ F = F_{cent}^{1/(1 + f_1^2)} \f] - * where - * \f[ F_{cent} = (1 - A)\exp(-T/T_3) + A \exp(-T/T_1) + \exp(-T_2/T) \f] - * \f[ f_1 = (\log_{10} P_r + C) / \left(N - 0.14 - * (\log_{10} P_r + C)\right) \f] - * \f[ C = -0.4 - 0.67 \log_{10} F_{cent} \f] - * \f[ N = 0.75 - 1.27 \log_{10} F_{cent} \f] + * \f[ + * F = F_{cent}^{1/(1 + f_1^2)} + * \f] + * where + * \f[ + * F_{cent} = (1 - A)\exp(-T/T_3) + A \exp(-T/T_1) + \exp(-T_2/T) + * \f] + * + * \f[ + * f_1 = (\log_{10} P_r + C) / + * \left(N - 0.14 (\log_{10} P_r + C)\right) + * \f] + * + * \f[ + * C = -0.4 - 0.67 \log_{10} F_{cent} + * \f] + * + * \f[ + * N = 0.75 - 1.27 \log_{10} F_{cent} + * \f] * * * There are a few requirements for the parameters @@ -141,11 +216,19 @@ namespace Cantera { */ class Troe4 : public Falloff { public: - + //! Constructor Troe4() : m_a (0.0), m_rt3 (0.0), m_rt1 (0.0), m_t2 (0.0) {} + + //! Destructor virtual ~Troe4() {} - + + + //! Initialization of the object + /*! + * @param c Vector of four doubles: The doubles are the parameters, + * a,, T_3, T_1, and T_2 of the SRI parameterization + */ virtual void init(const vector_fp& c) { m_a = c[0]; if (c[1] <= 0.0) { @@ -172,8 +255,15 @@ namespace Cantera { m_t2 = c[3]; } - - + //! Update the temperature parameters in the representation + /*! + * The workspace has a length of one + * + * @param T Temperature (Kelvin) + * @param work Vector of working space representing + * the temperature dependent part of the + * parameterization. + */ virtual void updateTemp(doublereal T, workPtr work) const { doublereal Fcent = (1.0 - m_a) * exp(- T * m_rt3 ) + m_a * exp(- T * m_rt1 ) @@ -181,6 +271,11 @@ namespace Cantera { *work = log10( fmaxx( Fcent, SmallNumber ) ); } + //! Function that returns F + /*! + * @param pr Value of the reduced pressure for this reaction + * @param work Pointer to the previously saved work space + */ virtual doublereal F(doublereal pr, const_workPtr work) const { doublereal lpr,f1,lgf, cc, nn; lpr = log10( fmaxx(pr,SmallNumber) ); @@ -191,21 +286,59 @@ namespace Cantera { return pow(10.0, lgf ); } + //! Utility function that returns the size of the workspace virtual size_t workSize() { return 1; } protected: - doublereal m_a, m_rt3, m_rt1; - doublereal m_t2; + //! parameter a in the 4-parameter Troe falloff function + /*! + * This is unitless + */ + doublereal m_a; - private: + //! parameter 1/T_3 in the 4-parameter Troe falloff function + /*! + * This has units of Kelvin-1 + */ + doublereal m_rt3; + + //! parameter 1/T_1 in the 4-parameter Troe falloff function + /*! + * This has units of Kelvin-1 + */ + doublereal m_rt1; + + //! parameter T_2 in the 4-parameter Troe falloff function + /*! + * This has units of Kelvin + */ + doublereal m_t2; }; - /** - * The 3-parameter SRI falloff function. + + //! The 3-parameter SRI falloff function for F + /*! + * The falloff function defines the value of \f$ F \f$ in the following + * rate expression * + * \f[ + * k = k_{\infty} \left( \frac{P_r}{1 + P_r} \right) F + * \f] + * where + * \f[ + * P_r = \frac{k_0 [M]}{k_{\infty}} + * \f] * - * m_c is required to greater than or equal to zero. If it is zero, + * \f[ + * F = {\left( a \; exp(\frac{-b}{T}) + exp(\frac{-T}{c})\right)}^n + * \f] + * where + * \f[ + * n = \frac{1.0}{1.0 + {\log_{10} P_r}^2} + * \f] + * + * \f$ c \f$ s required to greater than or equal to zero. If it is zero, * then the corresponding term is set to zero. * * @ingroup falloffGroup @@ -214,21 +347,42 @@ namespace Cantera { public: + //! Constructor SRI3() {} + + //! Destructor virtual ~SRI3() {} + //! Initialization of the object + /*! + * @param c Vector of three doubles: The doubles are the parameters, + * a, b, and c of the SRI parameterization + */ virtual void init(const vector_fp& c) { m_a = c[0]; m_b = c[1]; - m_c = c[2]; } + //! Update the temperature parameters in the representation + /*! + * The workspace has a length of one + * + * @param T Temperature (Kelvin) + * @param work Vector of working space representing + * the temperature dependent part of the + * parameterization. + */ virtual void updateTemp(doublereal T, workPtr work) const { *work = m_a * exp( - m_b / T); if (m_c != 0.0) *work += exp( - T/m_c ); } + //! Function that returns F + /*! + * @param pr Value of the reduced pressure for this reaction + * @param work Pointer to the previously saved work space + */ virtual doublereal F(doublereal pr, const_workPtr work) const { doublereal lpr = log10( fmaxx(pr,SmallNumber) ); doublereal xx = 1.0/(1.0 + lpr*lpr); @@ -236,19 +390,55 @@ namespace Cantera { return ff; } + //! Utility function that returns the size of the workspace virtual size_t workSize() { return 1; } protected: - doublereal m_a, m_b, m_c; - private: + //! parameter a in the 3-parameter SRI falloff function + /*! + * This is unitless + */ + doublereal m_a; + //! parameter b in the 3-parameter SRI falloff function + /*! + * This has units of Kelvin + */ + doublereal m_b; + + //! parameter c in the 3-parameter SRI falloff function + /*! + * This has units of Kelvin + */ + doublereal m_c; }; - /** - * The 5-parameter SRI falloff function. + //! The 5-parameter SRI falloff function. + /*! + * The falloff function defines the value of \f$ F \f$ in the following + * rate expression * + * \f[ + * k = k_{\infty} \left( \frac{P_r}{1 + P_r} \right) F + * \f] + * where + * \f[ + * P_r = \frac{k_0 [M]}{k_{\infty}} + * \f] + * + * \f[ + * F = {\left( a \; exp(\frac{-b}{T}) + exp(\frac{-T}{c})\right)}^n + * \; d \; exp(\frac{-e}{T}) + * \f] + * where + * \f[ + * n = \frac{1.0}{1.0 + {\log_{10} P_r}^2} + * \f] + * + * \f$ c \f$ s required to greater than or equal to zero. If it is zero, + * then the corresponding term is set to zero. * * m_c is required to greater than or equal to zero. If it is zero, * then the corresponding term is set to zero. @@ -260,8 +450,18 @@ namespace Cantera { class SRI5 : public Falloff { public: + + //! Constructor SRI5() {} + + //! Destructor virtual ~SRI5() {} + + //! Initialization of the object + /*! + * @param c Vector of five doubles: The doubles are the parameters, + * a, b, c, d, and e of the SRI parameterization + */ virtual void init(const vector_fp& c) { m_a = c[0]; m_b = c[1]; @@ -270,32 +470,105 @@ namespace Cantera { m_e = c[4]; } + //! Update the temperature parameters in the representation + /*! + * The workspace has a length of two + * + * @param T Temperature (Kelvin) + * @param work Vector of working space representing + * the temperature dependent part of the + * parameterization. + */ virtual void updateTemp(doublereal T, workPtr work) const { *work = m_a * exp( - m_b / T); if (m_c != 0.0) *work += exp( - T/m_c ); work[1] = m_d * pow(T,m_e); } + //! Function that returns F + /*! + * @param pr Value of the reduced pressure for this reaction + * @param work Pointer to the previously saved work space + */ virtual doublereal F(doublereal pr, const_workPtr work) const { doublereal lpr = log10( fmaxx(pr,SmallNumber) ); doublereal xx = 1.0/(1.0 + lpr*lpr); return pow( *work, xx) * work[1]; } + //! Utility function that returns the size of the workspace virtual size_t workSize() { return 2; } protected: - doublereal m_a, m_b, m_c; - doublereal m_d, m_e; + //! parameter a in the 5-parameter SRI falloff function + /*! + * This is unitless + */ + doublereal m_a; - private: + //! parameter b in the 5-parameter SRI falloff function + /*! + * This has units of Kelvin + */ + doublereal m_b; + + //! parameter c in the 5-parameter SRI falloff function + /*! + * This has units of Kelvin + */ + doublereal m_c; + + //! parameter d in the 5-parameter SRI falloff function + /*! + * This is unitless + */ + doublereal m_d; + + //! parameter d in the 5-parameter SRI falloff function + /*! + * This is unitless + */ + doublereal m_e; }; //! Wang-Frenklach falloff function. /*! + * + * The falloff function defines the value of \f$ F \f$ in the following + * rate expression + * + * \f[ + * k = k_{\infty} \left( \frac{P_r}{1 + P_r} \right) F + * \f] + * where + * \f[ + * P_r = \frac{k_0 [M]}{k_{\infty}} + * \f] + * + * \f[ + * F = 10.0^{Flog} + * \f] + * where + * \f[ + * Flog = \frac{\log_{10} F_{cent}}{\exp{(\frac{\log_{10} P_r - \alpha}{\sigma})^2}} + * \f] + * where + * + * \f[ + * F_{cent} = (1 - A)\exp(-T/T_3) + A \exp(-T/T_1) + \exp(-T/T_2) + * \f] + * + * \f[ + * \alpha = \alpha_0 + \alpha_1 T + \alpha_2 T^2 + * \f] + * + * \f[ + * \sigma = \sigma_0 + \sigma_1 T + \sigma_2 T^2 + * \f] + * * * Reference: Wang, H., and * Frenklach, M., Chem. Phys. Lett. vol. 205, 271 (1993). @@ -316,6 +589,9 @@ namespace Cantera { //! Initialization routine /*! * @param c Vector of 10 doubles + * with the following ordering: + * a, T_1, T_2, T_3, alpha0, alpha1, alpha2 + * sigma0, sigma1, sigma2 */ virtual void init(const vector_fp& c) { m_a = c[0]; @@ -329,7 +605,16 @@ namespace Cantera { m_sigma1 = c[8]; m_sigma2 = c[9]; } - + + //! Update the temperature parameters in the representation + /*! + * The workspace has a length of three + * + * @param T Temperature (Kelvin) + * @param work Vector of working space representing + * the temperature dependent part of the + * parameterization. + */ virtual void updateTemp(doublereal T, workPtr work) const { work[0] = m_alpha0 + (m_alpha1 + m_alpha2*T)*T; // alpha work[1] = m_sigma0 + (m_sigma1 + m_sigma2*T)*T; // sigma @@ -338,6 +623,11 @@ namespace Cantera { work[2] = log10(Fcent); } + //! Function that returns F + /*! + * @param pr Value of the reduced pressure for this reaction + * @param work Pointer to the previously saved work space + */ virtual doublereal F(doublereal pr, const_workPtr work) const { doublereal lpr = log10( fmaxx(pr, SmallNumber) ); doublereal x = (lpr - work[0])/work[1]; @@ -345,6 +635,7 @@ namespace Cantera { return pow( 10.0, flog); } + //! Utility function that returns the size of the workspace virtual size_t workSize() { return 3; } protected: @@ -413,7 +704,16 @@ namespace Cantera { }; - + // Factory routine that returns a new Falloff parameterization object + /* + * @param type Integer type of the falloff parameterization. These + * integers are listed in reaction_defs.h + * + * @param c Vector of input parameterizations for the Falloff + * object. The function is initialized with this vector. + * + * @return Returns a pointer to a newly malloced Falloff object + */ Falloff* FalloffFactory::newFalloff(int type, const vector_fp& c) { Falloff* f; switch(type) {