From 489d55a756f18e86e78fb75198ef69b9822706e6 Mon Sep 17 00:00:00 2001 From: Timo Koch <timokoch@uio.no> Date: Wed, 24 Apr 2024 20:11:32 +0200 Subject: [PATCH] [md][facet][box] Handle tracer fluidsystems in Fick's law specialization --- dumux/multidomain/facet/box/fickslaw.hh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dumux/multidomain/facet/box/fickslaw.hh b/dumux/multidomain/facet/box/fickslaw.hh index 6c9754edd7..3891e1469e 100644 --- a/dumux/multidomain/facet/box/fickslaw.hh +++ b/dumux/multidomain/facet/box/fickslaw.hh @@ -108,8 +108,9 @@ public: for (int compIdx = 0; compIdx < numComponents; compIdx++) { - if (compIdx == FluidSystem::getMainComponent(phaseIdx)) - continue; + if constexpr (!FluidSystem::isTracerFluidSystem()) + if (compIdx == FluidSystem::getMainComponent(phaseIdx)) + continue; // interpolate mole fraction to scvf integration point Scalar x = 0.0; @@ -126,8 +127,9 @@ public: facetVolVars.effectiveDiffusionCoefficient(phaseIdx, phaseIdx, compIdx), gradX); - if (BalanceEqOpts::mainComponentIsBalanced(phaseIdx) && !FluidSystem::isTracerFluidSystem()) - componentFlux[FluidSystem::getMainComponent(phaseIdx)] -= componentFlux[compIdx]; + if constexpr (!FluidSystem::isTracerFluidSystem()) + if (BalanceEqOpts::mainComponentIsBalanced(phaseIdx)) + componentFlux[FluidSystem::getMainComponent(phaseIdx)] -= componentFlux[compIdx]; } return componentFlux; @@ -138,8 +140,9 @@ public: { for (int compIdx = 0; compIdx < numComponents; compIdx++) { - if (compIdx == FluidSystem::getMainComponent(phaseIdx)) - continue; + if constexpr (!FluidSystem::isTracerFluidSystem()) + if (compIdx == FluidSystem::getMainComponent(phaseIdx)) + continue; // create vector with nodal mole/mass fractions std::vector<Scalar> xFractions(element.subEntities(dim)); @@ -164,8 +167,9 @@ public: insideVolVars.effectiveDiffusionCoefficient(phaseIdx, phaseIdx, compIdx), gradX); - if (BalanceEqOpts::mainComponentIsBalanced(phaseIdx) && !FluidSystem::isTracerFluidSystem()) - componentFlux[FluidSystem::getMainComponent(phaseIdx)] -= componentFlux[compIdx]; + if constexpr (!FluidSystem::isTracerFluidSystem()) + if (BalanceEqOpts::mainComponentIsBalanced(phaseIdx)) + componentFlux[FluidSystem::getMainComponent(phaseIdx)] -= componentFlux[compIdx]; } return componentFlux; -- GitLab