Skip to content
Snippets Groups Projects
Commit 2a26c4b4 authored by Beatrix Becker's avatar Beatrix Becker
Browse files

[mpnc nonequilibrium] remove TypeTage in indices

parent ee38d14e
No related branches found
No related tags found
1 merge request!838Feature/less typetag in indices
......@@ -33,22 +33,21 @@ namespace Dumux
* \ingroup PorousmediumNonEquilibriumModel
* \brief The primary variable and equation indices for the MpNc model.
*/
template <class TypeTag, int BasePVOffset = 0>
class NonEquilbriumIndices: public GET_PROP_TYPE(TypeTag, EquilibriumIndices)
template <class EquilibriumIndices, class FluidSystem, int numEnergyEquationFluid, int numEnergyEquationSolid, int numEquationBalance, int BasePVOffset = 0>
class NonEquilbriumIndices: public EquilibriumIndices
{
public:
using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
enum { numPhases = FluidSystem::numPhases };
enum { numEnergyEqFluid = GET_PROP_VALUE(TypeTag, NumEnergyEqFluid) };
enum { numEnergyEqSolid = GET_PROP_VALUE(TypeTag, NumEnergyEqSolid) };
enum { numEnergyEqFluid = numEnergyEquationFluid };
enum { numEnergyEqSolid = numEnergyEquationSolid };
/*! \todo Replacing the sum below with GET_PROP_VALUE(TypeTag, NumEq)
* yields a compilation error with clang, due to complex
* interdependencies of MPNC and NonEquilibrium type tags and
* Indices classes. This should be fixed.
*/
static const unsigned int numEq = GET_PROP_VALUE(TypeTag, NumEqBalance)
+ GET_PROP_VALUE(TypeTag, NumEnergyEqFluid)
+ GET_PROP_VALUE(TypeTag, NumEnergyEqSolid);
static const unsigned int numEq = numEquationBalance
+ numEnergyEqFluid
+ numEnergyEqSolid;
/*!
* \brief Index for the temperature of the wetting phase in a vector of primary
......
......@@ -75,7 +75,17 @@ SET_TYPE_PROP(NonEquilibrium, HeatConductionType , FouriersLawNonEquilibrium<Typ
SET_INT_PROP(NonEquilibrium, NumEq, GET_PROP_VALUE(TypeTag, NumEqBalance) + GET_PROP_VALUE(TypeTag, NumEnergyEqFluid) + GET_PROP_VALUE(TypeTag, NumEnergyEqSolid));
//! indices for non-isothermal models
SET_TYPE_PROP(NonEquilibrium, Indices, NonEquilbriumIndices<TypeTag, 0>);
SET_PROP(NonEquilibrium, Indices)
{
private:
using EquilibriumIndices = typename GET_PROP_TYPE(TypeTag, EquilibriumIndices);
using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
static constexpr int numEnergyEquationFluid = GET_PROP_VALUE(TypeTag, NumEnergyEqFluid);
static constexpr int numEnergyEquationSolid = GET_PROP_VALUE(TypeTag, NumEnergyEqSolid);
static constexpr int numEquationBalance = GET_PROP_VALUE(TypeTag, NumEqBalance);
public:
using type = NonEquilbriumIndices<EquilibriumIndices, FluidSystem, numEnergyEquationFluid, numEnergyEquationSolid, numEquationBalance, 0>;
};
SET_PROP(NonEquilibrium, FluidState)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment