13#ifndef DUMUX_3P_VOLUME_VARIABLES_HH 
   14#define DUMUX_3P_VOLUME_VARIABLES_HH 
   28template <
class Traits>
 
   36    using Scalar = 
typename Traits::PrimaryVariables::value_type;
 
   37    using PermeabilityType = 
typename Traits::PermeabilityType;
 
   38    using Idx = 
typename Traits::ModelTraits::Indices;
 
   39    using FS = 
typename Traits::FluidSystem;
 
   43        wPhaseIdx = FS::wPhaseIdx,
 
   44        gPhaseIdx = FS::gPhaseIdx,
 
   45        nPhaseIdx = FS::nPhaseIdx,
 
   49        pressureIdx = Idx::pressureIdx
 
   73    template<
class ElemSol, 
class Problem, 
class Element, 
class Scv>
 
   75                const Problem &problem,
 
   76                const Element &element,
 
   86        const auto fluidMatrixInteraction = problem.spatialParams().fluidMatrixInteraction(element, scv, elemSol);
 
   89            mobility_[phaseIdx] = fluidMatrixInteraction.kr(phaseIdx, sw, sn)
 
   95        EnergyVolVars::updateSolidEnergyParams(elemSol, problem, element, scv, 
solidState_);
 
   96        permeability_ = problem.spatialParams().permeability(element, scv, elemSol);
 
   97        EnergyVolVars::updateEffectiveThermalConductivity();
 
 
  113    template<
class ElemSol, 
class Problem, 
class Element, 
class Scv>
 
  115                            const Problem& problem,
 
  116                            const Element& element,
 
  123        const auto& 
priVars = elemSol[scv.localDofIndex()];
 
  125        const auto fluidMatrixInteraction = problem.spatialParams().fluidMatrixInteraction(element, scv, elemSol);
 
  127        const Scalar sw = 
priVars[swIdx];
 
  128        const Scalar sn = 
priVars[snIdx];
 
  129        const Scalar sg = 1.0 - sw - sn;
 
  136        const Scalar pg = 
priVars[pressureIdx];
 
  139        const Scalar pcgw = fluidMatrixInteraction.pcgw(sw, sn);
 
  140        const Scalar pcnw = fluidMatrixInteraction.pcnw(sw, sn);
 
  141        const Scalar pcgn = fluidMatrixInteraction.pcgn(sw, sn);
 
  143        const Scalar pcAlpha = fluidMatrixInteraction.pcAlpha(sw, sn);
 
  144        const Scalar pcNW1 = 0.0; 
 
  146        const Scalar pn = pg- pcAlpha * pcgn - (1.0 - pcAlpha)*(pcgw - pcNW1);
 
  147        const Scalar pw = pn - pcAlpha * pcnw - (1.0 - pcAlpha)*pcNW1;
 
  153        typename FluidSystem::ParameterCache paramCache;
 
  159            const Scalar mu = FluidSystem::viscosity(
fluidState, paramCache, phaseIdx);
 
  163            const Scalar rho = FluidSystem::density(
fluidState, paramCache, phaseIdx);
 
  167            const Scalar h = EnergyVolVars::enthalpy(
fluidState, paramCache, phaseIdx);
 
 
  229        return mobility_[phaseIdx];
 
 
  248    { 
return permeability_; }
 
 
  256    PermeabilityType permeability_;
 
 
The isothermal base class.
Definition porousmediumflow/volumevariables.hh:28
static constexpr int numFluidComponents()
Return number of components considered by the model.
Definition porousmediumflow/volumevariables.hh:40
const PrimaryVariables & priVars() const
Definition porousmediumflow/volumevariables.hh:64
static constexpr int numFluidPhases()
Return number of phases considered by the model.
Definition porousmediumflow/volumevariables.hh:38
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Updates all quantities for a given control volume.
Definition porousmediumflow/volumevariables.hh:52
Contains the quantities which are constant within a finite volume in the three-phase model.
Definition porousmediumflow/3p/volumevariables.hh:32
const SolidState & solidState() const
Definition porousmediumflow/3p/volumevariables.hh:181
const PermeabilityType & permeability() const
Returns the permeability within the control volume in .
Definition porousmediumflow/3p/volumevariables.hh:247
Idx Indices
Definition porousmediumflow/3p/volumevariables.hh:58
Scalar saturation(const int phaseIdx) const
Returns the effective saturation of a given phase within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:190
void completeFluidState(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv, FluidState &fluidState, SolidState &solidState)
Sets complete fluid state.
Definition porousmediumflow/3p/volumevariables.hh:114
typename NITraits< BaseTraits, ETCM >::SolidSystem SolidSystem
Definition porousmediumflow/3p/volumevariables.hh:62
SolidState solidState_
Definition porousmediumflow/3p/volumevariables.hh:252
typename NITraits< BaseTraits, ETCM >::FluidState FluidState
Definition porousmediumflow/3p/volumevariables.hh:54
Scalar porosity() const
Returns the average porosity within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:241
Scalar mobility(const int phaseIdx) const
Returns the effective mobility of a given phase within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:227
typename NITraits< BaseTraits, ETCM >::FluidSystem FluidSystem
Definition porousmediumflow/3p/volumevariables.hh:56
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Updates all quantities for a given control volume.
Definition porousmediumflow/3p/volumevariables.hh:74
const FluidState & fluidState() const
Definition porousmediumflow/3p/volumevariables.hh:175
FluidState fluidState_
Definition porousmediumflow/3p/volumevariables.hh:251
Scalar temperature() const
Returns temperature inside the sub-control volume.
Definition porousmediumflow/3p/volumevariables.hh:218
Scalar density(const int phaseIdx) const
Returns the mass density of a given phase within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:199
typename NITraits< BaseTraits, ETCM >::SolidState SolidState
Definition porousmediumflow/3p/volumevariables.hh:60
Scalar capillaryPressure() const
Returns the effective capillary pressure within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:235
Scalar pressure(const int phaseIdx) const
Returns the effective pressure of a given phase within the control volume.
Definition porousmediumflow/3p/volumevariables.hh:208
A central place for various physical constants occurring in some equations.
EnergyVolumeVariablesImplementation< IsothermalTraits, Impl, IsothermalTraits::ModelTraits::enableEnergyBalance()> EnergyVolumeVariables
Base class for the model specific class which provides access to all volume averaged quantities.
Definition porousmediumflow/nonisothermal/volumevariables.hh:73
void updateSolidVolumeFractions(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv, SolidState &solidState, const int solidVolFracOffset)
update the solid volume fractions (inert and reacitve) and set them in the solidstate
Definition updatesolidvolumefractions.hh:24
Represents all relevant thermodynamic quantities of a multi-phase fluid system assuming immiscibility...
Base class for the model specific class which provides access to all volume averaged quantities.
Base class for the model specific class which provides access to all volume averaged quantities.
Update the solid volume fractions (inert and reacitve) and set them in the solidstate.