Go to the documentation of this file.
30 template<
class EquationOfState>
33 const EquationOfState& st,
50 template<
class EquationOfState>
54 const eConstThermo<EquationOfState>& ct
57 EquationOfState(
name, ct),
65 template<
class EquationOfState>
73 template<
class EquationOfState>
83 template<
class EquationOfState>
93 template<
class EquationOfState>
104 template<
class EquationOfState>
111 return Cv_*(
T - Tref_) + Esref_ + EquationOfState::E(
p,
T);
115 template<
class EquationOfState>
122 return Es(
p,
T) + Hc();
126 template<
class EquationOfState>
133 template<
class EquationOfState>
144 template<
class EquationOfState>
156 template<
class EquationOfState>
169 template<
class EquationOfState>
175 scalar Y1 = this->
Y();
177 EquationOfState::operator+=(ct);
179 if (
mag(this->
Y()) > SMALL)
182 const scalar Y2 = ct.Y()/this->
Y();
184 Cv_ = Y1*Cv_ + Y2*ct.Cv_;
185 Hf_ = Y1*Hf_ + Y2*ct.Hf_;
186 Esref_ = Y1*Esref_ + Y2*ct.Esref_;
193 template<
class EquationOfState>
196 const eConstThermo<EquationOfState>& ct1,
197 const eConstThermo<EquationOfState>& ct2
202 static_cast<const EquationOfState&
>(ct1)
203 +
static_cast<const EquationOfState&
>(ct2)
206 if (
mag(eofs.Y()) < SMALL)
208 return eConstThermo<EquationOfState>
219 return eConstThermo<EquationOfState>
222 ct1.Y()/eofs.Y()*ct1.Cv_
223 + ct2.Y()/eofs.Y()*ct2.Cv_,
224 ct1.Y()/eofs.Y()*ct1.Hf_
225 + ct2.Y()/eofs.Y()*ct2.Hf_,
227 ct1.Y()/eofs.Y()*ct1.Esref_
228 + ct2.Y()/eofs.Y()*ct2.Esref_
234 template<
class EquationOfState>
238 const eConstThermo<EquationOfState>& ct
241 return eConstThermo<EquationOfState>
243 s*
static_cast<const EquationOfState&
>(ct),
252 template<
class EquationOfState>
255 const eConstThermo<EquationOfState>& ct1,
256 const eConstThermo<EquationOfState>& ct2
261 static_cast<const EquationOfState&
>(ct1)
262 ==
static_cast<const EquationOfState&
>(ct2)
265 return eConstThermo<EquationOfState>
268 ct2.Y()/eofs.Y()*ct2.Cv_
269 - ct1.Y()/eofs.Y()*ct1.Cv_,
270 ct2.Y()/eofs.Y()*ct2.Hf_
271 - ct1.Y()/eofs.Y()*ct1.Hf_,
273 ct2.Y()/eofs.Y()*ct2.Esref_
274 - ct1.Y()/eofs.Y()*ct1.Esref_
scalar Cv(const scalar p, const scalar T) const
autoPtr< eConstThermo > clone() const
static autoPtr< eConstThermo > New(const dictionary &dict)
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.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))
const dimensionedScalar Pstd
Constant properties thermodynamics package templated on an equation of state.
scalar limit(const scalar T) const
const volScalarField & Cv
const dimensionedScalar Tstd
scalar Ea(const scalar p, const scalar T) const
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar Es(const scalar p, const scalar T) const
scalar Gstd(const scalar T) const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
dimensionedScalar log(const dimensionedScalar &ds)
PtrList< volScalarField > & Y
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
scalar S(const scalar p, const scalar T) const
scalar Es(const scalar p, const scalar T) const
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const volScalarField & Cp
scalar dCpdT(const scalar p, const scalar T) const
word name(const expressions::valueTypeCode typeCode)