optimisation for diffusion calc

This commit is contained in:
andy
2009-07-07 18:21:13 +01:00
parent f9e3cf3e9e
commit eebfda5f10

View File

@ -59,6 +59,9 @@ class APIdiffCoefFunc
// API vapour mass diffusivity function coefficients // API vapour mass diffusivity function coefficients
scalar a_, b_, wf_, wa_; scalar a_, b_, wf_, wa_;
// Helper variables
scalar alpha_, beta_;
public: public:
@ -74,7 +77,9 @@ public:
a_(a), a_(a),
b_(b), b_(b),
wf_(wf), wf_(wf),
wa_(wa) wa_(wa),
alpha_(sqrt(1/wf_ + 1/wa_)),
beta_(sqr((cbrt(a_) + cbrt(b_))))
{} {}
//- Construct from Istream //- Construct from Istream
@ -83,21 +88,21 @@ public:
a_(readScalar(is)), a_(readScalar(is)),
b_(readScalar(is)), b_(readScalar(is)),
wf_(readScalar(is)), wf_(readScalar(is)),
wa_(readScalar(is)) wa_(readScalar(is)),
alpha_(sqrt(1/wf_ + 1/wa_)),
beta_(sqr((cbrt(a_) + cbrt(b_))))
{} {}
// Member Functions // Member Functions
//- API vapour mass diffusivity function //- API vapour mass diffusivity function using properties from
// construction
scalar f(scalar p, scalar T) const scalar f(scalar p, scalar T) const
{ {
return return 3.6059e-3*(pow(1.8*T, 1.75))*alpha_/(p*beta_);
3.6059e-3*(pow(1.8*T, 1.75))*sqrt(1/wf_ + 1/wa_)
/(p*sqr((cbrt(a_) + cbrt(b_))));
} }
//- Write the function coefficients //- Write the function coefficients
void writeData(Ostream& os) const void writeData(Ostream& os) const
{ {