3.3.0
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > Class Template Reference

A fluid system for three-phase models assuming immiscibility and thermodynamic equilibrium. More...

#include <dumux/material/fluidsystems/3pimmiscible.hh>

Inheritance diagram for Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >:

Description

template<class Scalar, class WettingFluid, class NonwettingFluid, class Gas>
class Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >

A fluid system for three-phase models assuming immiscibility and thermodynamic equilibrium.

The fluid phases are completely specified by means of their constituting components. The wetting and the nonwetting phase can be defined individually via FluidSystem::OnePLiquid<Scalar, Component>. The gas phase can be defined via FluidSystems::OnePGas<Scalar, Component> These phases consist of one pure component.

Template Parameters
Scalarthe scalar type
WettingFluidthe wetting phase fluid system (use FluidSystem::OnePLiquid<Scalar, Component>)
NonwettingFluidthe wetting phase fluid system (use FluidSystem::OnePLiquid<Scalar, Component>)
Gasthe gas phase fluid system (use FluidSystem::OnePGas<Scalar, Component>)

Public Types

using Scalar = Scalar
 export the scalar type More...
 
using ParameterCache = NullParameterCache
 The type of parameter cache objects. More...
 

Static Public Member Functions

static std::string phaseName (int phaseIdx)
 Return the human readable name of a fluid phase. More...
 
static constexpr bool isMiscible ()
 Returns whether the fluids are miscible. More...
 
static constexpr bool isGas (int phaseIdx)
 Return whether a phase is gaseous. More...
 
static constexpr bool isIdealMixture (int phaseIdx)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. More...
 
static constexpr bool isCompressible (int phaseIdx)
 Returns true if and only if a fluid phase is assumed to be compressible. More...
 
static constexpr bool isIdealGas (int phaseIdx)
 Returns true if and only if a fluid phase is assumed to be an ideal gas. More...
 
static std::string componentName (int compIdx)
 Return the human readable name of a component. More...
 
static Scalar molarMass (int compIdx)
 Return the molar mass of a component in \(\mathrm{[kg/mol]}\). More...
 
static Scalar criticalTemperature (int compIdx)
 Critical temperature of a component \(\mathrm{[K]}\). More...
 
static Scalar criticalPressure (int compIdx)
 Critical pressure of a component \(\mathrm{[Pa]}\). More...
 
static Scalar acentricFactor (int compIdx)
 The acentric factor of a component \(\mathrm{[-]}\). More...
 
static constexpr void init ()
 Initialize the fluid system's static parameters. More...
 
static void init (Scalar tempMin, Scalar tempMax, unsigned nTemp, Scalar pressMin, Scalar pressMax, unsigned nPress)
 Initialize the fluid system's static parameters using problem specific temperature and pressure ranges. More...
 
template<class FluidState >
static Scalar density (const FluidState &fluidState, int phaseIdx)
 Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar molarDensity (const FluidState &fluidState, int phaseIdx)
 The molar density \(\rho_{mol,\alpha}\) of a fluid phase \(\alpha\) in \(\mathrm{[mol/m^3]}\). More...
 
template<class FluidState >
static Scalar viscosity (const FluidState &fluidState, int phaseIdx)
 Return the viscosity of a phase \(\mathrm{[Pa*s]}\). More...
 
template<class FluidState >
static Scalar fugacityCoefficient (const FluidState &fluidState, int phaseIdx, int compIdx)
 Calculate the fugacity coefficient \(\mathrm{[-]}\) 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 enthalpy (const FluidState &fluidState, int phaseIdx)
 Return the specific enthalpy of a fluid phase \(\mathrm{[J/kg]}\). More...
 
template<class FluidState >
static Scalar thermalConductivity (const FluidState &fluidState, int phaseIdx)
 Thermal conductivity of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
template<class FluidState >
static Scalar heatCapacity (const FluidState &fluidState, int phaseIdx)
 Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
template<class FluidState >
static Scalar density (const FluidState &fluidState, int phaseIdx)
 Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar density (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar molarDensity (const FluidState &fluidState, int phaseIdx)
 Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar molarDensity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase. More...
 
template<class FluidState >
static Scalar viscosity (const FluidState &fluidState, int phaseIdx)
 Calculate the dynamic viscosity of a fluid phase \(\mathrm{[Pa*s]}\). More...
 
template<class FluidState >
static Scalar viscosity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 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 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...
 
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 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...
 
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 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...
 
template<class FluidState >
static Scalar enthalpy (const FluidState &fluidState, int phaseIdx)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy \(\mathrm{[J/kg]}\). More...
 
template<class FluidState >
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...
 
template<class FluidState >
static Scalar thermalConductivity (const FluidState &fluidState, int phaseIdx)
 Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
template<class FluidState >
static Scalar thermalConductivity (const FluidState &fluidState, const ParameterCache &paramCache, int phaseIdx)
 Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\). More...
 
template<class FluidState >
static Scalar heatCapacity (const FluidState &fluidState, int phaseIdx)
 Specific isobaric heat capacity \(c_{p,\alpha}\) of a fluid phase \(\mathrm{[J/(kg*K)]}\). More...
 
template<class FluidState >
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 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 constexpr bool viscosityIsConstant (int phaseIdx)
 Returns true if and only if a fluid phase is assumed to have a constant viscosity. More...
 

Static Public Attributes

static constexpr int numPhases = 3
 Number of phases in the fluid system. More...
 
static constexpr int wPhaseIdx = 0
 Index of the wetting phase. More...
 
static constexpr int nPhaseIdx = 1
 Index of the nonwetting phase. More...
 
static constexpr int gPhaseIdx = 2
 Index of the gas phase. More...
 
static constexpr int numComponents = 3
 Number of components in the fluid system. More...
 
static constexpr int wCompIdx = 0
 Index of the wetting phase's component. More...
 
static constexpr int nCompIdx = 1
 Index of the nonwetting phase's component. More...
 
static constexpr int gCompIdx = 2
 Index of the gas phase's component. More...
 

Member Typedef Documentation

◆ ParameterCache

using Dumux::FluidSystems::Base< Scalar , ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > >::ParameterCache = NullParameterCache
inherited

The type of parameter cache objects.

◆ Scalar

using Dumux::FluidSystems::Base< Scalar , ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > >::Scalar = Scalar
inherited

export the scalar type

Member Function Documentation

◆ acentricFactor()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::acentricFactor ( int  compIdx)
inlinestatic

The acentric factor of a component \(\mathrm{[-]}\).

Parameters
compIdxindex of the component

◆ binaryDiffusionCoefficient() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIIdx,
int  compJIdx 
)
inlinestatic

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.

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase
compIIdxIndex of the component i
compJIdxIndex of the component j

◆ binaryDiffusionCoefficient() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIIdx,
int  compJIdx 
)
inlinestatic

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.

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase
compIIdxIndex of the component i
compJIdxIndex of the component j

◆ binaryDiffusionCoefficient() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIIdx,
int  compJIdx 
)
inlinestatic

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.

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxIndex of the fluid phase
compIIdxindex of the component i
compJIdxindex of the component j

◆ componentName()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static std::string Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::componentName ( int  compIdx)
inlinestatic

Return the human readable name of a component.

Parameters
compIdxindex of the component

◆ criticalPressure()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::criticalPressure ( int  compIdx)
inlinestatic

Critical pressure of a component \(\mathrm{[Pa]}\).

Parameters
compIdxindex of the component

◆ criticalTemperature()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::criticalTemperature ( int  compIdx)
inlinestatic

Critical temperature of a component \(\mathrm{[K]}\).

Parameters
compIdxindex of the component

◆ density() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::density ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase.

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ density() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::density ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase.

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ density() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::density ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Calculate the density \(\mathrm{[kg/m^3]}\) of a fluid phase.

◆ diffusionCoefficient() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::diffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the binary molecular diffusion coefficient for a component in a fluid phase \(\mathrm{[mol^2 * s / (kg*m^3)]}\).

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase
compIdxIndex of the component Molecular diffusion of a component \(\mathrm{\kappa}\) is caused by a gradient of the chemical potential and follows the law

\[ J = - D \mathbf{grad} \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.

◆ diffusionCoefficient() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::diffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the binary molecular diffusion coefficient for a component in a fluid phase \(\mathrm{[mol^2 * s / (kg*m^3)]}\).

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase
compIdxIndex of the component Molecular diffusion of a component \(\mathrm{\kappa}\) is caused by a gradient of the chemical potential and follows the law

\[ J = - D \mathbf{grad} \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.

◆ diffusionCoefficient() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::diffusionCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the binary molecular diffusion coefficient for a component in a fluid phase \(\mathrm{[mol^2 * s / (kg*m^3)]}\).

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxIndex of the fluid phase
compIdxindex of the component

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

\[ J = - D \mathbf{grad} \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.

◆ enthalpy() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::enthalpy ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy \(\mathrm{[J/kg]}\).

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ enthalpy() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::enthalpy ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy \(\mathrm{[J/kg]}\).

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ enthalpy() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::enthalpy ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Return the specific enthalpy of a fluid phase \(\mathrm{[J/kg]}\).

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxIndex of the fluid phase

◆ fugacityCoefficient() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::fugacityCoefficient ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the fugacity coefficient \(\mathrm{[Pa]}\) of an individual component in a fluid phase.

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/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::fugacityCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the fugacity coefficient \(\mathrm{[Pa]}\) of an individual component in a fluid phase.

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

◆ fugacityCoefficient() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::fugacityCoefficient ( const FluidState &  fluidState,
int  phaseIdx,
int  compIdx 
)
inlinestatic

Calculate the fugacity coefficient \(\mathrm{[-]}\) of an individual component in a fluid phase.

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 of the two-phase model
phaseIdxIndex of the fluid phase
compIdxindex of the component

◆ getMainComponent()

static constexpr int Dumux::FluidSystems::Base< Scalar , ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > >::getMainComponent ( int  phaseIdx)
inlinestaticconstexprinherited

Get the main component of a given phase if possible.

Parameters
phaseIdxThe index of the fluid phase to consider
Todo:
Unfortunately we currently still have the assumption in some volume variables (e.g. 1pnc, 2pnc) that the main component index of a phase is equal to the phase index of that phase. This means changing this only works if the volume variables are written accordingly.
Note
This only makes sense if this is not a tracer fluid system (then the bulk component is not balanced)

◆ heatCapacity() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::heatCapacity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Specific isobaric heat capacity \(c_{p,\alpha}\) of a fluid phase \(\mathrm{[J/(kg*K)]}\).

Parameters
fluidStaterepresents all relevant thermodynamic quantities of a fluid system
paramCachemutable parameters
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} \)

◆ heatCapacity() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::heatCapacity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Specific isobaric heat capacity \(c_{p,\alpha}\) of a fluid phase \(\mathrm{[J/(kg*K)]}\).

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} \)

◆ heatCapacity() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::heatCapacity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\).

Additional comments:

Specific isobaric heat capacity of a fluid phase. \(\mathrm{[J/(kg*K)]}\).

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxfor which phase to give back the heat capacity

◆ init() [1/2]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr void Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::init ( )
inlinestaticconstexpr

Initialize the fluid system's static parameters.

◆ init() [2/2]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static void Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::init ( Scalar  tempMin,
Scalar  tempMax,
unsigned  nTemp,
Scalar  pressMin,
Scalar  pressMax,
unsigned  nPress 
)
inlinestatic

Initialize the fluid system's static parameters using problem specific temperature and pressure ranges.

Parameters
tempMinThe minimum temperature used for tabulation of water \(\mathrm{[K]}\)
tempMaxThe maximum temperature used for tabulation of water \(\mathrm{[K]}\)
nTempThe number of ticks on the temperature axis of the table of water
pressMinThe minimum pressure used for tabulation of water \(\mathrm{[Pa]}\)
pressMaxThe maximum pressure used for tabulation of water \(\mathrm{[Pa]}\)
nPressThe number of ticks on the pressure axis of the table of water

◆ isCompressible()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr bool Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::isCompressible ( int  phaseIdx)
inlinestaticconstexpr

Returns true if and only if a fluid phase is assumed to be compressible.

Compressible means. that the partial derivative of the density to the fluid pressure is always larger than zero.

Parameters
phaseIdxThe index of the fluid phase to consider

◆ isGas()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr bool Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::isGas ( int  phaseIdx)
inlinestaticconstexpr

Return whether a phase is gaseous.

Parameters
phaseIdxThe index of the fluid phase to consider

◆ isIdealGas()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr bool Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::isIdealGas ( int  phaseIdx)
inlinestaticconstexpr

Returns true if and only if a fluid phase is assumed to be an ideal gas.

Parameters
phaseIdxThe index of the fluid phase to consider

◆ isIdealMixture()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr bool Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::isIdealMixture ( int  phaseIdx)
inlinestaticconstexpr

Returns true if and only if a fluid phase is assumed to be an ideal mixture.

Parameters
phaseIdxThe index of the fluid phase to consider

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 immiscibility is assumed. 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.

◆ isMiscible()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static constexpr bool Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::isMiscible ( )
inlinestaticconstexpr

Returns whether the fluids are miscible.

◆ isTracerFluidSystem()

static constexpr bool Dumux::FluidSystems::Base< Scalar , ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > >::isTracerFluidSystem ( )
inlinestaticconstexprinherited

Some properties of the fluid system.

If the fluid system only contains tracer components

◆ molarDensity() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::molarDensity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase.

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ molarDensity() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::molarDensity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Calculate the molar density \(\mathrm{[mol/m^3]}\) of a fluid phase.

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ molarDensity() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::molarDensity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

The molar density \(\rho_{mol,\alpha}\) of a fluid phase \(\alpha\) in \(\mathrm{[mol/m^3]}\).

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

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

◆ molarMass()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::molarMass ( int  compIdx)
inlinestatic

Return the molar mass of a component in \(\mathrm{[kg/mol]}\).

Parameters
compIdxindex of the component

◆ phaseName()

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
static std::string Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::phaseName ( int  phaseIdx)
inlinestatic

Return the human readable name of a fluid phase.

Parameters
phaseIdxThe index of the fluid phase to consider

◆ thermalConductivity() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::thermalConductivity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\).

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ thermalConductivity() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::thermalConductivity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Thermal conductivity \(\lambda_\alpha \) of a fluid phase \(\mathrm{[W/(m K)]}\).

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ thermalConductivity() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::thermalConductivity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Thermal conductivity of a fluid phase \(\mathrm{[W/(m K)]}\).

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxIndex of the fluid phase

◆ viscosity() [1/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::viscosity ( const FluidState &  fluidState,
const ParameterCache paramCache,
int  phaseIdx 
)
inlinestatic

Calculate the dynamic viscosity of a fluid phase \(\mathrm{[Pa*s]}\).

Parameters
fluidStateThe fluid state
paramCachemutable parameters
phaseIdxIndex of the fluid phase

◆ viscosity() [2/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::Base< ScalarType, Implementation >::viscosity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Calculate the dynamic viscosity of a fluid phase \(\mathrm{[Pa*s]}\).

Parameters
fluidStateThe fluid state
phaseIdxIndex of the fluid phase

◆ viscosity() [3/3]

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
template<class FluidState >
static Scalar Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::viscosity ( const FluidState &  fluidState,
int  phaseIdx 
)
inlinestatic

Return the viscosity of a phase \(\mathrm{[Pa*s]}\).

Parameters
fluidStateThe fluid state of the two-phase model
phaseIdxIndex of the fluid phase

◆ viscosityIsConstant()

static constexpr bool Dumux::FluidSystems::Base< Scalar , ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas > >::viscosityIsConstant ( int  phaseIdx)
inlinestaticconstexprinherited

Returns true if and only if a fluid phase is assumed to have a constant viscosity.

Parameters
phaseIdxThe index of the fluid phase to consider

Member Data Documentation

◆ gCompIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::gCompIdx = 2
staticconstexpr

Index of the gas phase's component.

◆ gPhaseIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::gPhaseIdx = 2
staticconstexpr

Index of the gas phase.

◆ nCompIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::nCompIdx = 1
staticconstexpr

Index of the nonwetting phase's component.

◆ nPhaseIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::nPhaseIdx = 1
staticconstexpr

Index of the nonwetting phase.

◆ numComponents

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::numComponents = 3
staticconstexpr

Number of components in the fluid system.

◆ numPhases

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::numPhases = 3
staticconstexpr

Number of phases in the fluid system.

◆ wCompIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::wCompIdx = 0
staticconstexpr

Index of the wetting phase's component.

◆ wPhaseIdx

template<class Scalar , class WettingFluid , class NonwettingFluid , class Gas >
constexpr int Dumux::FluidSystems::ThreePImmiscible< Scalar, WettingFluid, NonwettingFluid, Gas >::wPhaseIdx = 0
staticconstexpr

Index of the wetting phase.


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