version 3.9-dev
Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase > Class Template Reference

An adapter for multi-phase fluid systems to be used with (compositional) one-phase models. More...

#include <dumux/material/fluidsystems/1padapter.hh>

Inheritance diagram for Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >:

Description

template<class MPFluidSystem, int phase = 0>
class Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >
Template Parameters
MPFluidSystemthe multi-phase fluid system to be adapted
phasethe index of the phase we choose from the multi-phase fluid system

Public Types

using Scalar = typename MPFluidSystem::Scalar
 
using ParameterCache = NullParameterCache
 
using MultiPhaseFluidSystem = MPFluidSystem
 export the wrapped MultiPhaseFluidSystem type More...
 

Static Public Member Functions

static constexpr int compIdx (int multiPhaseFluidSystemCompIdx)
 convert a component index of the multi-phase component index to the actual component index More...
 
template<class ... Args>
static void init (Args &&... args)
 Initialize the fluid system's static parameters generically. More...
 
static std::string phaseName (int phaseIdx=0)
 Return the human readable name of a fluid phase. More...
 
static std::string componentName (int compIdx)
 A human readable name for the component. More...
 
static std::string name ()
 A human readable name for the component. More...
 
static constexpr bool isMiscible ()
 There is only one phase, so no mass transfer between phases can occur. More...
 
static constexpr bool isGas (int phaseIdx=0)
 Returns whether the fluid is gaseous. More...
 
static constexpr bool isIdealMixture (int phaseIdx=0)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. More...
 
static constexpr bool isCompressible (int phaseIdx=0)
 Returns true if the fluid is assumed to be compressible. More...
 
static constexpr bool viscosityIsConstant (int phaseIdx=0)
 Returns true if the fluid viscosity is constant. More...
 
static constexpr bool isIdealGas (int phaseIdx=0)
 Returns true if the fluid is assumed to be an ideal gas. More...
 
static Scalar molarMass (int compIdx)
 The mass in \(\mathrm{[kg]}\) of one mole of the component. More...
 
template<class FluidState >
static Scalar density (const FluidState &fluidState, int phaseIdx=0)
 Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar molarDensity (const FluidState &fluidState, int phaseIdx=0)
 Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar enthalpy (const FluidState &fluidState, int phaseIdx=0)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy \(\mathrm{[J/kg]}\). More...
 
template<class FluidState >
static Scalar componentEnthalpy (const FluidState &fluidState, int phaseIdx, int compIdx)
 Returns the specific enthalpy \(\mathrm{[J/kg]}\) of a component in a specific phase. More...
 
template<class FluidState >
static Scalar viscosity (const FluidState &fluidState, int phaseIdx=0)
 Calculate the dynamic viscosity of a fluid phase \(\mathrm{[Pa*s]}\). More...
 
template<class FluidState >
static Scalar fugacityCoefficient (const FluidState &fluidState, int phaseIdx, int compIdx)
 Calculate the fugacity coefficient \(\mathrm{[Pa]}\) of an individual component in a fluid phase. More...
 
template<class FluidState >
static Scalar diffusionCoefficient (const FluidState &fluidState, int phaseIdx, int compIdx)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase \(\mathrm{[mol^2 * s / (kg*m^3)]}\). More...
 
template<class FluidState >
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 \(\mathrm{[m^2/s]}\) for components \(\mathrm{i}\) and \(\mathrm{j}\) in this phase. More...
 
template<class FluidState >
static Scalar thermalConductivity (const FluidState &fluidState, int phaseIdx=0)
 Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
template<class FluidState >
static Scalar heatCapacity (const FluidState &fluidState, int phaseIdx=0)
 Specific isobaric heat capacity \(c_{p,\alpha}\) of a fluid phase \(\mathrm{[J/(kg*K)]}\). More...
 
static constexpr bool isTracerFluidSystem ()
 Some properties of the fluid system. More...
 
static constexpr int getMainComponent (int phaseIdx)
 Get the main component of a given phase if possible. More...
 
static Scalar density (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase. More...
 
static Scalar molarDensity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase. More...
 
static Scalar fugacityCoefficient (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx, int compIdx)
 Calculate the fugacity coefficient \(\mathrm{[Pa]}\) of an individual component in a fluid phase. More...
 
static Scalar viscosity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Calculate the dynamic viscosity of a fluid phase \(\mathrm{[Pa*s]}\). More...
 
static Scalar diffusionCoefficient (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx, int compIdx)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase \(\mathrm{[mol^2 * s / (kg*m^3)]}\). More...
 
static Scalar binaryDiffusionCoefficient (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx, int compIIdx, int compJIdx)
 Given a phase's composition, temperature and pressure, return the binary diffusion coefficient \(\mathrm{[m^2/s]}\) for components \(\mathrm{i}\) and \(\mathrm{j}\) in this phase. More...
 
static Scalar enthalpy (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy \(\mathrm{[J/kg]}\). More...
 
static Scalar thermalConductivity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
static Scalar heatCapacity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Specific isobaric heat capacity \(c_{p,\alpha}\) of a fluid phase \(\mathrm{[J/(kg*K)]}\). More...
 

Static Public Attributes

static constexpr int multiphaseFluidsystemPhaseIdx = phase
 the index of the phase we choose from the multi-phase fluid system More...
 
static constexpr int numPhases = 1
 number of phases in the fluid system More...
 
static constexpr int numComponents = MultiPhaseFluidSystem::isMiscible() ? MultiPhaseFluidSystem::numComponents : numPhases
 
static constexpr int phase0Idx = 0
 number of components has to be the same as in the multi-phase fluid system as the composition needs to be defined More...
 

Member Typedef Documentation

◆ MultiPhaseFluidSystem

template<class MPFluidSystem , int phase = 0>
using Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::MultiPhaseFluidSystem = MPFluidSystem

◆ ParameterCache

template<class MPFluidSystem , int phase = 0>
using Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::ParameterCache = NullParameterCache

◆ Scalar

template<class MPFluidSystem , int phase = 0>
using Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::Scalar = typename MPFluidSystem::Scalar

Member Function Documentation

◆ binaryDiffusionCoefficient() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIIdx,
int  compJIdx 
)
inlinestaticinherited
Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase
compIIdxIndex of the component i
compJIdxIndex of the component j

◆ binaryDiffusionCoefficient() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIIdx,
int  compJIdx 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase
compIIdxIndex of the component i
compJIdxIndex of the component j

◆ compIdx()

template<class MPFluidSystem , int phase = 0>
static constexpr int Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::compIdx ( int  multiPhaseFluidSystemCompIdx)
inlinestaticconstexpr

◆ componentEnthalpy()

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::componentEnthalpy ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic
Parameters
fluidStateAn arbitrary fluid state
phaseIdxThe index of the fluid phase to consider
compIdxThe index of the component to consider

◆ componentName()

template<class MPFluidSystem , int phase = 0>
static std::string Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::componentName ( int  compIdx)
inlinestatic
Parameters
compIdxThe index of the component to consider

◆ density() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::density ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited
Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ density() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::density ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ diffusionCoefficient() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::diffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIdx 
)
inlinestaticinherited

Molecular diffusion of a component \(\mathrm{\kappa}\) is caused by a gradient of the chemical potential and follows the law

\[ J = - D \nabla \mu_\kappa \]

where \(\mathrm{\mu_\kappa}\) is the component's chemical potential, \(\mathrm{D}\) is the diffusion coefficient and \(\mathrm{J}\) is the diffusive flux. \(\mathrm{\mu_\kappa}\) is connected to the component's fugacity \(\mathrm{f_\kappa}\) by the relation

\[ \mu_\kappa = R T_\alpha \mathrm{ln} \frac{f_\kappa}{p_\alpha} \]

where \(\mathrm{p_\alpha}\) and \(\mathrm{T_\alpha}\) are the fluid phase' pressure and temperature.

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase
compIdxIndex of the component

◆ diffusionCoefficient() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::diffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Molecular diffusion of a component \(\mathrm{\kappa}\) is caused by a gradient of the chemical potential and follows the law

\[ J = - D \nabla \mu_\kappa \]

where \(\mathrm{\mu_\kappa}\) is the component's chemical potential, \(\mathrm{D}\) is the diffusion coefficient and \(\mathrm{J}\) is the diffusive flux. \(\mathrm{\mu_\kappa}\) is connected to the component's fugacity \(\mathrm{f_\kappa}\) by the relation

\[ \mu_\kappa = R T_\alpha \mathrm{ln} \frac{f_\kappa}{p_\alpha} \]

where \(\mathrm{p_\alpha}\) and \(\mathrm{T_\alpha}\) are the fluid phase' pressure and temperature.

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase
compIdxIndex of the component

◆ enthalpy() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::enthalpy ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited
Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ enthalpy() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::enthalpy ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ fugacityCoefficient() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::fugacityCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIdx 
)
inlinestaticinherited

The fugacity coefficient \(\mathrm{\phi^\kappa_\alpha}\) is connected to the fugacity \(\mathrm{f^\kappa_\alpha}\) and the component's mole fraction \(\mathrm{x^\kappa_\alpha}\) by means of the relation

\[ f^\kappa_\alpha = \phi^\kappa_\alpha\;x^\kappa_\alpha\;p_\alpha \]

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase
compIdxIndex of the component

◆ fugacityCoefficient() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::fugacityCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

The fugacity coefficient \(\mathrm{\phi^\kappa_\alpha}\) is connected to the fugacity \(\mathrm{f^\kappa_\alpha}\) and the component's mole fraction \(\mathrm{x^\kappa_\alpha}\) by means of the relation

\[ f^\kappa_\alpha = \phi^\kappa_\alpha\;x^\kappa_\alpha\;p_\alpha \]

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase
compIdxIndex of the component

◆ getMainComponent()

static constexpr int Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::getMainComponent ( int  phaseIdx)
inlinestaticconstexprinherited
Parameters
phaseIdxThe index of the fluid phase to consider
Note
This only makes sense if this is not a tracer fluid system (then the bulk component is not balanced)

◆ heatCapacity() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::heatCapacity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited

Given a fluid state, an up-to-date parameter cache and a phase index, this method computes the isobaric heat capacity \(c_{p,\alpha}\) of the fluid phase. The isobaric heat capacity is defined as the partial derivative of the specific enthalpy \(h_\alpha\) to the fluid pressure \(p_\alpha\):

\( c_{p,\alpha} = \frac{\partial h_\alpha}{\partial p_\alpha} \)

Parameters
fluidStaterepresents all relevant thermodynamic quantities of a fluid system
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ heatCapacity() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::heatCapacity ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStaterepresents all relevant thermodynamic quantities of a fluid system
phaseIdxIndex of the fluid phase

Given a fluid state, an up-to-date parameter cache and a phase index, this method computes the isobaric heat capacity \(c_{p,\alpha}\) of the fluid phase. The isobaric heat capacity is defined as the partial derivative of the specific enthalpy \(h_\alpha\) to the fluid pressure \(p_\alpha\):

\( c_{p,\alpha} = \frac{\partial h_\alpha}{\partial p_\alpha} \)

◆ init()

template<class MPFluidSystem , int phase = 0>
template<class ... Args>
static void Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::init ( Args &&...  args)
inlinestatic

◆ isCompressible()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::isCompressible ( int  phaseIdx = 0)
inlinestaticconstexpr

◆ isGas()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::isGas ( int  phaseIdx = 0)
inlinestaticconstexpr

◆ isIdealGas()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::isIdealGas ( int  phaseIdx = 0)
inlinestaticconstexpr

◆ isIdealMixture()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::isIdealMixture ( int  phaseIdx = 0)
inlinestaticconstexpr

We define an ideal mixture as a fluid phase where the fugacity coefficients of all components times the pressure of the phase are independent on the fluid composition. This assumption is true if only a single component is involved. If you are unsure what this function should return, it is safe to return false. The only damage done will be (slightly) increased computation times in some cases.

Parameters
phaseIdxThe index of the fluid phase to consider

◆ isMiscible()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::isMiscible ( )
inlinestaticconstexpr

◆ isTracerFluidSystem()

static constexpr bool Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::isTracerFluidSystem ( )
inlinestaticconstexprinherited

If the fluid system only contains tracer components

◆ molarDensity() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::molarDensity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited

The molar density is defined by the mass density \(\rho_\alpha\) and the component molar mass \(M_\alpha\) after

\[\rho_{mol,\alpha} = \frac{\rho_\alpha}{M_\alpha} \;.\]

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ molarDensity() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::molarDensity ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ molarMass()

template<class MPFluidSystem , int phase = 0>
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::molarMass ( int  compIdx)
inlinestatic

◆ name()

template<class MPFluidSystem , int phase = 0>
static std::string Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::name ( )
inlinestatic

◆ phaseName()

template<class MPFluidSystem , int phase = 0>
static std::string Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::phaseName ( int  phaseIdx = 0)
inlinestatic
Parameters
phaseIdxThe index of the fluid phase to consider

◆ thermalConductivity() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::thermalConductivity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited
Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ thermalConductivity() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::thermalConductivity ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ viscosity() [1/2]

static Scalar Dumux::FluidSystems::Base< MPFluidSystem::Scalar , OnePAdapter< MPFluidSystem, 0 > >::viscosity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestaticinherited
Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ viscosity() [2/2]

template<class MPFluidSystem , int phase = 0>
template<class FluidState >
static Scalar Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::viscosity ( const FluidState &  fluidState,
int  phaseIdx = 0 
)
inlinestatic
Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ viscosityIsConstant()

template<class MPFluidSystem , int phase = 0>
static constexpr bool Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::viscosityIsConstant ( int  phaseIdx = 0)
inlinestaticconstexpr

Member Data Documentation

◆ multiphaseFluidsystemPhaseIdx

template<class MPFluidSystem , int phase = 0>
constexpr int Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::multiphaseFluidsystemPhaseIdx = phase
staticconstexpr

◆ numComponents

template<class MPFluidSystem , int phase = 0>
constexpr int Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::numComponents = MultiPhaseFluidSystem::isMiscible() ? MultiPhaseFluidSystem::numComponents : numPhases
staticconstexpr

for compositional models, the number of components has to be the same as in the multi-phase fluid system as the composition needs to be defined, while for non-compositional models, the number of components must equal the number of phases (1 in this case)

◆ numPhases

template<class MPFluidSystem , int phase = 0>
constexpr int Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::numPhases = 1
staticconstexpr

◆ phase0Idx

template<class MPFluidSystem , int phase = 0>
constexpr int Dumux::FluidSystems::OnePAdapter< MPFluidSystem, phase >::phase0Idx = 0
staticconstexpr

index of the only phase


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