30 template<
class Thermo>
33 const scalar mu1,
const scalar T1,
34 const scalar mu2,
const scalar T2
37 scalar rootT1 =
sqrt(T1);
38 scalar mu1rootT2 = mu1*
sqrt(T2);
39 scalar mu2rootT1 = mu2*rootT1;
41 Ts_ = (mu2rootT1 - mu1rootT2)/(mu1rootT2/T1 - mu2rootT1/T2);
43 As_ = mu1*(1.0 + Ts_/T1)/rootT1;
49 template<
class Thermo>
63 template<
class Thermo>
67 const scalar mu1,
const scalar T1,
68 const scalar mu2,
const scalar T2
73 calcCoeffs(mu1, T1, mu2, T2);
77 template<
class Thermo>
90 template<
class Thermo>
101 template<
class Thermo>
117 template<
class Thermo>
124 return As_*
::sqrt(T)/(1.0 + Ts_/
T);
128 template<
class Thermo>
135 scalar Cv_ = this->
Cv(p, T);
136 return mu(p, T)*Cv_*(1.32 + 1.77*this->
R()/Cv_);
142 template<
class Thermo>
143 inline void Foam::sutherlandTransport<Thermo>::operator+=
148 scalar Y1 = this->
Y();
150 Thermo::operator+=(st);
152 if (
mag(this->
Y()) > small)
155 scalar Y2 = st.Y()/this->
Y();
157 As_ = Y1*As_ + Y2*st.As_;
158 Ts_ = Y1*Ts_ + Y2*st.Ts_;
163 template<
class Thermo>
164 inline void Foam::sutherlandTransport<Thermo>::operator*=
169 Thermo::operator*=(s);
175 template<
class Thermo>
184 static_cast<const Thermo&>(st1) + static_cast<const Thermo&>(st2)
187 if (
mag(t.Y()) < small)
199 scalar Y1 = st1.Y()/t.Y();
200 scalar Y2 = st2.Y()/t.Y();
205 Y1*st1.As_ + Y2*st2.As_,
206 Y1*st1.Ts_ + Y2*st2.Ts_
212 template<
class Thermo>
221 s*
static_cast<const Thermo&
>(st),
scalar Cv(const scalar p, const scalar T) const
A list of keyword definitions, which are a keyword followed by any number of values (e...
scalar kappa(const scalar p, const scalar T) const
Thermal conductivity [W/m/K].
dimensionedScalar sqrt(const dimensionedScalar &ds)
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
A class for handling words, derived from string.
sutherlandTransport(const Thermo &t, const scalar As, const scalar Ts)
Construct from components.
autoPtr< sutherlandTransport > clone() const
Construct and return a clone.
static autoPtr< sutherlandTransport > New(const dictionary &dict)
const dimensionedScalar mu
Atomic mass unit.
scalar mu(const scalar p, const scalar T) const
Dynamic viscosity [kg/m/s].
#define R(A, B, C, D, E, F, K, M)
PtrList< volScalarField > & Y
dimensioned< scalar > mag(const dimensioned< Type > &)
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Transport package using Sutherland's formula for viscosity: