if constexpr (Head::approach == EclMultiplexerApproach::Stone1) { \
[[maybe_unused]] constexpr EclMultiplexerApproach approach = EclMultiplexerApproach::Stone1; \
auto& realParams = params.template getRealParams<approach>(); \
using ActualLaw = Stone1Material; \
codeToCall; \
} else if constexpr (Head::approach == EclMultiplexerApproach::Stone2) { \
[[maybe_unused]] constexpr EclMultiplexerApproach approach = EclMultiplexerApproach::Stone2; \
auto& realParams = params.template getRealParams<approach>(); \
using ActualLaw = Stone2Material; \
codeToCall; \
} else if constexpr (Head::approach == EclMultiplexerApproach::Default) { \
[[maybe_unused]] constexpr EclMultiplexerApproach approach = EclMultiplexerApproach::Default; \
auto& realParams = params.template getRealParams<approach>(); \
using ActualLaw = DefaultMaterial; \
codeToCall; \
} else if constexpr (Head::approach == EclMultiplexerApproach::TwoPhase) { \
[[maybe_unused]] constexpr EclMultiplexerApproach approach = EclMultiplexerApproach::TwoPhase; \
auto& realParams = params.template getRealParams<approach>(); \
using ActualLaw = TwoPhaseMaterial; \
codeToCall; \
} else if constexpr (Head::approach == EclMultiplexerApproach::OnePhase) { \
[[maybe_unused]] constexpr EclMultiplexerApproach approach = EclMultiplexerApproach::OnePhase; \
onePhaseCode; \
} else { \
STATIC_ASSERT_ECL_MULTIPLEXER_UNLESS_GCC_LT_13; \
}