32template<
class Specie,
int PolySize>
46template<
class Specie,
int PolySize>
54 rhoCoeffs_(ip.rhoCoeffs_)
58template<
class Specie,
int PolySize>
66template<
class Specie,
int PolySize>
76template<
class Specie,
int PolySize>
83 return rhoCoeffs_.value(
T);
87template<
class Specie,
int PolySize>
98template<
class Specie,
int PolySize>
109template<
class Specie,
int PolySize>
120template<
class Specie,
int PolySize>
131template<
class Specie,
int PolySize>
142template<
class Specie,
int PolySize>
153template<
class Specie,
int PolySize>
164template<
class Specie,
int PolySize>
177template<
class Specie,
int PolySize>
183 scalar Y1 = this->
Y();
184 Specie::operator+=(ip);
186 if (
mag(this->
Y()) > SMALL)
189 const scalar Y2 = ip.Y()/this->
Y();
191 rhoCoeffs_ = Y1*rhoCoeffs_ + Y2*ip.rhoCoeffs_;
196template<
class Specie,
int PolySize>
199 Specie::operator*=(
s);
205template<
class Specie,
int PolySize>
206Foam::icoPolynomial<Specie, PolySize> Foam::operator+
214 static_cast<const Specie&
>(ip1)
215 +
static_cast<const Specie&
>(ip2)
218 if (
mag(sp.Y()) < SMALL)
228 const scalar Y1 = ip1.Y()/sp.Y();
229 const scalar Y2 = ip2.Y()/sp.Y();
234 Y1*ip1.rhoCoeffs_ + Y2*ip2.rhoCoeffs_
240template<
class Specie,
int PolySize>
241Foam::icoPolynomial<Specie, PolySize> Foam::operator*
249 s*
static_cast<const Specie&
>(ip),
255template<
class Specie,
int PolySize>
256Foam::icoPolynomial<Specie, PolySize> Foam::operator==
264 static_cast<const Specie&
>(ip1)
265 ==
static_cast<const Specie&
>(ip2)
268 const scalar Y1 = ip1.Y()/sp.Y();
269 const scalar Y2 = ip2.Y()/sp.Y();
274 Y2*ip2.rhoCoeffs_ - Y1*ip1.rhoCoeffs_
Polynomial templated on size (order):
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,...
Incompressible, polynomial form of equation of state, using a polynomial function for density.
scalar Cv(scalar p, scalar T) const
Return Cv departure [J/(kg K].
static autoPtr< icoPolynomial > New(const dictionary &dict)
scalar E(const scalar p, const scalar T) const
Return internal energy departure [J/kg].
scalar psi(scalar p, scalar T) const
Return compressibility rho/p [s^2/m^2].
scalar H(const scalar p, const scalar T) const
Return enthalpy departure [J/kg].
icoPolynomial(const Specie &sp, const Polynomial< PolySize > &rhoPoly)
Construct from components.
scalar rho(scalar p, scalar T) const
Return density [kg/m^3].
autoPtr< icoPolynomial > clone() const
Construct and return a clone.
scalar S(const scalar p, const scalar T) const
Return entropy [J/(kg K)].
scalar CpMCv(scalar p, scalar T) const
Return (Cp - Cv) [J/(kg K].
scalar Cp(scalar p, scalar T) const
Return Cp departure [J/(kg K].
friend Ostream & operator(Ostream &, const icoPolynomial &)
scalar Z(scalar p, scalar T) const
Return compression factor [].
void operator*=(const scalar)
A class for handling words, derived from Foam::string.
PtrList< volScalarField > & Y
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))
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.
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)