58                                               const Element& element,
 
   59                                               const FVElementGeometry& fvGeometry,
 
   60                                               const ElementVolumeVariables& elemVolVars,
 
   61                                               const ElementFaceVariables& elemFaceVars,
 
   62                                               const SubControlVolumeFace& scvf,
 
   63                                               const FluxVariablesCache& fluxVarsCache)
 
   65        CellCenterPrimaryVariables flux(0.0);
 
   67        const auto diffusiveFluxes = MolecularDiffusionType::flux(problem, element, fvGeometry, elemVolVars, scvf);
 
   69        static constexpr auto referenceSystemFormulation = MolecularDiffusionType::referenceSystemFormulation();
 
   73            auto upwindTerm = [compIdx](
const auto& volVars)
 
   75                const auto density = 
useMoles ? volVars.molarDensity() : volVars.density();
 
   76                const auto fraction =  
useMoles ? volVars.moleFraction(compIdx) : volVars.massFraction(compIdx);
 
   77                return density * fraction;
 
   80            flux[compIdx] = ParentType::advectiveFluxForCellCenter(problem, fvGeometry, elemVolVars, elemFaceVars, scvf, upwindTerm);
 
   85                flux[compIdx] += 
useMoles ? diffusiveFluxes[compIdx]/FluidSystem::molarMass(compIdx) : diffusiveFluxes[compIdx];
 
   88                flux[compIdx] += 
useMoles ? diffusiveFluxes[compIdx] : diffusiveFluxes[compIdx]*FluidSystem::molarMass(compIdx);
 
   90                DUNE_THROW(Dune::NotImplemented, 
"other reference systems than mass and molar averaged are not implemented");
 
   98            Scalar totalMassFlux = 0.0;
 
  100                totalMassFlux += 
useMoles ? flux[compIdx]*FluidSystem::molarMass(compIdx) : flux[compIdx];
 
  102            flux[ModelTraits::replaceCompEqIdx()] = totalMassFlux;