From 0fd01d0c54a812f5770b3b55229b0946dc8e82d5 Mon Sep 17 00:00:00 2001 From: Ned Coltman <edward.coltman@iws.uni-stuttgart.de> Date: Wed, 18 Mar 2020 11:52:39 +0100 Subject: [PATCH] [Richards] Modify richards volume variables for diffCoeff access --- .../richards/volumevariables.hh | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/dumux/porousmediumflow/richards/volumevariables.hh b/dumux/porousmediumflow/richards/volumevariables.hh index fef0863edb..7f0cafd59f 100644 --- a/dumux/porousmediumflow/richards/volumevariables.hh +++ b/dumux/porousmediumflow/richards/volumevariables.hh @@ -71,6 +71,7 @@ class RichardsVolumeVariables using ModelTraits = typename Traits::ModelTraits; static constexpr int numFluidComps = ParentType::numFluidComponents(); + static constexpr int numPhases = ParentType::numFluidPhases(); using EffDiffModel = typename Traits::EffectiveDiffusivityModel; @@ -172,11 +173,11 @@ public: //binary diffusion coefficients paramCache.updateAll(fluidState_); diffCoeff_ = getDiffusionCoefficient(FluidSystem::gasPhaseIdx, - FluidSystem::comp0Idx, - FluidSystem::comp1Idx); + FluidSystem::comp1Idx, + FluidSystem::comp0Idx); effectiveDiffCoeff_ = getEffectiveDiffusionCoefficient(FluidSystem::gasPhaseIdx, - FluidSystem::comp0Idx, - FluidSystem::comp1Idx); + FluidSystem::comp1Idx, + FluidSystem::comp0Idx); } else if (phasePresence == Indices::bothPhases) { @@ -201,11 +202,11 @@ public: // binary diffusion coefficients paramCache.updateAll(fluidState_); diffCoeff_ = getDiffusionCoefficient(FluidSystem::gasPhaseIdx, - FluidSystem::comp0Idx, - FluidSystem::comp1Idx); + FluidSystem::comp1Idx, + FluidSystem::comp0Idx); effectiveDiffCoeff_ = getEffectiveDiffusionCoefficient(FluidSystem::gasPhaseIdx, - FluidSystem::comp0Idx, - FluidSystem::comp1Idx); + FluidSystem::comp1Idx, + FluidSystem::comp0Idx); } } else if (phasePresence == Indices::liquidPhaseOnly) @@ -507,9 +508,9 @@ public: */ Scalar diffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const { - assert(enableWaterDiffusionInAir() && phaseIdx == FluidSystem::gasPhaseIdx - && compIIdx == FluidSystem::comp0Idx - && compJIdx == FluidSystem::comp1Idx); + assert(enableWaterDiffusionInAir()); + assert(phaseIdx == FluidSystem::gasPhaseIdx); + assert(compIIdx != compJIdx); return diffCoeff_; } @@ -518,9 +519,9 @@ public: */ Scalar effectiveDiffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx) const { - assert(enableWaterDiffusionInAir() && phaseIdx == FluidSystem::gasPhaseIdx - && compIIdx == FluidSystem::comp0Idx - && compJIdx == FluidSystem::comp1Idx); + assert(enableWaterDiffusionInAir()); + assert(phaseIdx == FluidSystem::gasPhaseIdx); + assert(compIIdx != compJIdx); return effectiveDiffCoeff_; } @@ -530,9 +531,9 @@ protected: Scalar relativePermeabilityWetting_; //!< the relative permeability of the wetting phase PermeabilityType permeability_; //!< the instrinsic permeability Scalar minPc_; //!< the minimum capillary pressure (entry pressure) - Scalar moleFraction_[ParentType::numFluidPhases()]; //!< The water mole fractions in water and air - Scalar massFraction_[ParentType::numFluidPhases()]; //!< The water mass fractions in water and air - Scalar molarDensity_[ParentType::numFluidPhases()]; //!< The molar density of water and air + Scalar moleFraction_[numPhases]; //!< The water mole fractions in water and air + Scalar massFraction_[numPhases]; //!< The water mass fractions in water and air + Scalar molarDensity_[numPhases]; //!< The molar density of water and air // Binary diffusion coefficient Scalar diffCoeff_; -- GitLab