30template<
class EquationOfState>
31inline Foam::eConstThermo<EquationOfState>::eConstThermo
33 const EquationOfState& st,
50template<
class EquationOfState>
51inline Foam::eConstThermo<EquationOfState>::eConstThermo
57 EquationOfState(
name, ct),
65template<
class EquationOfState>
73template<
class EquationOfState>
83template<
class EquationOfState>
93template<
class EquationOfState>
100 return Cv_ + EquationOfState::Cv(
p,
T);
104template<
class EquationOfState>
111 return Cv_*(
T - Tref_) + Esref_ + EquationOfState::E(
p,
T);
115template<
class EquationOfState>
126template<
class EquationOfState>
133template<
class EquationOfState>
144template<
class EquationOfState>
151 Cv_*(
T - Tref_) + Esref_ +
Hc() +
Pstd/EquationOfState::rho(
Pstd,
T)
156template<
class EquationOfState>
169template<
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_;
193template<
class EquationOfState>
194inline Foam::eConstThermo<EquationOfState> Foam::operator+
202 static_cast<const EquationOfState&
>(ct1)
203 +
static_cast<const EquationOfState&
>(ct2)
206 if (
mag(eofs.Y()) < SMALL)
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_
234template<
class EquationOfState>
235inline Foam::eConstThermo<EquationOfState> Foam::operator*
243 s*
static_cast<const EquationOfState&
>(ct),
252template<
class EquationOfState>
253inline Foam::eConstThermo<EquationOfState> Foam::operator==
261 static_cast<const EquationOfState&
>(ct1)
262 ==
static_cast<const EquationOfState&
>(ct2)
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 Es(const scalar p, const scalar T) const
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Constant properties thermodynamics package templated on an equation of state.
scalar limit(const scalar T) const
Limit temperature to be within the range.
scalar dCpdT(const scalar p, const scalar T) const
Temperature derivative of heat capacity at constant pressure.
scalar Hc() const
Chemical enthalpy [J/kg].
scalar S(const scalar p, const scalar T) const
Entropy [J/(kg K)].
scalar Cv(const scalar p, const scalar T) const
Heat capacity at constant volume [J/(kg K)].
scalar Gstd(const scalar T) const
Gibbs free energy of the mixture in the standard state [J/kg].
static autoPtr< eConstThermo > New(const dictionary &dict)
autoPtr< eConstThermo > clone() const
Construct and return a clone.
scalar Es(const scalar p, const scalar T) const
Sensible internal energy [J/kg].
scalar Ea(const scalar p, const scalar T) const
Absolute internal energy [J/kg].
A class for handling words, derived from Foam::string.
PtrList< volScalarField > & Y
const volScalarField & Cp
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
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 scalar Pstd
Standard pressure: default in [Pa].
const scalar Tstd
Standard temperature: default in [K].
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
dimensionedScalar log(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)