14#ifndef DUMUX_MPNC_VOLUME_VARIABLES_HH
15#define DUMUX_MPNC_VOLUME_VARIABLES_HH
29template <
class Traits,
bool enableChemicalNonEquilibrium>
37template <
class Traits>
40template <
class Traits>
48 using Scalar =
typename Traits::PrimaryVariables::value_type;
49 using PermeabilityType =
typename Traits::PermeabilityType;
51 using ModelTraits =
typename Traits::ModelTraits;
52 static constexpr auto pressureFormulation = ModelTraits::pressureFormulation();
54 static constexpr bool enableThermalNonEquilibrium = ModelTraits::enableThermalNonEquilibrium();
55 static constexpr bool enableChemicalNonEquilibrium = ModelTraits::enableChemicalNonEquilibrium();
56 static constexpr bool enableDiffusion = ModelTraits::enableMolecularDiffusion();
58 using ComponentVector = Dune::FieldVector<Scalar, ModelTraits::numFluidComponents()>;
60 using EffDiffModel =
typename Traits::EffectiveDiffusivityModel;
61 using DiffusionCoefficients =
typename Traits::DiffusionType::DiffusionCoefficientsContainer;
65 using Indices =
typename Traits::ModelTraits::Indices;
76 static constexpr int numFluidPhases() {
return ModelTraits::numFluidPhases(); }
89 template<
class ElemSol,
class Problem,
class Element,
class Scv>
91 const Problem& problem,
92 const Element& element,
100 const auto& spatialParams = problem.spatialParams();
101 const int wPhaseIdx = spatialParams.template wettingPhase<FluidSystem>(element, scv, elemSol);
102 const auto fluidMatrixInteraction = spatialParams.fluidMatrixInteraction(element, scv, elemSol);
103 const auto relPerm = fluidMatrixInteraction.relativePermeabilities(
fluidState_, wPhaseIdx);
106 typename FluidSystem::ParameterCache paramCache;
112 if constexpr (enableDiffusion)
114 auto getEffectiveDiffusionCoefficient = [&](
int phaseIdx,
int compIIdx,
int compJIdx)
115 {
return EffDiffModel::effectiveDiffusionCoefficient(*
this, phaseIdx, compIIdx, compJIdx); };
120 EnergyVolVars::updateSolidEnergyParams(elemSol, problem, element, scv,
solidState_);
121 permeability_ = problem.spatialParams().permeability(element, scv, elemSol);
122 EnergyVolVars::updateEffectiveThermalConductivity();
137 template<
class ElemSol,
class Problem,
class Element,
class Scv>
139 const Problem& problem,
140 const Element& element,
154 auto&&
priVars = elemSol[scv.localDofIndex()];
156 for (
int phaseIdx = 0; phaseIdx <
numFluidPhases() - 1; ++phaseIdx) {
157 sumSat +=
priVars[Indices::s0Idx + phaseIdx];
166 const auto& spatialParams = problem.spatialParams();
167 const int wPhaseIdx = spatialParams.template wettingPhase<FluidSystem>(element, scv, elemSol);
171 const auto fluidMatrixInteraction = spatialParams.fluidMatrixInteraction(element, scv, elemSol);
172 const auto capPress = fluidMatrixInteraction.capillaryPressures(
fluidState, wPhaseIdx);
179 const Scalar pw =
priVars[Indices::p0Idx];
181 fluidState.setPressure(phaseIdx, pw - capPress[0] + capPress[phaseIdx]);
186 const Scalar pn =
priVars[Indices::p0Idx];
187 for (
int phaseIdx =
numFluidPhases()-1; phaseIdx >= 0; --phaseIdx)
191 DUNE_THROW(Dune::InvalidStateException,
"MPNCVolumeVariables do not support the chosen pressure formulation");
196 typename FluidSystem::ParameterCache paramCache;
202 fug[compIdx] =
priVars[Indices::fug0Idx + compIdx];
209 if (FluidSystem::fugacityCoefficient(
fluidState, paramCache, phaseIdx, compIdx) == 0.0)
210 DUNE_THROW(
NumericalProblem,
"MPNCVolumeVariables do not support fluidsystems with fugacity coefficients of 0");
225 Scalar mu = FluidSystem::viscosity(
fluidState, paramCache, phaseIdx);
229 Scalar h = FluidSystem::enthalpy(
fluidState, paramCache, phaseIdx);
264 {
return fluidState_.massFraction(phaseIdx, compIdx); }
274 {
return fluidState_.moleFraction(phaseIdx, compIdx); }
282 Scalar
molarity(
const int phaseIdx,
int compIdx)
const
283 {
return fluidState_.molarity(phaseIdx, compIdx); }
340 {
return FluidSystem::thermalConductivity(
fluidState_, phaseIdx); }
412 typename FluidSystem::ParameterCache paramCache;
414 return FluidSystem::binaryDiffusionCoefficient(
fluidState_, paramCache, phaseIdx, compIIdx, compJIdx);
445 const unsigned int phaseIdx)
const
456 const unsigned int phaseIdx)
const
461 a -=
fluidState.moleFraction(phaseIdx, compIdx);
478template <
class Traits>
485 using Scalar =
typename Traits::PrimaryVariables::value_type;
486 using PermeabilityType =
typename Traits::PermeabilityType;
488 using ModelTraits =
typename Traits::ModelTraits;
489 static constexpr auto pressureFormulation = ModelTraits::pressureFormulation();
491 static constexpr bool enableThermalNonEquilibrium = ModelTraits::enableThermalNonEquilibrium();
492 static constexpr bool enableChemicalNonEquilibrium = ModelTraits::enableChemicalNonEquilibrium();
493 static constexpr bool enableDiffusion = ModelTraits::enableMolecularDiffusion();
495 using Indices =
typename ModelTraits::Indices;
496 using ComponentVector = Dune::FieldVector<Scalar, ModelTraits::numFluidComponents()>;
498 using ParameterCache =
typename Traits::FluidSystem::ParameterCache;
499 using EffDiffModel =
typename Traits::EffectiveDiffusivityModel;
500 using DiffusionCoefficients =
typename Traits::DiffusionType::DiffusionCoefficientsContainer;
527 template<
class ElemSol,
class Problem,
class Element,
class Scv>
529 const Problem& problem,
530 const Element& element,
538 const auto& spatialParams = problem.spatialParams();
539 const int wPhaseIdx = spatialParams.template wettingPhase<FluidSystem>(element, scv, elemSol);
540 const auto fluidMatrixInteraction = spatialParams.fluidMatrixInteraction(element, scv, elemSol);
541 const auto relPerm = fluidMatrixInteraction.relativePermeabilities(
fluidState_, wPhaseIdx);
544 typename FluidSystem::ParameterCache paramCache;
549 if constexpr (enableDiffusion)
551 auto getEffectiveDiffusionCoefficient = [&](
int phaseIdx,
int compIIdx,
int compJIdx)
552 {
return EffDiffModel::effectiveDiffusionCoefficient(*
this, phaseIdx, compIIdx, compJIdx); };
557 EnergyVolVars::updateSolidEnergyParams(elemSol, problem, element, scv,
solidState_);
558 permeability_ = spatialParams.permeability(element, scv, elemSol);
559 EnergyVolVars::updateEffectiveThermalConductivity();
573 template<
class ElemSol,
class Problem,
class Element,
class Scv>
575 const Problem& problem,
576 const Element& element,
588 auto&&
priVars = elemSol[scv.localDofIndex()];
590 for (
int phaseIdx = 0; phaseIdx <
numFluidPhases() - 1; ++phaseIdx) {
591 sumSat +=
priVars[Indices::s0Idx + phaseIdx];
600 const auto& spatialParams = problem.spatialParams();
601 const int wPhaseIdx = spatialParams.template wettingPhase<FluidSystem>(element, scv, elemSol);
603 const auto fluidMatrixInteraction = spatialParams.fluidMatrixInteraction(element, scv, elemSol);
604 const auto capPress = fluidMatrixInteraction.capillaryPressures(
fluidState, wPhaseIdx);
611 const Scalar pw =
priVars[Indices::p0Idx];
613 fluidState.setPressure(phaseIdx, pw - capPress[0] + capPress[phaseIdx]);
618 const Scalar pn =
priVars[Indices::p0Idx];
619 for (
int phaseIdx =
numFluidPhases()-1; phaseIdx >= 0; --phaseIdx)
623 DUNE_THROW(Dune::InvalidStateException,
"MPNCVolumeVariables do not support the chosen pressure formulation");
629 typename FluidSystem::ParameterCache paramCache;
637 Scalar mu = FluidSystem::viscosity(
fluidState, paramCache, phaseIdx);
641 Scalar h = FluidSystem::enthalpy(
fluidState, paramCache, phaseIdx);
655 ParameterCache & paramCache,
656 const typename Traits::PrimaryVariables&
priVars)
663 actualFluidState.setMoleFraction(phaseIdx,
665 priVars[Indices::moleFrac00Idx +
674 const Scalar phi = FluidSystem::fugacityCoefficient(actualFluidState,
678 actualFluidState.setFugacityCoefficient(phaseIdx,
684 equilFluidState.assign(actualFluidState) ;
691 xEquil_[phaseIdx][compIdx] = equilFluidState.moleFraction(phaseIdx, compIdx);
697 const Scalar rho = FluidSystem::density(actualFluidState, paramCache, phaseIdx);
698 actualFluidState.setDensity(phaseIdx, rho);
699 const Scalar rhoMolar = FluidSystem::molarDensity(actualFluidState, paramCache, phaseIdx);
700 actualFluidState.setMolarDensity(phaseIdx, rhoMolar);
712 const Scalar
xEquil(
const unsigned int phaseIdx,
const unsigned int compIdx)
const
714 return xEquil_[phaseIdx][compIdx] ;
747 {
return fluidState_.massFraction(phaseIdx, compIdx); }
757 {
return fluidState_.moleFraction(phaseIdx, compIdx); }
765 Scalar
molarity(
const int phaseIdx,
int compIdx)
const
766 {
return fluidState_.molarity(phaseIdx, compIdx); }
820 {
return FluidSystem::thermalConductivity(
fluidState_, phaseIdx); }
892 typename FluidSystem::ParameterCache paramCache;
894 return FluidSystem::binaryDiffusionCoefficient(
fluidState_, paramCache, phaseIdx, compIIdx, compJIdx);
925 const unsigned int phaseIdx)
const
936 const unsigned int phaseIdx)
const
941 a -=
fluidState.moleFraction(phaseIdx, compIdx);
Calculates the chemical equilibrium from the component fugacities in the phase .
Definition compositionfromfugacities.hh:41
static void guessInitial(FluidState &fluidState, ParameterCache ¶mCache, int phaseIdx, const ComponentVector &fugVec)
Guess an initial value for the composition of the phase.
Definition compositionfromfugacities.hh:56
static void solve(FluidState &fluidState, ParameterCache ¶mCache, int phaseIdx, const ComponentVector &targetFug)
Calculates the chemical equilibrium from the component fugacities in a phase.
Definition compositionfromfugacities.hh:84
Scalar diffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const
Returns the binary diffusion coefficients for a phase in .
Definition porousmediumflow/mpnc/volumevariables.hh:410
typename Traits::SolidState SolidState
Export type of solid state.
Definition porousmediumflow/mpnc/volumevariables.hh:71
Scalar temperature() const
Returns the temperature inside the sub-control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:317
Scalar averageMolarMass(const int phaseIdx) const
Returns the average molar mass the of the phase.
Definition porousmediumflow/mpnc/volumevariables.hh:351
FluidState fluidState_
Mass fractions of each component within each phase.
Definition porousmediumflow/mpnc/volumevariables.hh:471
Scalar saturation(int phaseIdx) const
Returns the saturation of a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:253
Scalar pressure(const int phaseIdx) const
Returns the effective pressure of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:299
static constexpr int numFluidComps
Return number of components considered by the model.
Definition porousmediumflow/mpnc/volumevariables.hh:78
const FluidState & fluidState() const
Returns the fluid configuration at the given primary variables.
Definition porousmediumflow/mpnc/volumevariables.hh:238
Scalar fluidThermalConductivity(const int phaseIdx) const
Returns the thermal conductivity of a fluid phase in the sub-control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:339
Scalar porosity() const
Returns the average porosity within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:384
Scalar mobility(const unsigned int phaseIdx) const
Returns the effective mobility of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:360
const SolidState & solidState() const
Returns the phase state for the control-volume.
Definition porousmediumflow/mpnc/volumevariables.hh:244
Scalar relativePermeability(const unsigned int phaseIdx) const
Returns the relative permeability of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:378
Scalar massFraction(const int phaseIdx, const int compIdx) const
Returns the mass fraction of a given component in a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:263
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Updates all quantities for a given control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:90
Scalar molarity(const int phaseIdx, int compIdx) const
Returns the concentration of a component in the phase.
Definition porousmediumflow/mpnc/volumevariables.hh:282
typename Traits::ModelTraits::Indices Indices
Export the type encapsulating primary variable indices.
Definition porousmediumflow/mpnc/volumevariables.hh:65
Scalar temperature(const int phaseIdx) const
Definition porousmediumflow/mpnc/volumevariables.hh:320
const PermeabilityType & permeability() const
Returns the permeability within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:390
Scalar fugacity(const int compIdx) const
Returns the fugacity the of the component.
Definition porousmediumflow/mpnc/volumevariables.hh:345
Scalar enthalpy(const int phaseIdx) const
Return enthalpy the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:326
Scalar effectiveDiffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const
Returns the effective diffusion coefficients for a phase in .
Definition porousmediumflow/mpnc/volumevariables.hh:420
SolidState solidState_
Definition porousmediumflow/mpnc/volumevariables.hh:472
Scalar density(const int phaseIdx) const
Returns the density the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:307
Scalar moleFraction(const int phaseIdx, const int compIdx) const
Returns the mole fraction of a given component in a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:273
std::array< Scalar, ModelTraits::numFluidPhases()> relativePermeability_
Effective relative permeability within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:467
typename Traits::FluidState FluidState
Export the fluid state type.
Definition porousmediumflow/mpnc/volumevariables.hh:69
DiffusionCoefficients effectiveDiffCoeff_
Definition porousmediumflow/mpnc/volumevariables.hh:475
Scalar molarDensity(const int phaseIdx) const
Returns the molar density the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:290
Scalar phaseNcp(const unsigned int phaseIdx) const
Returns the value of the NCP-function for a phase.
Definition porousmediumflow/mpnc/volumevariables.hh:428
static constexpr int numFluidPhases()
Return number of phases considered by the model.
Definition porousmediumflow/mpnc/volumevariables.hh:76
Scalar phasePresentIneq(const FluidState &fluidState, const unsigned int phaseIdx) const
Returns the value of the inequality where a phase is present.
Definition porousmediumflow/mpnc/volumevariables.hh:444
Scalar viscosity(const unsigned int phaseIdx) const
Returns the viscosity of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:369
void completeFluidState(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv, FluidState &fluidState, SolidState &solidState)
Sets complete fluid state.
Definition porousmediumflow/mpnc/volumevariables.hh:138
PermeabilityType permeability_
Definition porousmediumflow/mpnc/volumevariables.hh:468
Scalar internalEnergy(const int phaseIdx) const
Returns the internal energy the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:332
typename Traits::SolidSystem SolidSystem
Export type of solid system.
Definition porousmediumflow/mpnc/volumevariables.hh:73
Scalar phaseNotPresentIneq(const FluidState &fluidState, const unsigned int phaseIdx) const
Returns the value of the inequality where a phase is not present.
Definition porousmediumflow/mpnc/volumevariables.hh:455
typename Traits::FluidSystem FluidSystem
Export the underlying fluid system.
Definition porousmediumflow/mpnc/volumevariables.hh:67
Scalar porosity_
Effective porosity within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:466
bool isPhaseActive(const unsigned int phaseIdx) const
Returns true if the fluid state is in the active set for a phase,.
Definition porousmediumflow/mpnc/volumevariables.hh:399
Scalar fugacity(const int compIdx) const
Returns the fugacity the of the component.
Definition porousmediumflow/mpnc/volumevariables.hh:825
PermeabilityType permeability_
Definition porousmediumflow/mpnc/volumevariables.hh:947
Scalar fluidThermalConductivity(const int phaseIdx) const
Returns the thermal conductivity of a fluid phase in the sub-control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:819
Scalar temperature() const
Returns the temperature inside the sub-control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:800
MiscibleMultiPhaseComposition< Scalar, FluidSystem > ConstraintSolver
Definition porousmediumflow/mpnc/volumevariables.hh:516
Scalar mobility(const unsigned int phaseIdx) const
Returns the effective mobility of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:840
void updateMoleFraction(FluidState &actualFluidState, ParameterCache ¶mCache, const typename Traits::PrimaryVariables &priVars)
Updates composition of all phases in the mutable parameters from the primary variables.
Definition porousmediumflow/mpnc/volumevariables.hh:654
Scalar pressure(const int phaseIdx) const
Returns the effective pressure of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:782
static constexpr int numFluidComps
Return number of components considered by the model.
Definition porousmediumflow/mpnc/volumevariables.hh:515
const SolidState & solidState() const
Returns the phase state for the control-volume.
Definition porousmediumflow/mpnc/volumevariables.hh:727
Scalar phasePresentIneq(const FluidState &fluidState, const unsigned int phaseIdx) const
Returns the value of the inequality where a phase is present.
Definition porousmediumflow/mpnc/volumevariables.hh:924
typename Traits::SolidSystem SolidSystem
Export type of solid system.
Definition porousmediumflow/mpnc/volumevariables.hh:510
Scalar porosity() const
Returns the average porosity within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:864
typename Traits::SolidState SolidState
Export type of solid state.
Definition porousmediumflow/mpnc/volumevariables.hh:508
Scalar phaseNotPresentIneq(const FluidState &fluidState, const unsigned int phaseIdx) const
Returns the value of the inequality where a phase is not present.
Definition porousmediumflow/mpnc/volumevariables.hh:935
typename Traits::FluidState FluidState
Export the fluid state type.
Definition porousmediumflow/mpnc/volumevariables.hh:506
Scalar enthalpy(const int phaseIdx) const
Returns the enthalpy the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:806
Scalar density(const int phaseIdx) const
Returns the density the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:790
Scalar effectiveDiffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const
Returns the effective diffusion coefficients for a phase in .
Definition porousmediumflow/mpnc/volumevariables.hh:900
SolidState solidState_
Definition porousmediumflow/mpnc/volumevariables.hh:952
typename Traits::FluidSystem FluidSystem
Export the underlying fluid system.
Definition porousmediumflow/mpnc/volumevariables.hh:504
Scalar diffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const
Returns the binary diffusion coefficients for a phase in .
Definition porousmediumflow/mpnc/volumevariables.hh:890
const PermeabilityType & permeability() const
Returns the permeability within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:870
Scalar molarDensity(const int phaseIdx) const
Returns the molar density the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:773
Scalar viscosity(const unsigned int phaseIdx) const
Returns the viscosity of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:849
Scalar internalEnergy(const int phaseIdx) const
Returns the internal energy the of the fluid phase.
Definition porousmediumflow/mpnc/volumevariables.hh:812
std::array< std::array< Scalar, numFluidComps >, numFluidPhases()> xEquil_
Definition porousmediumflow/mpnc/volumevariables.hh:948
Scalar moleFraction(const int phaseIdx, const int compIdx) const
Returns the mole fraction of a given component in a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:756
void update(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
Updates all quantities for a given control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:528
static constexpr int numFluidPhases()
Return number of phases considered by the model.
Definition porousmediumflow/mpnc/volumevariables.hh:513
Scalar saturation(int phaseIdx) const
Returns the saturation of a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:736
FluidState fluidState_
Mass fractions of each component within each phase.
Definition porousmediumflow/mpnc/volumevariables.hh:951
Scalar phaseNcp(const unsigned int phaseIdx) const
Returns the value of the NCP-function for a phase.
Definition porousmediumflow/mpnc/volumevariables.hh:908
Scalar averageMolarMass(const int phaseIdx) const
Returns the average molar mass the of the phase.
Definition porousmediumflow/mpnc/volumevariables.hh:831
std::array< Scalar, ModelTraits::numFluidPhases()> relativePermeability_
Effective relative permeability within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:946
void completeFluidState(const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv, FluidState &fluidState, SolidState &solidState)
Sets complete fluid state.
Definition porousmediumflow/mpnc/volumevariables.hh:574
DiffusionCoefficients effectiveDiffCoeff_
Definition porousmediumflow/mpnc/volumevariables.hh:955
bool isPhaseActive(const unsigned int phaseIdx) const
Returns true if the fluid state is in the active set for a phase,.
Definition porousmediumflow/mpnc/volumevariables.hh:879
Scalar massFraction(const int phaseIdx, const int compIdx) const
Returns the mass fraction of a given component in a given phase within the control volume in .
Definition porousmediumflow/mpnc/volumevariables.hh:746
const Scalar xEquil(const unsigned int phaseIdx, const unsigned int compIdx) const
The mole fraction we would have in the case of chemical equilibrium / on the interface.
Definition porousmediumflow/mpnc/volumevariables.hh:712
Scalar relativePermeability(const unsigned int phaseIdx) const
Returns the relative permeability of a given phase within the control volume.
Definition porousmediumflow/mpnc/volumevariables.hh:858
const FluidState & fluidState() const
Returns the fluid configuration at the given primary variables.
Definition porousmediumflow/mpnc/volumevariables.hh:721
Scalar molarity(const int phaseIdx, int compIdx) const
Returns the concentration of a component in the phase.
Definition porousmediumflow/mpnc/volumevariables.hh:765
Definition porousmediumflow/mpnc/volumevariables.hh:30
Computes the composition of all phases of a N-phase, N-component fluid system assuming that all N pha...
Definition misciblemultiphasecomposition.hh:47
static void solve(FluidState &fluidState, ParameterCache ¶mCache, int knownPhaseIdx=0)
Computes the composition of all phases of a N-phase, N-component fluid system assuming that all N pha...
Definition misciblemultiphasecomposition.hh:69
Exception thrown if a fixable numerical problem occurs.
Definition exceptions.hh:27
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
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
Determines the fluid composition given the component fugacities and an arbitrary equation of state.
MPNCVolumeVariablesImplementation< Traits, Traits::ModelTraits::enableChemicalNonEquilibrium()> MPNCVolumeVariables
Contains the quantities which are constant within a finite volume in the MpNc model.
Definition porousmediumflow/mpnc/volumevariables.hh:38
@ mostWettingFirst
Definition pressureformulation.hh:25
@ leastWettingFirst
Definition pressureformulation.hh:25
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
Computes the composition of all phases of a N-phase, N-component fluid system assuming that all N pha...
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.