13#ifndef DUMUX_ISOIMMISCIBLE_FLUID_STATE_HH 
   14#define DUMUX_ISOIMMISCIBLE_FLUID_STATE_HH 
   18#include <dune/common/exceptions.hh> 
   28template <
class ScalarType, 
class Flu
idSystem>
 
   32    static constexpr int numPhases = FluidSystem::numPhases;
 
   42    template <class FluidState, typename std::enable_if_t<!std::is_same<FluidState, IsothermalImmiscibleFluidState>::value, 
int> = 0>
 
   83    { 
return (phaseIdx == compIdx) ? 1.0 : 0.0; }
 
 
   94    { 
return (phaseIdx == compIdx) ? 1.0 : 0.0; }
 
 
  108    { 
return FluidSystem::molarMass(phaseIdx); }
 
 
  133    { 
return phaseIdx == compIdx ? 
pressure(phaseIdx) : 0.0; }
 
 
  144    { 
return phaseIdx == compIdx ? 1.0 : std::numeric_limits<Scalar>::infinity(); }
 
 
  195    { DUNE_THROW(Dune::NotImplemented,
"No enthalpy() function defined for isothermal systems!"); }
 
 
  205    { DUNE_THROW(Dune::NotImplemented,
"No internalEnergy() function defined for isothermal systems!"); }
 
 
  224    template <
class Flu
idState>
 
  227        for (
int phaseIdx = 0; phaseIdx < 
numPhases; ++phaseIdx)
 
  229            pressure_[phaseIdx] = fs.pressure(phaseIdx);
 
  231            density_[phaseIdx] = fs.density(phaseIdx);
 
  233            viscosity_[phaseIdx] = fs.viscosity(phaseIdx);
 
 
 
IsothermalImmiscibleFluidState & operator=(const IsothermalImmiscibleFluidState &fs)=default
Scalar massFraction(int phaseIdx, int compIdx) const
Returns the mass fraction  of component  in fluid phase  in .
Definition isothermalimmiscible.hh:93
static constexpr int numComponents
Definition isothermalimmiscible.hh:33
Scalar averageMolarMass(int phaseIdx) const
The average molar mass  of phase  in .
Definition isothermalimmiscible.hh:107
Scalar temperature() const
The temperature within the domain .
Definition isothermalimmiscible.hh:181
Scalar viscosity(int phaseIdx) const
The dynamic viscosity  of fluid phase  in .
Definition isothermalimmiscible.hh:210
void setWettingPhase(int phaseIdx)
Set the index of the most wetting phase.
Definition isothermalimmiscible.hh:277
Scalar molarVolume(int phaseIdx) const
The molar volume  of a fluid phase  in .
Definition isothermalimmiscible.hh:151
Scalar density_[numPhases]
Definition isothermalimmiscible.hh:282
void setDensity(int phaseIdx, Scalar value)
Set the density of a phase .
Definition isothermalimmiscible.hh:259
Scalar viscosity_[numPhases]
Definition isothermalimmiscible.hh:284
Scalar internalEnergy(int phaseIdx) const
The specific internal energy  of a fluid phase  in .
Definition isothermalimmiscible.hh:204
int wettingPhase() const
Returns the index of the most wetting phase in the fluid-solid configuration (for porous medium syste...
Definition isothermalimmiscible.hh:60
Scalar fugacityCoefficient(int phaseIdx, int compIdx) const
The fugacity coefficient  of component  in fluid phase  in .
Definition isothermalimmiscible.hh:143
void setMolarDensity(int phaseIdx, Scalar value)
Set the molar density of a phase .
Definition isothermalimmiscible.hh:265
void setSaturation(int phaseIdx, Scalar value)
Set the saturation of a phase .
Definition isothermalimmiscible.hh:253
Scalar molarity(int phaseIdx, int compIdx) const
The molar concentration  of component  in fluid phase  in .
Definition isothermalimmiscible.hh:119
Scalar pressure_[numPhases]
Definition isothermalimmiscible.hh:280
IsothermalImmiscibleFluidState()=default
default constructor
Scalar saturation_[numPhases]
Definition isothermalimmiscible.hh:281
Scalar density(int phaseIdx) const
The mass density  of the fluid phase  in .
Definition isothermalimmiscible.hh:158
Scalar temperature(int phaseIdx) const
The temperature of a fluid phase .
Definition isothermalimmiscible.hh:175
Scalar pressure(int phaseIdx) const
The pressure  of a fluid phase  in .
Definition isothermalimmiscible.hh:187
IsothermalImmiscibleFluidState & operator=(IsothermalImmiscibleFluidState &&fs)=default
void setViscosity(int phaseIdx, Scalar value)
Set the dynamic viscosity of a phase .
Definition isothermalimmiscible.hh:271
Scalar temperature_
Definition isothermalimmiscible.hh:285
void setPressure(int phaseIdx, Scalar value)
Set the fluid pressure of a phase .
Definition isothermalimmiscible.hh:247
IsothermalImmiscibleFluidState(const FluidState &fs)
copy constructor from arbitrary fluid state
Definition isothermalimmiscible.hh:43
IsothermalImmiscibleFluidState(IsothermalImmiscibleFluidState &&fs)=default
int wPhaseIdx_
Definition isothermalimmiscible.hh:287
void assign(const FluidState &fs)
Retrieve all parameters from an arbitrary fluid state.
Definition isothermalimmiscible.hh:225
Scalar moleFraction(int phaseIdx, int compIdx) const
Returns the molar fraction  of the component  in fluid phase  in .
Definition isothermalimmiscible.hh:82
Scalar fugacity(int phaseIdx, int compIdx) const
The fugacity  of component  in fluid phase  in .
Definition isothermalimmiscible.hh:132
Scalar molarDensity(int phaseIdx) const
The molar density  of a fluid phase  in .
Definition isothermalimmiscible.hh:169
void setTemperature(Scalar value)
Set the temperature  of a fluid phase.
Definition isothermalimmiscible.hh:241
Scalar enthalpy(int phaseIdx) const
The specific enthalpy  of a fluid phase  in  This is not defined for an isothermal fluidstate.
Definition isothermalimmiscible.hh:194
Scalar saturation(int phaseIdx) const
Returns the saturation  of a fluid phase  in .
Definition isothermalimmiscible.hh:70
Scalar molarDensity_[numPhases]
Definition isothermalimmiscible.hh:283
static constexpr int numPhases
Definition isothermalimmiscible.hh:32
ScalarType Scalar
export the scalar type
Definition isothermalimmiscible.hh:36
IsothermalImmiscibleFluidState(const IsothermalImmiscibleFluidState &fs)=default