28 template<
class EquationOfState>
31 const EquationOfState& st,
44 template<
class EquationOfState>
48 const eConstThermo<EquationOfState>& ct
51 EquationOfState(name, ct),
57 template<
class EquationOfState>
68 template<
class EquationOfState>
81 template<
class EquationOfState>
91 template<
class EquationOfState>
98 return Cv_ + this->CpMCv(p, T) + EquationOfState::Cp(p, T);
102 template<
class EquationOfState>
109 return Cp(p, T)*T + Hf_ + EquationOfState::H(p, T);
113 template<
class EquationOfState>
120 return Cp(p, T)*T + EquationOfState::H(p, T);
124 template<
class EquationOfState>
131 template<
class EquationOfState>
138 return Cp(p, T)*
log(T/
Tstd) + EquationOfState::S(p, T);
142 template<
class EquationOfState>
153 template<
class EquationOfState>
166 template<
class EquationOfState>
167 inline void Foam::eConstThermo<EquationOfState>::operator+=
172 scalar Y1 = this->
Y();
174 EquationOfState::operator+=(ct);
176 if (
mag(this->
Y()) > small)
179 const scalar Y2 = ct.Y()/this->
Y();
181 Cv_ = Y1*Cv_ + Y2*ct.Cv_;
182 Hf_ = Y1*Hf_ + Y2*ct.Hf_;
189 template<
class EquationOfState>
198 static_cast<const EquationOfState&>(ct1)
199 + static_cast<const EquationOfState&>(ct2)
202 if (
mag(eofs.Y()) < small)
216 ct1.Y()/eofs.Y()*ct1.Cv_
217 + ct2.Y()/eofs.Y()*ct2.Cv_,
218 ct1.Y()/eofs.Y()*ct1.Hf_
219 + ct2.Y()/eofs.Y()*ct2.Hf_
225 template<
class EquationOfState>
234 s*
static_cast<const EquationOfState&
>(ct),
241 template<
class EquationOfState>
250 static_cast<const EquationOfState&>(ct1)
251 == static_cast<const EquationOfState&>(ct2)
257 ct2.Y()/eofs.Y()*ct2.Cv_
258 - ct1.Y()/eofs.Y()*ct1.Cv_,
259 ct2.Y()/eofs.Y()*ct2.Hf_
260 - ct1.Y()/eofs.Y()*ct1.Hf_
scalar limit(const scalar T) const
Limit the temperature to be in the range Tlow_ to Thigh_.
dimensionedScalar log(const dimensionedScalar &ds)
scalar Hc() const
Chemical enthalpy [J/kg].
A list of keyword definitions, which are a keyword followed by any number of values (e...
scalar dGdT(const scalar p, const scalar T) const
Derivative of Gibbs free energy w.r.t. temperature.
Constant properties thermodynamics package templated on an equation of state.
scalar Cp(const scalar p, const scalar T) const
Heat capacity at constant pressure [J/(kg K)].
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 Ha(const scalar p, const scalar T) const
Absolute Enthalpy [J/kg].
const dimensionedScalar Tstd
Standard temperature.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
autoPtr< eConstThermo > clone() const
Construct and return a clone.
word name(const complex &)
Return a string representation of a complex.
scalar S(const scalar p, const scalar T) const
Entropy [J/(kg K)].
PtrList< volScalarField > & Y
scalar dCpdT(const scalar p, const scalar T) const
Temperature derivative of heat capacity at constant pressure.
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...
static autoPtr< eConstThermo > New(const dictionary &dict)
scalar Hs(const scalar p, const scalar T) const
Sensible enthalpy [J/kg].