Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / thermophysicalModels / specie / reaction / reactionRate / LandauTellerReactionRate / LandauTellerReactionRateI.H
blob4e0a8a825af60e9114b1ca0d8cb5202907c08610
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
28 namespace Foam
31 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
33 // Construct from components
34 inline LandauTellerReactionRate::LandauTellerReactionRate
36     const scalar A,
37     const scalar beta,
38     const scalar Ta,
39     const scalar B,
40     const scalar C
43     A_(A),
44     beta_(beta),
45     Ta_(Ta),
46     B_(B),
47     C_(C)
51 //- Construct from Istream
52 inline LandauTellerReactionRate::LandauTellerReactionRate
54     const speciesTable&,
55     Istream& is
58     A_(readScalar(is.readBegin("LandauTellerReactionRate(Istream&)"))),
59     beta_(readScalar(is)),
60     Ta_(readScalar(is)),
61     B_(readScalar(is)),
62     C_(readScalar(is))
64     is.readEnd("LandauTellerReactionRate(Istream&)");
68 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
70 inline scalar LandauTellerReactionRate::operator()
72     const scalar T,
73     const scalar,
74     const scalarField&
75 ) const
77     scalar lta = A_;
79     if (mag(beta_) > VSMALL)
80     {
81         lta *= pow(T, beta_);
82     }
84     scalar expArg = 0.0;
86     if (mag(Ta_) > VSMALL)
87     {
88         expArg -= Ta_/T;
89     }
91     if (mag(B_) > VSMALL)
92     {
93         expArg += B_/cbrt(T);
94     }
96     if (mag(C_) > VSMALL)
97     {
98         expArg += C_/pow(T, 2.0/3.0);
99     }
101     if (mag(expArg) > VSMALL)
102     {
103         lta *= exp(expArg);
104     }
106     return lta;
110 inline Ostream& operator<<(Ostream& os, const LandauTellerReactionRate& arr)
112     os  << token::BEGIN_LIST
113         << arr.A_ << token::SPACE << arr.beta_ << token::SPACE << arr.Ta_
114         << token::SPACE << arr.B_ << token::SPACE << arr.C_
115         << token::END_LIST;
116     return os;
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 } // End namespace Foam
124 // ************************************************************************* //