37 reactantNames_(dict.
lookup(
"reactants")),
60 r_[i] = st[reactantNames_[i]];
75 inline Foam::scalar Foam::LangmuirHinshelwoodReactionRate::operator()
83 const scalar c1m =
pow(c[r_[0]], m_[1]);
84 const scalar c2m =
pow(c[r_[1]], m_[2]);
86 const scalar k0 = A_[0]*
pow(T, beta_[0])*
exp(-Ta_[0]/T);
87 const scalar k1 = A_[1]*
pow(T, beta_[1])*
exp(-Ta_[1]/T);
88 const scalar k2 = A_[2]*
pow(T, beta_[2])*
exp(-Ta_[2]/T);
90 const scalar
b = a_ + k1*c1m + k2*c2m;
92 return k0/
pow(b, m_[0]);
104 const scalar c1m =
pow(c[r_[0]], m_[1]);
105 const scalar c2m =
pow(c[r_[1]], m_[2]);
107 const scalar k0 = A_[0]*
pow(T, beta_[0])*
exp(-Ta_[0]/T);
108 const scalar k1 = A_[1]*
pow(T, beta_[1])*
exp(-Ta_[1]/T);
109 const scalar k2 = A_[2]*
pow(T, beta_[2])*
exp(-Ta_[2]/T);
111 const scalar dk0dT = k0/T*(beta_[0] + Ta_[0]/
T);
112 const scalar dk1dT = k1/T*(beta_[1] + Ta_[1]/
T);
113 const scalar dk2dT = k2/T*(beta_[2] + Ta_[2]/
T);
115 const scalar
b = a_ + k1*c1m + k2*c2m;
116 const scalar dbdT = dk1dT*c1m + dk2dT*c2m;
118 return (dk0dT - k0*m_[0]*dbdT/b)/
pow(b, m_[0]);
137 const scalar c1m =
pow(c[r_[0]], m_[1]);
138 const scalar c2m =
pow(c[r_[1]], m_[2]);
140 const scalar dc1mdc1 = m_[1]*c1m/c[r_[0]];
141 const scalar dc2mdc2 = m_[2]*c2m/c[r_[1]];
143 const scalar k0 = A_[0]*
pow(T, beta_[0])*
exp(-Ta_[0]/T);
144 const scalar k1 = A_[1]*
pow(T, beta_[1])*
exp(-Ta_[1]/T);
145 const scalar k2 = A_[2]*
pow(T, beta_[2])*
exp(-Ta_[2]/T);
147 const scalar
b = a_ + k1*c1m + k2*c2m;
148 const scalar dbdc1 = k1*dc1mdc1;
149 const scalar dbdc2 = k2*dc2mdc2;
151 const scalar
k = k0/
pow(b, m_[0]);
154 ddc[r_[0]] = - k*m_[0]/b*dbdc1;
155 ddc[r_[1]] = - k*m_[1]/b*dbdc2;
bool hasDdc() const
Is the rate a function of concentration?
#define forAll(list, i)
Loop across all elements in list.
virtual Ostream & write(const char)=0
Write character.
Langmuir-Hinshelwood reaction rate for gaseous reactions on surfaces.
A list of keyword definitions, which are a keyword followed by any number of values (e...
const dimensionedScalar b
Wien displacement law constant: default SI units: [m K].
label k
Boltzmann constant.
const dimensionedScalar c
Speed of light in a vacuum.
dimensionedScalar exp(const dimensionedScalar &ds)
void postEvaluate() const
Post-evaluation hook.
LangmuirHinshelwoodReactionRate(const speciesTable &species, const dictionary &dict)
Construct from dictionary.
scalar ddT(const scalar p, const scalar T, const scalarField &c, const label li) const
The derivative of the rate w.r.t. temperature.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
void ddc(const scalar p, const scalar T, const scalarField &c, const label li, scalarField &ddc) const
The derivative of the rate w.r.t. concentration.
void write(Ostream &os) const
Write to stream.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
A wordList with hashed indices for faster lookup by name.
void preEvaluate() const
Pre-evaluation hook.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.