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_;
Definition porousmediumflow/nonisothermal/volumevariables.hh:63
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
Returns the vector of primary variables.
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
Returns the phase state for the control volume.
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
Export the 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 Traits::SolidSystem SolidSystem
Export type of solid system.
Definition porousmediumflow/3p/volumevariables.hh:62
SolidState solidState_
Definition porousmediumflow/3p/volumevariables.hh:252
typename Traits::FluidState FluidState
Export fluid state type.
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 Traits::FluidSystem FluidSystem
Export fluid system type.
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
Returns the phase state for the control-volume.
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 Traits::SolidState SolidState
Export type of solid state.
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.
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.