84                               const SubControlVolume& scv,
 
   85                               const VolumeVariables& volVars)
 const 
   87        NumEqVector storage(0.0);
 
   90        for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
 
   92            for (
int compIdx = 0; compIdx < numComponents; ++compIdx)
 
   94                auto eqIdx = Indices::conti0EqIdx + compIdx;
 
   95                storage[eqIdx] += volVars.porosity()
 
   96                                  * volVars.saturation(phaseIdx)
 
   97                                  * volVars.molarDensity(phaseIdx)
 
   98                                  * volVars.moleFraction(phaseIdx, compIdx);
 
  102            EnergyLocalResidual::fluidPhaseStorage(storage, problem, scv, volVars, phaseIdx);
 
  106        EnergyLocalResidual::solidPhaseStorage(storage, scv, volVars);
 
 
  123                            const Element& element,
 
  124                            const FVElementGeometry& fvGeometry,
 
  125                            const ElementVolumeVariables& elemVolVars,
 
  126                            const SubControlVolumeFace& scvf,
 
  127                            const ElementFluxVariablesCache& elemFluxVarsCache)
 const 
  129        FluxVariables fluxVars;
 
  130        fluxVars.init(problem, element, fvGeometry, elemVolVars, scvf, elemFluxVarsCache);
 
  131        static constexpr auto referenceSystemFormulation = FluxVariables::MolecularDiffusionType::referenceSystemFormulation();
 
  134        NumEqVector flux(0.0);
 
  137        for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
 
  139            for (
int compIdx = 0; compIdx < numComponents; ++compIdx)
 
  141                auto upwindTerm = [phaseIdx, compIdx](
const VolumeVariables& volVars)
 
  142                { 
return volVars.molarDensity(phaseIdx)*volVars.moleFraction(phaseIdx, compIdx)*volVars.mobility(phaseIdx); };
 
  145                auto eqIdx = Indices::conti0EqIdx + compIdx;
 
  146                flux[eqIdx] += fluxVars.advectiveFlux(phaseIdx, upwindTerm);
 
  150            EnergyLocalResidual::heatConvectionFlux(flux, fluxVars, phaseIdx);
 
  154        EnergyLocalResidual::heatConductionFlux(flux, fluxVars);
 
  157        const auto diffusionFluxesWPhase = fluxVars.molecularDiffusionFlux(wPhaseIdx);
 
  158        Scalar jGW = diffusionFluxesWPhase[gCompIdx];
 
  159        Scalar jNW = diffusionFluxesWPhase[nCompIdx];
 
  160        Scalar jWW = -(jGW+jNW);
 
  165            jGW /= FluidSystem::molarMass(gCompIdx);
 
  166            jNW /= FluidSystem::molarMass(nCompIdx);
 
  167            jWW /= FluidSystem::molarMass(wCompIdx);
 
  170        const auto diffusionFluxesGPhase = fluxVars.molecularDiffusionFlux(gPhaseIdx);
 
  171        Scalar jWG = diffusionFluxesGPhase[wCompIdx];
 
  172        Scalar jNG = diffusionFluxesGPhase[nCompIdx];
 
  173        Scalar jGG = -(jWG+jNG);
 
  178            jWG /= FluidSystem::molarMass(wCompIdx);
 
  179            jNG /= FluidSystem::molarMass(nCompIdx);
 
  180            jGG /= FluidSystem::molarMass(gCompIdx);
 
  184        const Scalar jWN = 0.0;
 
  185        const Scalar jGN = 0.0;
 
  186        const Scalar jNN = 0.0;
 
  188        flux[contiWEqIdx] += jWW+jWG+jWN;
 
  189        flux[contiNEqIdx] += jNW+jNG+jNN;
 
  190        flux[contiGEqIdx] += jGW+jGG+jGN;