diff --git a/dumux/discretization/staggered/freeflow/fickslaw.hh b/dumux/discretization/staggered/freeflow/fickslaw.hh index b7e604908775c62f7a73bd5c3bfc38df6ce48805..09148b6ce56adab3f744d7d1b1bd020eb25e915b 100644 --- a/dumux/discretization/staggered/freeflow/fickslaw.hh +++ b/dumux/discretization/staggered/freeflow/fickslaw.hh @@ -68,10 +68,8 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::staggered > static_assert(ModelTraits::numPhases() == 1, "Only one phase allowed supported!"); enum { - pressureIdx = Indices::pressureIdx, conti0EqIdx = Indices::conti0EqIdx, mainCompIdx = Indices::mainCompIdx, - replaceCompEqIdx = Indices::replaceCompEqIdx, }; public: @@ -118,14 +116,8 @@ public: flux[compIdx] = avgDensity * tij * (insideMoleFraction - outsideMoleFraction); } - if(!(useMoles && replaceCompEqIdx == mainCompIdx)) - { - const Scalar cumulativeFlux = std::accumulate(flux.begin(), flux.end(), 0.0); - flux[mainCompIdx] = - cumulativeFlux; - } - - if(useMoles && replaceCompEqIdx <= numComponents) - flux[replaceCompEqIdx] = 0.0; + const Scalar cumulativeFlux = std::accumulate(flux.begin(), flux.end(), 0.0); + flux[mainCompIdx] = - cumulativeFlux; // Fick's law (for binary systems) states that the net flux of moles within the bulk phase has to be zero: // If a given amount of molecules A travel into one direction, the same amount of molecules B have to @@ -136,13 +128,6 @@ public: //convert everything to a mass flux for(int compIdx = 0; compIdx < numComponents; ++compIdx) flux[compIdx] *= FluidSystem::molarMass(compIdx); - - - if(replaceCompEqIdx < numComponents) - { - for(int compIdx = 0; compIdx < numComponents; ++compIdx) - flux[replaceCompEqIdx] += (compIdx != replaceCompEqIdx) ? flux[compIdx] : 0.0; - } } return flux; diff --git a/dumux/discretization/staggered/freeflow/maxwellstefanslaw.hh b/dumux/discretization/staggered/freeflow/maxwellstefanslaw.hh index 4343932b244b40b2814bc164c7c230fe28b79b03..56c290c4e61ee4882410d44459d0147887965ceb 100644 --- a/dumux/discretization/staggered/freeflow/maxwellstefanslaw.hh +++ b/dumux/discretization/staggered/freeflow/maxwellstefanslaw.hh @@ -73,7 +73,6 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::staggered > enum { pressureIdx = Indices::pressureIdx, conti0EqIdx = Indices::conti0EqIdx, - replaceCompEqIdx = Indices::replaceCompEqIdx, }; public: @@ -187,9 +186,6 @@ public: componentFlux[numComponents-1] -=reducedFlux[compIdx]; } - if(useMoles && replaceCompEqIdx <= numComponents) - componentFlux[replaceCompEqIdx] = 0.0; - return componentFlux ; } diff --git a/dumux/freeflow/compositional/staggered/fluxvariables.hh b/dumux/freeflow/compositional/staggered/fluxvariables.hh index a39d4890b3870c67e576bd1a5e6a1da0a445f874..e657af823ff8a22388f50faea79153b4030149c4 100644 --- a/dumux/freeflow/compositional/staggered/fluxvariables.hh +++ b/dumux/freeflow/compositional/staggered/fluxvariables.hh @@ -97,16 +97,17 @@ public: return density * fraction; }; - flux[eqIdx - Indices::conti0EqIdx] = ParentType::advectiveFluxForCellCenter(elemVolVars, elemFaceVars, scvf, upwindTerm, isOutflow); + flux[compIdx] = ParentType::advectiveFluxForCellCenter(elemVolVars, elemFaceVars, scvf, upwindTerm, isOutflow); } + flux += MolecularDiffusionType::flux(problem, fvGeometry, elemVolVars, scvf); + // in case one balance is substituted by the total mass balance if (Indices::replaceCompEqIdx < numComponents) { flux[Indices::replaceCompEqIdx] = std::accumulate(flux.begin(), flux.end(), 0.0); } - flux += MolecularDiffusionType::flux(problem, fvGeometry, elemVolVars, scvf); return flux; } };