[Kinetics] Move member function definitions out of Falloff.h
This commit is contained in:
parent
bbe2e1c79b
commit
873724c135
2 changed files with 96 additions and 67 deletions
|
|
@ -2,8 +2,6 @@
|
||||||
#define CT_FALLOFF_H
|
#define CT_FALLOFF_H
|
||||||
|
|
||||||
#include "cantera/base/ct_defs.h"
|
#include "cantera/base/ct_defs.h"
|
||||||
#include "cantera/base/stringUtils.h"
|
|
||||||
#include "cantera/base/ctexceptions.h"
|
|
||||||
|
|
||||||
namespace Cantera
|
namespace Cantera
|
||||||
{
|
{
|
||||||
|
|
@ -113,22 +111,7 @@ public:
|
||||||
* @param c Vector of three or four doubles: The doubles are the parameters,
|
* @param c Vector of three or four doubles: The doubles are the parameters,
|
||||||
* a, T_3, T_1, and (optionally) T_2 of the Troe parameterization
|
* a, T_3, T_1, and (optionally) T_2 of the Troe parameterization
|
||||||
*/
|
*/
|
||||||
virtual void init(const vector_fp& c) {
|
virtual void init(const vector_fp& c);
|
||||||
m_a = c[0];
|
|
||||||
if (c[1] == 0.0) {
|
|
||||||
m_rt3 = 1000.;
|
|
||||||
} else {
|
|
||||||
m_rt3 = 1.0/c[1];
|
|
||||||
}
|
|
||||||
if (c[2] == 0.0) {
|
|
||||||
m_rt1 = 1000.;
|
|
||||||
} else {
|
|
||||||
m_rt1 = 1.0/c[2];
|
|
||||||
}
|
|
||||||
if (c.size() == 4) {
|
|
||||||
m_t2 = c[3];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Update the temperature parameters in the representation
|
//! Update the temperature parameters in the representation
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -136,23 +119,9 @@ public:
|
||||||
* @param work Vector of working space, length 1, representing the
|
* @param work Vector of working space, length 1, representing the
|
||||||
* temperature-dependent part of the parameterization.
|
* temperature-dependent part of the parameterization.
|
||||||
*/
|
*/
|
||||||
virtual void updateTemp(doublereal T, doublereal* work) const {
|
virtual void updateTemp(doublereal T, doublereal* work) const;
|
||||||
doublereal Fcent = (1.0 - m_a) * exp(-T*m_rt3) + m_a * exp(-T*m_rt1);
|
|
||||||
if (m_t2) {
|
|
||||||
Fcent += exp(- m_t2 / T);
|
|
||||||
}
|
|
||||||
*work = log10(std::max(Fcent, SmallNumber));
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual doublereal F(doublereal pr, const doublereal* work) const {
|
virtual doublereal F(doublereal pr, const doublereal* work) const;
|
||||||
doublereal lpr,f1,lgf, cc, nn;
|
|
||||||
lpr = log10(std::max(pr,SmallNumber));
|
|
||||||
cc = -0.4 - 0.67 * (*work);
|
|
||||||
nn = 0.75 - 1.27 * (*work);
|
|
||||||
f1 = (lpr + cc)/ (nn - 0.14 * (lpr + cc));
|
|
||||||
lgf = (*work) / (1.0 + f1 * f1);
|
|
||||||
return pow(10.0, lgf);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual size_t workSize() {
|
virtual size_t workSize() {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -205,27 +174,7 @@ public:
|
||||||
* a, b, c, d (optional; default 1.0), and e (optional; default
|
* a, b, c, d (optional; default 1.0), and e (optional; default
|
||||||
* 0.0) of the SRI parameterization
|
* 0.0) of the SRI parameterization
|
||||||
*/
|
*/
|
||||||
virtual void init(const vector_fp& c) {
|
virtual void init(const vector_fp& c);
|
||||||
if (c[2] < 0.0) {
|
|
||||||
throw CanteraError("SRI::init()",
|
|
||||||
"m_c parameter is less than zero: " + fp2str(c[2]));
|
|
||||||
}
|
|
||||||
m_a = c[0];
|
|
||||||
m_b = c[1];
|
|
||||||
m_c = c[2];
|
|
||||||
|
|
||||||
if (c.size() == 5) {
|
|
||||||
if (c[3] < 0.0) {
|
|
||||||
throw CanteraError("SRI::init()",
|
|
||||||
"m_d parameter is less than zero: " + fp2str(c[3]));
|
|
||||||
}
|
|
||||||
m_d = c[3];
|
|
||||||
m_e = c[4];
|
|
||||||
} else {
|
|
||||||
m_d = 1.0;
|
|
||||||
m_e = 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Update the temperature parameters in the representation
|
//! Update the temperature parameters in the representation
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -233,19 +182,9 @@ public:
|
||||||
* @param work Vector of working space, length 2, representing the
|
* @param work Vector of working space, length 2, representing the
|
||||||
* temperature-dependent part of the parameterization.
|
* temperature-dependent part of the parameterization.
|
||||||
*/
|
*/
|
||||||
virtual void updateTemp(doublereal T, doublereal* work) const {
|
virtual void updateTemp(doublereal T, doublereal* 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual doublereal F(doublereal pr, const doublereal* work) const {
|
virtual doublereal F(doublereal pr, const doublereal* work) const;
|
||||||
doublereal lpr = log10(std::max(pr,SmallNumber));
|
|
||||||
doublereal xx = 1.0/(1.0 + lpr*lpr);
|
|
||||||
return pow(*work, xx) * work[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual size_t workSize() {
|
virtual size_t workSize() {
|
||||||
return 2;
|
return 2;
|
||||||
|
|
|
||||||
90
src/kinetics/Falloff.cpp
Normal file
90
src/kinetics/Falloff.cpp
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
/**
|
||||||
|
* @file Falloff.cpp Definitions for member functions of classes derived from
|
||||||
|
* Falloff
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cantera/base/stringUtils.h"
|
||||||
|
#include "cantera/base/ctexceptions.h"
|
||||||
|
#include "cantera/kinetics/Falloff.h"
|
||||||
|
|
||||||
|
namespace Cantera
|
||||||
|
{
|
||||||
|
|
||||||
|
void Troe::init(const vector_fp& c)
|
||||||
|
{
|
||||||
|
m_a = c[0];
|
||||||
|
if (c[1] == 0.0) {
|
||||||
|
m_rt3 = 1000.;
|
||||||
|
} else {
|
||||||
|
m_rt3 = 1.0/c[1];
|
||||||
|
}
|
||||||
|
if (c[2] == 0.0) {
|
||||||
|
m_rt1 = 1000.;
|
||||||
|
} else {
|
||||||
|
m_rt1 = 1.0/c[2];
|
||||||
|
}
|
||||||
|
if (c.size() == 4) {
|
||||||
|
m_t2 = c[3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Troe::updateTemp(double T, double* work) const
|
||||||
|
{
|
||||||
|
double Fcent = (1.0 - m_a) * exp(-T*m_rt3) + m_a * exp(-T*m_rt1);
|
||||||
|
if (m_t2) {
|
||||||
|
Fcent += exp(- m_t2 / T);
|
||||||
|
}
|
||||||
|
*work = log10(std::max(Fcent, SmallNumber));
|
||||||
|
}
|
||||||
|
|
||||||
|
double Troe::F(double pr, const double* work) const
|
||||||
|
{
|
||||||
|
double lpr,f1,lgf, cc, nn;
|
||||||
|
lpr = log10(std::max(pr,SmallNumber));
|
||||||
|
cc = -0.4 - 0.67 * (*work);
|
||||||
|
nn = 0.75 - 1.27 * (*work);
|
||||||
|
f1 = (lpr + cc)/ (nn - 0.14 * (lpr + cc));
|
||||||
|
lgf = (*work) / (1.0 + f1 * f1);
|
||||||
|
return pow(10.0, lgf);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SRI::init(const vector_fp& c)
|
||||||
|
{
|
||||||
|
if (c[2] < 0.0) {
|
||||||
|
throw CanteraError("SRI::init()",
|
||||||
|
"m_c parameter is less than zero: " + fp2str(c[2]));
|
||||||
|
}
|
||||||
|
m_a = c[0];
|
||||||
|
m_b = c[1];
|
||||||
|
m_c = c[2];
|
||||||
|
|
||||||
|
if (c.size() == 5) {
|
||||||
|
if (c[3] < 0.0) {
|
||||||
|
throw CanteraError("SRI::init()",
|
||||||
|
"m_d parameter is less than zero: " + fp2str(c[3]));
|
||||||
|
}
|
||||||
|
m_d = c[3];
|
||||||
|
m_e = c[4];
|
||||||
|
} else {
|
||||||
|
m_d = 1.0;
|
||||||
|
m_e = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SRI::updateTemp(double T, double* 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
double SRI::F(double pr, const double* work) const
|
||||||
|
{
|
||||||
|
double lpr = log10(std::max(pr,SmallNumber));
|
||||||
|
double xx = 1.0/(1.0 + lpr*lpr);
|
||||||
|
return pow(*work, xx) * work[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue