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>
115 template<
class Thermo>
131 template<
class Thermo>
138 return As_*
::sqrt(T)/(1.0 + Ts_/
T);
142 template<
class Thermo>
145 const scalar p,
const scalar T
148 scalar Cv_ = this->Cv(p, T);
149 return mu(p, T)*Cv_*(1.32 + 1.77*this->
R()/Cv_);
153 template<
class Thermo>
161 return kappa(p, T)/this->Cpv(p, T);
167 template<
class Thermo>
168 inline void Foam::sutherlandTransport<Thermo>::operator=
173 Thermo::operator=(st);
180 template<
class Thermo>
181 inline void Foam::sutherlandTransport<Thermo>::operator+=
186 scalar molr1 = this->nMoles();
188 Thermo::operator+=(st);
190 molr1 /= this->nMoles();
191 scalar molr2 = st.nMoles()/this->nMoles();
193 As_ = molr1*As_ + molr2*st.As_;
194 Ts_ = molr1*Ts_ + molr2*st.Ts_;
198 template<
class Thermo>
199 inline void Foam::sutherlandTransport<Thermo>::operator-=
204 scalar molr1 = this->nMoles();
206 Thermo::operator-=(st);
208 molr1 /= this->nMoles();
209 scalar molr2 = st.nMoles()/this->nMoles();
211 As_ = molr1*As_ - molr2*st.As_;
212 Ts_ = molr1*Ts_ - molr2*st.Ts_;
216 template<
class Thermo>
217 inline void Foam::sutherlandTransport<Thermo>::operator*=
222 Thermo::operator*=(s);
228 template<
class Thermo>
237 static_cast<const Thermo&>(st1) + static_cast<const Thermo&>(st2)
240 scalar molr1 = st1.nMoles()/t.nMoles();
241 scalar molr2 = st2.nMoles()/t.nMoles();
246 molr1*st1.As_ + molr2*st2.As_,
247 molr1*st1.Ts_ + molr2*st2.Ts_
252 template<
class Thermo>
261 static_cast<const Thermo&>(st1) - static_cast<const Thermo&>(st2)
264 scalar molr1 = st1.nMoles()/t.nMoles();
265 scalar molr2 = st2.nMoles()/t.nMoles();
270 molr1*st1.As_ - molr2*st2.As_,
271 molr1*st1.Ts_ - molr2*st2.Ts_
276 template<
class Thermo>
285 s*
static_cast<const Thermo&
>(st),
292 template<
class Thermo>
A list of keyword definitions, which are a keyword followed by any number of values (e...
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
dimensionedScalar sqrt(const dimensionedScalar &ds)
static autoPtr< sutherlandTransport > New(Istream &is)
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
autoPtr< sutherlandTransport > clone() const
Construct and return a clone.
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))
scalar mu(const scalar p, const scalar T) const
Dynamic viscosity [kg/ms].
A class for handling words, derived from string.
sutherlandTransport(const Thermo &t, const scalar As, const scalar Ts)
Construct from components.
const dimensionedScalar mu
Atomic mass unit.
#define R(A, B, C, D, E, F, K, M)
scalar alphah(const scalar p, const scalar T) const
Thermal diffusivity of enthalpy [kg/ms].
scalar kappa(const scalar p, const scalar T) const
Thermal conductivity [W/mK].
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.