Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 namespace Foam
00029 {
00030
00031
00032
00033
00034 inline LandauTellerReactionRate::LandauTellerReactionRate
00035 (
00036 const scalar A,
00037 const scalar beta,
00038 const scalar Ta,
00039 const scalar B,
00040 const scalar C
00041 )
00042 :
00043 A_(A),
00044 beta_(beta),
00045 Ta_(Ta),
00046 B_(B),
00047 C_(C)
00048 {}
00049
00050
00051
00052 inline LandauTellerReactionRate::LandauTellerReactionRate
00053 (
00054 const speciesTable&,
00055 Istream& is
00056 )
00057 :
00058 A_(readScalar(is.readBegin("LandauTellerReactionRate(Istream&)"))),
00059 beta_(readScalar(is)),
00060 Ta_(readScalar(is)),
00061 B_(readScalar(is)),
00062 C_(readScalar(is))
00063 {
00064 is.readEnd("LandauTellerReactionRate(Istream&)");
00065 }
00066
00067
00068
00069
00070 inline scalar LandauTellerReactionRate::operator()
00071 (
00072 const scalar T,
00073 const scalar,
00074 const scalarField&
00075 ) const
00076 {
00077 scalar lta = A_;
00078
00079 if (mag(beta_) > VSMALL)
00080 {
00081 lta *= pow(T, beta_);
00082 }
00083
00084 scalar expArg = 0.0;
00085
00086 if (mag(Ta_) > VSMALL)
00087 {
00088 expArg -= Ta_/T;
00089 }
00090
00091 if (mag(B_) > VSMALL)
00092 {
00093 expArg += B_/cbrt(T);
00094 }
00095
00096 if (mag(C_) > VSMALL)
00097 {
00098 expArg += C_/pow(T, 2.0/3.0);
00099 }
00100
00101 if (mag(expArg) > VSMALL)
00102 {
00103 lta *= exp(expArg);
00104 }
00105
00106 return lta;
00107 }
00108
00109
00110 inline Ostream& operator<<(Ostream& os, const LandauTellerReactionRate& arr)
00111 {
00112 os << token::BEGIN_LIST
00113 << arr.A_ << token::SPACE << arr.beta_ << token::SPACE << arr.Ta_
00114 << token::SPACE << arr.B_ << token::SPACE << arr.C_
00115 << token::END_LIST;
00116 return os;
00117 }
00118
00119
00120
00121
00122 }
00123
00124