diff --git a/opm/models/blackoil/blackoillocalresidualtpfa.hh b/opm/models/blackoil/blackoillocalresidualtpfa.hh index 3cff9b385..2e6693a57 100644 --- a/opm/models/blackoil/blackoillocalresidualtpfa.hh +++ b/opm/models/blackoil/blackoillocalresidualtpfa.hh @@ -81,10 +81,16 @@ class BlackOilLocalResidualTPFA : public GetPropType= 0); static constexpr bool blackoilConserveSurfaceVolume = getPropValue(); - static constexpr bool enableEnergy = getPropValue(); - static constexpr bool enableDiffusion = getPropValue(); - using Toolbox = MathToolbox; + static constexpr bool enableSolvent = getPropValue(); + static constexpr bool enableExtbo = getPropValue(); + static constexpr bool enablePolymer = getPropValue(); + static constexpr bool enableEnergy = getPropValue(); + static constexpr bool enableFoam = getPropValue(); + static constexpr bool enableBrine = getPropValue(); + static constexpr bool enableDiffusion = getPropValue(); + static constexpr bool enableMICP = getPropValue(); + using SolventModule = BlackOilSolventModule; using ExtboModule = BlackOilExtboModule; using PolymerModule = BlackOilPolymerModule; @@ -94,6 +100,8 @@ class BlackOilLocalResidualTPFA : public GetPropType; using MICPModule = BlackOilMICPModule; + using Toolbox = MathToolbox; + public: /*! * \copydoc FvBaseLocalResidual::computeStorage @@ -365,39 +373,51 @@ public: } } - // // deal with solvents (if present) + // deal with solvents (if present) + static_assert(!enableSolvent, "Relevant computeFlux() method must be implemented for this module before enabling."); // SolventModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with zFracton (if present) + // deal with zFracton (if present) + static_assert(!enableExtbo, "Relevant computeFlux() method must be implemented for this module before enabling."); // ExtboModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with polymer (if present) + // deal with polymer (if present) + static_assert(!enablePolymer, "Relevant computeFlux() method must be implemented for this module before enabling."); // PolymerModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with energy (if present) + // deal with energy (if present) + static_assert(!enableEnergy, "Relevant computeFlux() method must be implemented for this module before enabling."); // EnergyModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with foam (if present) + // deal with foam (if present) + static_assert(!enableFoam, "Relevant computeFlux() method must be implemented for this module before enabling."); // FoamModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with salt (if present) + // deal with salt (if present) + static_assert(!enableBrine, "Relevant computeFlux() method must be implemented for this module before enabling."); // BrineModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // // deal with micp (if present) + // deal with diffusion (if present) + static_assert(!enableDiffusion, "Relevant computeFlux() method must be implemented for this module before enabling."); + // DiffusionModule::addDiffusiveFlux(flux, elemCtx, scvfIdx, timeIdx); + + // deal with micp (if present) + static_assert(!enableMICP, "Relevant computeFlux() method must be implemented for this module before enabling."); // MICPModule::computeFlux(flux, elemCtx, scvfIdx, timeIdx); - // DiffusionModule::addDiffusiveFlux(flux, elemCtx, scvfIdx, timeIdx); } static void computeSource(RateVector& source, const Problem& problem, unsigned globalSpaceIdex, - unsigned timeIdx) + unsigned timeIdx) { // retrieve the source term intrinsic to the problem problem.source(source, globalSpaceIdex, timeIdx); - // // deal with MICP (if present) + // deal with MICP (if present) + // deal with micp (if present) + static_assert(!enableMICP, "Relevant addSource() method must be implemented for this module before enabling."); // MICPModule::addSource(source, elemCtx, dofIdx, timeIdx); // scale the source term of the energy equation