BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::Gas Class Reference

The gas class that provides the fluid model. More...

#include <cl_Gas.hpp>

Collaboration diagram for belfem::Gas:
[legend]

Public Member Functions

 Gas ()
 default constructor, creates air as idgas
 Gas (const string &aLabel, const GasModel aGasModel=GasModel::IDGAS)
 creates a pure gas
 Gas (const HelmholtzModel aHelmholtzModel)
 create a cryogenic gas
 Gas (const Cell< string > &aSpecies, const Vector< real > &aMolarFractions, const GasModel aGasModel=GasModel::IDGAS)
 advanced constructor
virtual ~Gas ()
 Gas (const Gas &)=delete
Gasoperator= (const Gas &)=delete
const uintnumber_of_components () const
virtual void remix (const Vector< real > &aMolarFractions, bool aRemixHeat=true, bool aRemixTransport=true)
virtual void remix_mass (const Vector< real > &aMassFractions, bool aRemixHeat=true, bool aRemixTransport=true)
virtual void reset_mixture ()
gasmodels::Statevalsstatevals ()
 expose statevals object
gastables::GasDatadata (const index_t aIndex)
 expose the data object of a refgas
const gastables::GasDatadata (const index_t aIndex) const
 expose the data object of a refgas ( const version )
gasmodels::EoSeos ()
 expose state equation of a refgas
bool is_idgas () const
const Vector< real > & molar_fractions () const
 expose the molar fractions
const Vector< real > & mass_fractions () const
 expose the mass fractions
const realmolar_fraction (const uint aIndex) const
 return one single milar fraction
const realmass_fraction (const uint aIndex) const
 return one single mass fraction
Cell< gastables::RefGas * > & elements ()
 expose the element container
Cell< gastables::RefGas * > & components ()
 expose the component container
gastables::RefGas *& component (const index_t aIndex)
 expose one component
const Matrix< real > & formation_table () const
 expose the formation table, telling which component is built from which element
bool is_liquid () const
 test if the last evaluated state is liquid.
void set_liquid_flag (const bool aFlag)
 set the liquid flag.
real p (const real T, const real v) const
real v (const real T, const real p) const
real rho (const real T, const real p) const
real T (const real p, const real v) const
virtual real cp (const real T, const real p) const
virtual real cv (const real T, const real p) const
virtual real gamma (const real T, const real p) const
virtual real c (const real T, const real p) const
virtual real u (const real T, const real p) const
virtual real h (const real T, const real p) const
virtual real s (const real T, const real p) const
virtual real dsdT (const real T, const real p) const
virtual real dsdp (const real T, const real p) const
virtual real dcpdT (const real T, const real p) const
virtual real hd (const real T, const real p) const
real mu (const real T, const real p) const
 dynamic viscosity in Pa*s
real lambda (const real T, const real p) const
 thermal conductivity in W/(m*K)
real Pr (const real T, const real p) const
 Prandtl Number.
real alpha (const real T, const real p) const
 thermal expansion coefficient
real beta (const real T, const real p) const
 isochoric stress coefficient
real kappa (const real T, const real p) const
 isothermal compressibility coefficient
void Gibbs (const real T, Vector< real > &aGibbs) const
 return the molar Gibbs potential at reference pressure
void Hf (const real T, Vector< real > &aHf) const
 return the molar formation enthalpy for each component
void dGibbsdT (const real T, Vector< real > &aGibbs) const
 return the temperature derivative of gibs potentia at reference pressure
void remix_to_equilibrium (const real T, const real p, const bool aRemixHeat=true, const bool aRemixTransport=true)
 remix to equilibrium
void compute_equilibrium (const real T, const real p, Vector< real > &aX)
real T_from_h (const real &h, const real p) const
real isen_T (const real T0, const real p0, const real p1) const
 get an isentropic temperature
real isen_p (const real T0, const real p0, const real T1) const
 get an isentropic pressure
void total (const real T, const real p, const real &u, real &aTt, real &aPt) const
 calculate the total state
void expand (const real &A1, const real T1, const real p1, const real &u1, const real &A2, real &T2, real &p2, real &u2) const
 expansion of a gas into a widening duct, A2 >= A1
void compress (const real &A1, const real T1, const real p1, const real &u1, const real &A2, real &T2, real &p2, real &u2) const
 compression of a gas into a narrowing duct, A2 <= A1
real prandtl_meyer (const real T1, const real p1, const real &u1, const real &alpha, real &T2, real &p2, real &u2) const
 Prandtl-Meyer turn of a supersonic stream around a corner, for a thermally perfect ideal gas.
void shock (const real T1, const real p1, const real &u1, real &T2, real &p2, real &u2) const
 perpendicular shock
void shock (const real T1, const real p1, const real &u1, const real &alpha, real &T2, real &p2, real &u2, real &beta) const
 oblique shock
void print () const
Splineheat_spline ()
 expose heat spline
const Splineheat_spline () const
Splineviscosity_spline ()
 expose viscosity spline
const Splineviscosity_spline () const
Splineconductivity_spline ()
 expose conductivity spline
const Splineconductivity_spline () const
const GasModelgas_model () const
 returns what gas model is used
const HelmholtzModelhelmholtz_model () const
 which Helmholtz model this gas uses, if any
virtual real dhdp (const real T, const real p) const
Mixture molar mass and specific gas constant

Returned by value.

Both used to hand out a reference into the state cache, which made the result a live view that followed a later remix; a caller wanting that had to know it, and a caller not wanting it had no way to tell. A real is a register return, so the copy costs nothing and the accessor now means what it says.

Note
Both currently ignore T and p; the parameters are there for a derived model whose mixture dissociates, where M really does depend on the state.
virtual real M (const real T, const real p) const
virtual real R (const real T, const real p) const
Per-component properties

Properties of one mixture component, not of the mixture as a whole.

Warning
At the reference pressure, the caloric properties h, cp and dcpdT return the ideal gas value, not the component's real gas property.

The indexed departure functions in the cubic equation of state include the reference pressure subtraction, so these functions use the same convention as the mixture level real gas functions. See the note on Gas::realgas_cp in cl_Gas.cpp. The two levels agree and must change together if BELFEM changes this convention.

The finite rate combustion solver uses these functions. It takes its chemistry from the ideal gas Gibbs energy of the thermo tables. Holding component enthalpies at the ideal gas value at the reference pressure keeps the energy equation on the same footing as the equilibrium constants. For combustion at moderate pressure, the ideal gas assumption is a reasonable engineering approximation.

Parameters
aIndexcomponent index
Ttemperature in K
ppressure in Pa
real v (const uint aIndex, const real T, const real p) const
real h (const uint aIndex, const real T, const real p) const
real cp (const uint aIndex, const real T, const real p) const
real dcpdT (const uint aIndex, const real T, const real p) const

Protected Attributes

uint mNumberOfComponents
 size of components vector
gasmodels::Statevals mStatevals
Vector< realmMolarFractions
 x or chi
Vector< realmMassFractions
 y or zeta
Vector< realmMolarFractions0
 molar fractions at initialization
Vector< realmMolarMasses
 molar masses of components
const realmM = mStatevals.get( BELFEM_STATEVAL_M )
 Molar Mass in kg/Mol.
const realmR = mStatevals.get( BELFEM_STATEVAL_R )
 Gas constant in J/(kg*K).
Cell< gastables::RefGas * > mComponents
 Components of the mixgas.
Cell< gastables::RefGas * > mElements
Cell< stringmElementNames
Cell< gastables::RefGas * > mExtra
SpMatrix mHelpMatrix
 help matrix for remixing
Spline mHeatSpline
Spline mViscositySpline
Spline mConductivitySpline
real mLastSplineT = BELFEM_REAL_MAX
index_t mLastSplineCol = BELFEM_UINT_MAX
GasModel mGasModel = GasModel::UNDEFINED
 gasmodel type
HelmholtzModel mHelmholzModel = HelmholtzModel::UNDEFINED
 helmholz type, if used
Cell< gastables::RefGas * > mViscosityInteractionRefgas
 Interaction polynomials for viscosity.
Matrix< uintmViscosityInteractionTable
 table telling if interaction parameter exists
Matrix< realmWorkMatrix
Vector< realmWorkVector
Vector< realmWorkVector2
Vector< realmWorkMu
Vector< realmWorkLambda
Vector< realmWorkVectorRAND0
Vector< realmWorkVectorRAND1
Vector< realmWorkVectorRAND2
Matrix< realmWorkMatrixRAND
Vector< int_tmPivotRAND
real mWorkTemperature
Matrix< realmFormationTable
Vector< realmFormationWork
real mTcrit = BELFEM_QUIET_NAN
real mPcrit = BELFEM_QUIET_NAN
real mVcrit = BELFEM_QUIET_NAN
real mGamma = 0.0
real mXi = 0.0
bool mLiquidFlag = false
 liquid flag, written by Helmholtz::v() and read by EoS_Cubic::v()
gasmodels::EoSmEoS = nullptr
 the equation of state
gasmodels::HelmholtzTransportmTransport = nullptr
 special class, only needed if this is a helmholtz eos
real(Gas::*) mFunctionCp (const real T, const real p) const
 pointer to cp function
real(Gas::*) mFunctiondCpdT (const real T, const real p) const
 pointer to dcpdT function
real(Gas::*) mFunctionCv (const real T, const real p) const
 pointer to cv function
real(Gas::*) mFunctionGamma (const real T, const real p) const
 pointer to gamma function
real(Gas::*) mFunctionC (const real T, const real p) const
 pointer to c function
real(Gas::*) mFunctionH (const real T, const real p) const
 pointer to h function
real(Gas::*) mFunctionDHDP (const real T, const real p) const
 pointer to dhdp function
real(Gas::*) mFunctionS (const real T, const real p) const
 pointer to s function
real(Gas::*) mFunctionDSDT (const real T, const real p) const
 pointer to dsdT function
real(Gas::*) mFunctionDSDP (const real T, const real p) const
 pointer to dsdp function
real(Gas::*) mFunctionMU (const real T, const real p) const
 pointer to Mu function
real(Gas::*) mFunctionLAMBDA (const real T, const real p) const
 pointer to Lambda function
real mMixtureEntropy = BELFEM_QUIET_NAN
Matrix< realmFlowJacobian
 scratch for the duct solvers, sized in initialize()
Vector< realmFlowResidual
Vector< int_tmFlowPivot
Vector< realmGaussPoints
 Gauss rule for prandtl_meyer, allocated on first call.
Vector< realmGaussWeights

Detailed Description

The gas class that provides the fluid model.

See also
Gas Models Usage Guide
Const correctness

The accessors that evaluate a property of a fixed mixture – cp( T, p ), h( T, p ), mu( T, p ), the flow routines, ... – are const. They do not change the identity of the gas: after the call it holds the same species in the same proportions, and a second call with the same arguments returns the same number. What they do write is the memoization cache and the preallocated scratch, and those members carry mutable for exactly that reason. The methods that change what the gas isremix(), remix_mass(), the equilibrium solvers, the spline builders – are the ones that stay non-const, so the signature alone separates the two groups.

Only genuine scratch is mutable. A work vector belonging to a composition-changing path (mWorkMu, the RAND equilibrium block, mFormationTable) deliberately is not, so the compiler keeps proving that those paths stay out of the const ones.

Warning
const here means logically const, not thread safe. Because the const evaluators write the shared cache, two threads must not call them on the same Gas object even through a const reference. This matches the framework-wide policy: BELFEM parallelises with MPI and is not internally thread safe ( see doc/coding_philosophy.md ).

Constructor & Destructor Documentation

◆ Gas() [1/5]

belfem::Gas::Gas ( )

default constructor, creates air as idgas

◆ Gas() [2/5]

belfem::Gas::Gas ( const string & aLabel,
const GasModel aGasModel = GasModel::IDGAS )

creates a pure gas

◆ Gas() [3/5]

belfem::Gas::Gas ( const HelmholtzModel aHelmholtzModel)

create a cryogenic gas

◆ Gas() [4/5]

belfem::Gas::Gas ( const Cell< string > & aSpecies,
const Vector< real > & aMolarFractions,
const GasModel aGasModel = GasModel::IDGAS )

advanced constructor

Parameters
aSpecies: List of Species names
aMolarFractions: Molar fractions of species
aGasModel: gas model ( default: IDGAS )

◆ ~Gas()

belfem::Gas::~Gas ( )
virtual

◆ Gas() [5/5]

belfem::Gas::Gas ( const Gas & )
delete

Member Function Documentation

◆ alpha()

real belfem::Gas::alpha ( const real T,
const real p ) const
inline

thermal expansion coefficient

\( \alpha = \frac{1}{v} \left( \frac{\partial v}{\partial T}\right)_p \)

◆ beta()

real belfem::Gas::beta ( const real T,
const real p ) const
inline

isochoric stress coefficient

\( \beta = \frac{1}{p} \left( \frac{\partial p}{\partial T}\right)_v \)

◆ c()

real belfem::Gas::c ( const real T,
const real p ) const
virtual

◆ component()

gastables::RefGas *& belfem::Gas::component ( const index_t aIndex)
inline

expose one component

◆ components()

Cell< gastables::RefGas * > & belfem::Gas::components ( )
inline

expose the component container

◆ compress()

void belfem::Gas::compress ( const real & A1,
const real T1,
const real p1,
const real & u1,
const real & A2,
real & T2,
real & p2,
real & u2 ) const

compression of a gas into a narrowing duct, A2 <= A1

a contraction does not separate, so the flow stays isentropic on either branch and only the root of the area relation differs. errors out if the duct is choked, that is if A2 undercuts the sonic area

◆ compute_equilibrium()

void belfem::Gas::compute_equilibrium ( const real T,
const real p,
Vector< real > & aX )

◆ conductivity_spline() [1/2]

Spline & belfem::Gas::conductivity_spline ( )
inline

expose conductivity spline

Returns

◆ conductivity_spline() [2/2]

const Spline & belfem::Gas::conductivity_spline ( ) const
inline

◆ cp() [1/2]

real belfem::Gas::cp ( const real T,
const real p ) const
virtual

◆ cp() [2/2]

real belfem::Gas::cp ( const uint aIndex,
const real T,
const real p ) const

◆ cv()

real belfem::Gas::cv ( const real T,
const real p ) const
virtual

◆ data() [1/2]

gastables::GasData * belfem::Gas::data ( const index_t aIndex)

expose the data object of a refgas

◆ data() [2/2]

const gastables::GasData * belfem::Gas::data ( const index_t aIndex) const

expose the data object of a refgas ( const version )

◆ dcpdT() [1/2]

real belfem::Gas::dcpdT ( const real T,
const real p ) const
virtual

◆ dcpdT() [2/2]

real belfem::Gas::dcpdT ( const uint aIndex,
const real T,
const real p ) const

◆ dGibbsdT()

void belfem::Gas::dGibbsdT ( const real T,
Vector< real > & aGibbs ) const

return the temperature derivative of gibs potentia at reference pressure

◆ dhdp()

real belfem::Gas::dhdp ( const real T,
const real p ) const
virtual

◆ dsdp()

real belfem::Gas::dsdp ( const real T,
const real p ) const
virtual

◆ dsdT()

real belfem::Gas::dsdT ( const real T,
const real p ) const
virtual

◆ elements()

Cell< gastables::RefGas * > & belfem::Gas::elements ( )
inline

expose the element container

◆ eos()

gasmodels::EoS * belfem::Gas::eos ( )
inline

expose state equation of a refgas

◆ expand()

void belfem::Gas::expand ( const real & A1,
const real T1,
const real p1,
const real & u1,
const real & A2,
real & T2,
real & p2,
real & u2 ) const

expansion of a gas into a widening duct, A2 >= A1

a subsonic flow separates at the step and loses total pressure over a Borda-Carnot shock, so mass, momentum and energy are solved. a supersonic flow expands around the corner instead, the step face does work on it and momentum is not a control volume invariant, so mass, entropy and energy are solved

◆ formation_table()

const Matrix< real > & belfem::Gas::formation_table ( ) const
inline

expose the formation table, telling which component is built from which element

◆ gamma()

real belfem::Gas::gamma ( const real T,
const real p ) const
virtual

◆ gas_model()

const GasModel & belfem::Gas::gas_model ( ) const
inline

returns what gas model is used

◆ Gibbs()

void belfem::Gas::Gibbs ( const real T,
Vector< real > & aGibbs ) const

return the molar Gibbs potential at reference pressure

◆ h() [1/2]

real belfem::Gas::h ( const real T,
const real p ) const
virtual

◆ h() [2/2]

real belfem::Gas::h ( const uint aIndex,
const real T,
const real p ) const

specific enthalpy of the component on the RefGas scale ( H( 0 K ) = formation enthalpy at 298.15 K, see cl_GT_RefGas.hpp ) plus the departure

◆ hd()

real belfem::Gas::hd ( const real T,
const real p ) const
virtual

◆ heat_spline() [1/2]

Spline & belfem::Gas::heat_spline ( )
inline

expose heat spline

Returns

◆ heat_spline() [2/2]

const Spline & belfem::Gas::heat_spline ( ) const
inline

◆ helmholtz_model()

const HelmholtzModel & belfem::Gas::helmholtz_model ( ) const
inline

which Helmholtz model this gas uses, if any

◆ Hf()

void belfem::Gas::Hf ( const real T,
Vector< real > & aHf ) const

return the molar formation enthalpy for each component

◆ is_idgas()

bool belfem::Gas::is_idgas ( ) const
inline

◆ is_liquid()

bool belfem::Gas::is_liquid ( ) const
inline

test if the last evaluated state is liquid.

Set by the Helmholtz EoS; stays false for ideal and cubic gases.

◆ isen_p()

real belfem::Gas::isen_p ( const real T0,
const real p0,
const real T1 ) const

get an isentropic pressure

◆ isen_T()

real belfem::Gas::isen_T ( const real T0,
const real p0,
const real p1 ) const

get an isentropic temperature

◆ kappa()

real belfem::Gas::kappa ( const real T,
const real p ) const
inline

isothermal compressibility coefficient

\( \kappa = -\frac{1}{v} \left( \frac{\partial v}{\partial p}\right)_T \)

◆ lambda()

real belfem::Gas::lambda ( const real T,
const real p ) const

thermal conductivity in W/(m*K)

◆ M()

real belfem::Gas::M ( const real T,
const real p ) const
virtual

◆ mass_fraction()

const real & belfem::Gas::mass_fraction ( const uint aIndex) const
inline

return one single mass fraction

◆ mass_fractions()

const Vector< real > & belfem::Gas::mass_fractions ( ) const
inline

expose the mass fractions

◆ molar_fraction()

const real & belfem::Gas::molar_fraction ( const uint aIndex) const
inline

return one single milar fraction

◆ molar_fractions()

const Vector< real > & belfem::Gas::molar_fractions ( ) const
inline

expose the molar fractions

◆ mu()

real belfem::Gas::mu ( const real T,
const real p ) const

dynamic viscosity in Pa*s

◆ number_of_components()

const uint & belfem::Gas::number_of_components ( ) const
inline

◆ operator=()

Gas & belfem::Gas::operator= ( const Gas & )
delete

◆ p()

real belfem::Gas::p ( const real T,
const real v ) const

◆ Pr()

real belfem::Gas::Pr ( const real T,
const real p ) const

Prandtl Number.

◆ prandtl_meyer()

real belfem::Gas::prandtl_meyer ( const real T1,
const real p1,
const real & u1,
const real & alpha,
real & T2,
real & p2,
real & u2 ) const

Prandtl-Meyer turn of a supersonic stream around a corner, for a thermally perfect ideal gas.

integrates the exact simple wave relation d(nu) = sqrt( Ma^2 - 1 ) * dV / V along the isentrope of the upstream state, then recovers the pressure from ds = 0. both laws of thermodynamics hold identically, because isentropy is built into the characteristic derivation instead of being enforced as a constraint afterwards.

a negative angle models a smooth isentropic compression and is admissible while the flow stays supersonic. coalescing characteristics, that is an embedded shock on a concave wall, are not detected by any isentropic method.

Parameters
T1upstream temperature in K
p1upstream pressure in Pa
u1upstream velocity in m/s, must be supersonic
alphaturning angle in rad, positive for an expansion
T2downstream temperature in K, written
p2downstream pressure in Pa, written
u2downstream velocity in m/s, written
Returns
the Mach number reached downstream

◆ print()

void belfem::Gas::print ( ) const

◆ R()

real belfem::Gas::R ( const real T,
const real p ) const
virtual

◆ remix()

void belfem::Gas::remix ( const Vector< real > & aMolarFractions,
bool aRemixHeat = true,
bool aRemixTransport = true )
virtual

◆ remix_mass()

void belfem::Gas::remix_mass ( const Vector< real > & aMassFractions,
bool aRemixHeat = true,
bool aRemixTransport = true )
virtual

◆ remix_to_equilibrium()

void belfem::Gas::remix_to_equilibrium ( const real T,
const real p,
const bool aRemixHeat = true,
const bool aRemixTransport = true )

remix to equilibrium

◆ reset_mixture()

void belfem::Gas::reset_mixture ( )
virtual

◆ rho()

real belfem::Gas::rho ( const real T,
const real p ) const

◆ s()

real belfem::Gas::s ( const real T,
const real p ) const
virtual

◆ set_liquid_flag()

void belfem::Gas::set_liquid_flag ( const bool aFlag)
inline

set the liquid flag.

Set e.g. by the Helmholtz EoS

◆ shock() [1/2]

void belfem::Gas::shock ( const real T1,
const real p1,
const real & u1,
const real & alpha,
real & T2,
real & p2,
real & u2,
real & beta ) const

oblique shock

◆ shock() [2/2]

void belfem::Gas::shock ( const real T1,
const real p1,
const real & u1,
real & T2,
real & p2,
real & u2 ) const

perpendicular shock

◆ statevals()

gasmodels::Statevals & belfem::Gas::statevals ( )
inline

expose statevals object

◆ T()

real belfem::Gas::T ( const real p,
const real v ) const

◆ T_from_h()

real belfem::Gas::T_from_h ( const real & h,
const real p ) const

◆ total()

void belfem::Gas::total ( const real T,
const real p,
const real & u,
real & aTt,
real & aPt ) const

calculate the total state

◆ u()

real belfem::Gas::u ( const real T,
const real p ) const
virtual

◆ v() [1/2]

real belfem::Gas::v ( const real T,
const real p ) const

◆ v() [2/2]

real belfem::Gas::v ( const uint aIndex,
const real T,
const real p ) const

◆ viscosity_spline() [1/2]

Spline & belfem::Gas::viscosity_spline ( )
inline

expose viscosity spline

Returns

◆ viscosity_spline() [2/2]

const Spline & belfem::Gas::viscosity_spline ( ) const
inline

Member Data Documentation

◆ mComponents

Cell<gastables::RefGas *> belfem::Gas::mComponents
protected

Components of the mixgas.

◆ mConductivitySpline

Spline belfem::Gas::mConductivitySpline
protected

◆ mElementNames

Cell<string> belfem::Gas::mElementNames
protected

◆ mElements

Cell<gastables::RefGas *> belfem::Gas::mElements
protected

Reference gases for formation enthalpy ( may be redundant to mComponents )

◆ mEoS

gasmodels::EoS* belfem::Gas::mEoS = nullptr
protected

the equation of state

◆ mExtra

Cell<gastables::RefGas *> belfem::Gas::mExtra
protected

additional reference gases that are not present in the components list

◆ mFlowJacobian

Matrix< real > belfem::Gas::mFlowJacobian
mutableprotected

scratch for the duct solvers, sized in initialize()

◆ mFlowPivot

Vector< int_t > belfem::Gas::mFlowPivot
mutableprotected

◆ mFlowResidual

Vector< real > belfem::Gas::mFlowResidual
mutableprotected

◆ mFormationTable

Matrix<real> belfem::Gas::mFormationTable
protected

◆ mFormationWork

Vector<real> belfem::Gas::mFormationWork
mutableprotected

◆ mFunctionC

real(Gas::*) belfem::Gas::mFunctionC(const real T, const real p) const
protected

pointer to c function

◆ mFunctionCp

real(Gas::*) belfem::Gas::mFunctionCp(const real T, const real p) const
protected

pointer to cp function

◆ mFunctionCv

real(Gas::*) belfem::Gas::mFunctionCv(const real T, const real p) const
protected

pointer to cv function

◆ mFunctiondCpdT

real(Gas::*) belfem::Gas::mFunctiondCpdT(const real T, const real p) const
protected

pointer to dcpdT function

◆ mFunctionDHDP

real(Gas::*) belfem::Gas::mFunctionDHDP(const real T, const real p) const
protected

pointer to dhdp function

◆ mFunctionDSDP

real(Gas::*) belfem::Gas::mFunctionDSDP(const real T, const real p) const
protected

pointer to dsdp function

◆ mFunctionDSDT

real(Gas::*) belfem::Gas::mFunctionDSDT(const real T, const real p) const
protected

pointer to dsdT function

◆ mFunctionGamma

real(Gas::*) belfem::Gas::mFunctionGamma(const real T, const real p) const
protected

pointer to gamma function

◆ mFunctionH

real(Gas::*) belfem::Gas::mFunctionH(const real T, const real p) const
protected

pointer to h function

◆ mFunctionLAMBDA

real(Gas::*) belfem::Gas::mFunctionLAMBDA(const real T, const real p) const
protected

pointer to Lambda function

◆ mFunctionMU

real(Gas::*) belfem::Gas::mFunctionMU(const real T, const real p) const
protected

pointer to Mu function

◆ mFunctionS

real(Gas::*) belfem::Gas::mFunctionS(const real T, const real p) const
protected

pointer to s function

◆ mGamma

real belfem::Gas::mGamma = 0.0
protected

◆ mGasModel

GasModel belfem::Gas::mGasModel = GasModel::UNDEFINED
protected

gasmodel type

◆ mGaussPoints

Vector< real > belfem::Gas::mGaussPoints
mutableprotected

Gauss rule for prandtl_meyer, allocated on first call.

◆ mGaussWeights

Vector< real > belfem::Gas::mGaussWeights
mutableprotected

◆ mHeatSpline

Spline belfem::Gas::mHeatSpline
protected

◆ mHelmholzModel

HelmholtzModel belfem::Gas::mHelmholzModel = HelmholtzModel::UNDEFINED
protected

helmholz type, if used

◆ mHelpMatrix

SpMatrix belfem::Gas::mHelpMatrix
protected

help matrix for remixing

◆ mLastSplineCol

index_t belfem::Gas::mLastSplineCol = BELFEM_UINT_MAX
mutableprotected

◆ mLastSplineT

real belfem::Gas::mLastSplineT = BELFEM_REAL_MAX
mutableprotected

◆ mLiquidFlag

bool belfem::Gas::mLiquidFlag = false
protected

liquid flag, written by Helmholtz::v() and read by EoS_Cubic::v()

◆ mM

const real& belfem::Gas::mM = mStatevals.get( BELFEM_STATEVAL_M )
protected

Molar Mass in kg/Mol.

◆ mMassFractions

Vector<real> belfem::Gas::mMassFractions
protected

y or zeta

◆ mMixtureEntropy

real belfem::Gas::mMixtureEntropy = BELFEM_QUIET_NAN
protected

◆ mMolarFractions

Vector<real> belfem::Gas::mMolarFractions
protected

x or chi

◆ mMolarFractions0

Vector<real> belfem::Gas::mMolarFractions0
protected

molar fractions at initialization

◆ mMolarMasses

Vector<real> belfem::Gas::mMolarMasses
protected

molar masses of components

◆ mNumberOfComponents

uint belfem::Gas::mNumberOfComponents
protected

size of components vector

◆ mPcrit

real belfem::Gas::mPcrit = BELFEM_QUIET_NAN
protected

◆ mPivotRAND

Vector< int_t > belfem::Gas::mPivotRAND
protected

◆ mR

const real& belfem::Gas::mR = mStatevals.get( BELFEM_STATEVAL_R )
protected

Gas constant in J/(kg*K).

◆ mStatevals

gasmodels::Statevals belfem::Gas::mStatevals
mutableprotected

container for state variables logically const memo of the state last asked for, hence mutable

◆ mTcrit

real belfem::Gas::mTcrit = BELFEM_QUIET_NAN
protected

◆ mTransport

gasmodels::HelmholtzTransport* belfem::Gas::mTransport = nullptr
protected

special class, only needed if this is a helmholtz eos

◆ mVcrit

real belfem::Gas::mVcrit = BELFEM_QUIET_NAN
protected

◆ mViscosityInteractionRefgas

Cell<gastables::RefGas *> belfem::Gas::mViscosityInteractionRefgas
protected

Interaction polynomials for viscosity.

◆ mViscosityInteractionTable

Matrix<uint> belfem::Gas::mViscosityInteractionTable
protected

table telling if interaction parameter exists

◆ mViscositySpline

Spline belfem::Gas::mViscositySpline
protected

◆ mWorkLambda

Vector<real> belfem::Gas::mWorkLambda
protected

◆ mWorkMatrix

Matrix<real> belfem::Gas::mWorkMatrix
mutableprotected

◆ mWorkMatrixRAND

Matrix<real> belfem::Gas::mWorkMatrixRAND
protected

◆ mWorkMu

Vector<real> belfem::Gas::mWorkMu
protected

◆ mWorkTemperature

real belfem::Gas::mWorkTemperature
mutableprotected

◆ mWorkVector

Vector<real> belfem::Gas::mWorkVector
mutableprotected

◆ mWorkVector2

Vector<real> belfem::Gas::mWorkVector2
mutableprotected

◆ mWorkVectorRAND0

Vector<real> belfem::Gas::mWorkVectorRAND0
protected

◆ mWorkVectorRAND1

Vector<real> belfem::Gas::mWorkVectorRAND1
protected

◆ mWorkVectorRAND2

Vector<real> belfem::Gas::mWorkVectorRAND2
protected

◆ mXi

real belfem::Gas::mXi = 0.0
protected

The documentation for this class was generated from the following files: