24#ifndef DUMUX_GAS_PHASE_HH
25#define DUMUX_GAS_PHASE_HH
30#include <dune/common/exceptions.hh>
37namespace FluidSystems {
43template <
class Scalar,
class ComponentT>
45:
public Base<Scalar, OnePGas<Scalar, ComponentT> >
85 {
return Component::name(); }
91 {
return Component::name(); }
102 static constexpr bool isGas(
int phaseIdx = 0)
126 {
return Component::gasIsCompressible(); }
132 {
return Component::gasIsIdeal(); }
141 {
return Component::gasViscosityIsConstant(); }
147 {
return Component::molarMass(); }
153 {
return Component::criticalTemperature(); }
159 {
return Component::criticalPressure(); }
165 {
return Component::tripleTemperature(); }
171 {
return Component::triplePressure(); }
179 {
return Component::vaporPressure(T); }
193 template <
class Flu
idState>
197 return density(fluidState.temperature(phaseIdx),
198 fluidState.pressure(phaseIdx));
223 template <
class Flu
idState>
228 fluidState.pressure(phaseIdx));
251 template <
class Flu
idState>
255 return enthalpy(fluidState.temperature(phaseIdx),
256 fluidState.pressure(phaseIdx));
279 template <
class Flu
idState>
283 return viscosity(fluidState.temperature(phaseIdx),
284 fluidState.pressure(phaseIdx));
295 template <
class Flu
idState>
300 assert(0 <= phaseIdx && phaseIdx <
numPhases);
303 if (phaseIdx == compIdx)
309 return std::numeric_limits<Scalar>::infinity();
320 template <
class Flu
idState>
325 DUNE_THROW(Dune::InvalidStateException,
"Not applicable: Diffusion coefficients");
337 template <
class Flu
idState>
344 DUNE_THROW(Dune::InvalidStateException,
"Not applicable: Binary diffusion coefficients");
359 template <
class Flu
idState>
364 fluidState.pressure(phaseIdx));
379 template <
class Flu
idState>
384 fluidState.pressure(phaseIdx));
A collection of input/output field names for common physical quantities.
Component traits, i.e. information extracted from components.
std::string temperature() noexcept
I/O name of temperature for equilibrium models.
Definition: name.hh:51
std::string gaseousPhase() noexcept
I/O name of gaseous phase.
Definition: name.hh:123
Component traits, i.e. information extracted from components.
Definition: componenttraits.hh:43
A gaseous phase consisting of a single component.
Definition: 1pgas.hh:46
static Scalar density(Scalar temperature, Scalar pressure)
The density of the component at a given pressure and temperature.
Definition: 1pgas.hh:186
static Scalar triplePressure(int compIdx=0)
Returns the pressure in at the component's triple point.
Definition: 1pgas.hh:170
static Scalar fugacityCoefficient(const FluidState &fluidState, int phaseIdx, int compIdx)
Calculate the fugacity coefficient of an individual component in a fluid phase.
Definition: 1pgas.hh:296
static std::string componentName(int compIdx=0)
A human readable name for the component.
Definition: 1pgas.hh:84
static Scalar thermalConductivity(const FluidState &fluidState, const int phaseIdx)
Thermal conductivity of the fluid .
Definition: 1pgas.hh:360
static Scalar viscosity(Scalar temperature, Scalar pressure)
The dynamic viscosity of the pure component at a given pressure and temperature.
Definition: 1pgas.hh:272
static constexpr bool isGas(int phaseIdx=0)
Returns whether the fluid is gaseous.
Definition: 1pgas.hh:102
ComponentT Component
Definition: 1pgas.hh:53
static Scalar molarDensity(Scalar temperature, Scalar pressure)
The molar density of a fluid phase in .
Definition: 1pgas.hh:210
static Scalar heatCapacity(const FluidState &fluidState, const int phaseIdx)
Specific isobaric heat capacity of the fluid .
Definition: 1pgas.hh:380
static Scalar molarMass(int compIdx=0)
The mass in of one mole of the component.
Definition: 1pgas.hh:146
static constexpr int numPhases
Number of phases in the fluid system.
Definition: 1pgas.hh:56
static constexpr bool viscosityIsConstant(int phaseIdx)
Returns true if and only if a fluid phase is assumed to have a constant viscosity.
Definition: 1pgas.hh:140
static constexpr int comp0Idx
index of the only component
Definition: 1pgas.hh:60
static constexpr int numComponents
Number of components in the fluid system.
Definition: 1pgas.hh:57
static Scalar criticalPressure(int compIdx=0)
Returns the critical pressure in of the component.
Definition: 1pgas.hh:158
static Scalar tripleTemperature(int compIdx=0)
Returns the temperature in at the component's triple point.
Definition: 1pgas.hh:164
static std::string name()
A human readable name for the component.
Definition: 1pgas.hh:90
static constexpr bool isIdealGas(int phaseIdx=0)
Returns true if the fluid is assumed to be an ideal gas.
Definition: 1pgas.hh:131
static constexpr int phase0Idx
index of the only phase
Definition: 1pgas.hh:59
static Scalar diffusionCoefficient(const FluidState &fluidState, int phaseIdx, int compIdx)
Calculate the binary molecular diffusion coefficient for a component in a fluid phase .
Definition: 1pgas.hh:321
static const Scalar internalEnergy(Scalar temperature, Scalar pressure)
Specific internal energy of the pure component as a gas.
Definition: 1pgas.hh:264
static Scalar criticalTemperature(int compIdx=0)
Returns the critical temperature in of the component.
Definition: 1pgas.hh:152
static Scalar density(const FluidState &fluidState, const int phaseIdx)
The density of the component at a given pressure and temperature.
Definition: 1pgas.hh:194
static const Scalar enthalpy(Scalar temperature, Scalar pressure)
Specific enthalpy of the pure component as a gas.
Definition: 1pgas.hh:244
static Scalar molarDensity(const FluidState &fluidState, const int phaseIdx)
Definition: 1pgas.hh:224
static std::string phaseName(int phaseIdx=0)
Return the human readable name of a fluid phase.
Definition: 1pgas.hh:76
static constexpr bool isIdealMixture(int phaseIdx=0)
Returns true if and only if a fluid phase is assumed to be an ideal mixture.
Definition: 1pgas.hh:119
static Scalar viscosity(const FluidState &fluidState, const int phaseIdx)
The dynamic liquid viscosity of the pure component.
Definition: 1pgas.hh:280
static constexpr bool isCompressible(int phaseIdx=0)
Returns true if the fluid is assumed to be compressible.
Definition: 1pgas.hh:125
static Scalar binaryDiffusionCoefficient(const FluidState &fluidState, int phaseIdx, int compIIdx, int compJIdx)
Given a phase's composition, temperature and pressure, return the binary diffusion coefficient for c...
Definition: 1pgas.hh:338
static Scalar pressure(Scalar temperature, Scalar density)
The pressure of the component at a given density and temperature.
Definition: 1pgas.hh:236
static constexpr bool isMiscible()
There is only one phase, so not mass transfer between phases can occur.
Definition: 1pgas.hh:96
static void init()
Initialize the fluid system's static parameters generically.
Definition: 1pgas.hh:65
static Scalar thermalConductivity(Scalar temperature, Scalar pressure)
Thermal conductivity of the fluid .
Definition: 1pgas.hh:352
static Scalar vaporPressure(Scalar T)
The vapor pressure in of the component at a given temperature.
Definition: 1pgas.hh:178
static Scalar heatCapacity(Scalar temperature, Scalar pressure)
Specific isobaric heat capacity of the fluid .
Definition: 1pgas.hh:372
static Scalar enthalpy(const FluidState &fluidState, const int phaseIdx)
Definition: 1pgas.hh:252
Fluid system base class.
Definition: fluidsystems/base.hh:45
Scalar Scalar
export the scalar type
Definition: fluidsystems/base.hh:48
static Scalar density(const FluidState &fluidState, int phaseIdx)
Calculate the density of a fluid phase.
Definition: fluidsystems/base.hh:134
static Scalar thermalConductivity(const FluidState &fluidState, int phaseIdx)
Thermal conductivity of a fluid phase .
Definition: fluidsystems/base.hh:390
static Scalar fugacityCoefficient(const FluidState &fluidState, int phaseIdx, int compIdx)
Calculate the fugacity coefficient of an individual component in a fluid phase.
Definition: fluidsystems/base.hh:197
static Scalar diffusionCoefficient(const FluidState &fluidState, int phaseIdx, int compIdx)
Calculate the binary molecular diffusion coefficient for a component in a fluid phase .
Definition: fluidsystems/base.hh:278
static Scalar binaryDiffusionCoefficient(const FluidState &fluidState, int phaseIdx, int compIIdx, int compJIdx)
Given a phase's composition, temperature and pressure, return the binary diffusion coefficient for c...
Definition: fluidsystems/base.hh:326
static Scalar enthalpy(const FluidState &fluidState, int phaseIdx)
Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy .
Definition: fluidsystems/base.hh:363
static Scalar molarDensity(const FluidState &fluidState, int phaseIdx)
Calculate the molar density of a fluid phase.
Definition: fluidsystems/base.hh:160
static Scalar viscosity(const FluidState &fluidState, int phaseIdx)
Calculate the dynamic viscosity of a fluid phase .
Definition: fluidsystems/base.hh:236
static Scalar heatCapacity(const FluidState &fluidState, int phaseIdx)
Specific isobaric heat capacity of a fluid phase .
Definition: fluidsystems/base.hh:424
The a parameter cache which does nothing.
Definition: nullparametercache.hh:34