changed: remove NEW_TYPE_TAG macro usage

This commit is contained in:
Arne Morten Kvarving 2020-08-27 10:30:29 +02:00
parent 914053ac3c
commit e8248b44ff
42 changed files with 213 additions and 56 deletions

View File

@ -43,7 +43,11 @@ class EbosProblem;
namespace Opm::Properties {
NEW_TYPE_TAG(EbosTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem, FlowModelParameters));
namespace TTag {
struct EbosTypeTag {
using InheritsFrom = std::tuple<FlowModelParameters, EclBaseProblem, BlackOilModel>;
};
}
// Set the problem class
SET_TYPE_PROP(EbosTypeTag, Problem, Opm::EbosProblem<TypeTag>);

View File

@ -53,7 +53,11 @@ public:
namespace Opm::Properties {
NEW_TYPE_TAG(EbosAltIdxTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosAltIdxTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// use a fluid system with different indices than the default
SET_PROP(EbosAltIdxTypeTag, FluidSystem)

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosBrineTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosBrineTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the brine extension of the black oil model
SET_BOOL_PROP(EbosBrineTypeTag, EnableBrine, true);

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosFoamTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosFoamTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the foam extension of the black oil model
SET_BOOL_PROP(EbosFoamTypeTag, EnableFoam, true);

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosGasOilTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosGasOilTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
//! The indices indices which only enable oil and water
SET_PROP(EbosGasOilTypeTag, Indices)

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosOilWaterTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosOilWaterTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
//! The indices indices which only enable oil and water
SET_PROP(EbosOilWaterTypeTag, Indices)

View File

@ -31,7 +31,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosOilWaterPolymerTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosOilWaterPolymerTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the polymer extension of the black oil model
SET_BOOL_PROP(EbosOilWaterPolymerTypeTag, EnablePolymer, true);

View File

@ -33,7 +33,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosPlainTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem));
namespace TTag {
struct EbosPlainTypeTag {
using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
};
}
} // namespace Opm::Properties

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosPolymerTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosPolymerTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the polymer extension of the black oil model
SET_BOOL_PROP(EbosPolymerTypeTag, EnablePolymer, true);

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosSolventTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosSolventTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the solvent extension of the black oil model
SET_BOOL_PROP(EbosSolventTypeTag, EnableSolvent, true);

View File

@ -32,7 +32,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EbosThermalTypeTag, INHERITS_FROM(EbosTypeTag));
namespace TTag {
struct EbosThermalTypeTag {
using InheritsFrom = std::tuple<EbosTypeTag>;
};
}
// enable the energy extension of the black oil model
SET_BOOL_PROP(EbosThermalTypeTag, EnableEnergy, true);

View File

@ -42,7 +42,11 @@ class EclAluGridVanguard;
namespace Opm::Properties {
NEW_TYPE_TAG(EclAluGridVanguard, INHERITS_FROM(EclBaseVanguard));
namespace TTag {
struct EclAluGridVanguard {
using InheritsFrom = std::tuple<EclBaseVanguard>;
};
}
// declare the properties
SET_TYPE_PROP(EclAluGridVanguard, Vanguard, Opm::EclAluGridVanguard<TypeTag>);

View File

@ -67,7 +67,9 @@ class EclBaseVanguard;
namespace Opm::Properties {
NEW_TYPE_TAG(EclBaseVanguard);
namespace TTag {
struct EclBaseVanguard {};
}
// declare the properties required by the for the ecl simulator vanguard
NEW_PROP_TAG(EquilGrid);

View File

@ -49,7 +49,11 @@ class EclCpGridVanguard;
namespace Opm::Properties {
NEW_TYPE_TAG(EclCpGridVanguard, INHERITS_FROM(EclBaseVanguard));
namespace TTag {
struct EclCpGridVanguard {
using InheritsFrom = std::tuple<EclBaseVanguard>;
};
}
// declare the properties
SET_TYPE_PROP(EclCpGridVanguard, Vanguard, Opm::EclCpGridVanguard<TypeTag>);

View File

@ -47,7 +47,9 @@
namespace Opm::Properties {
// create new type tag for the Ecl-output
NEW_TYPE_TAG(EclOutputBlackOil);
namespace TTag {
struct EclOutputBlackOil {};
}
NEW_PROP_TAG(ForceDisableFluidInPlaceOutput);

View File

@ -39,7 +39,11 @@ class EclPolyhedralGridVanguard;
namespace Opm::Properties {
NEW_TYPE_TAG(EclPolyhedralGridVanguard, INHERITS_FROM(EclBaseVanguard));
namespace TTag {
struct EclPolyhedralGridVanguard {
using InheritsFrom = std::tuple<EclBaseVanguard>;
};
}
// declare the properties
SET_TYPE_PROP(EclPolyhedralGridVanguard, Vanguard, Opm::EclPolyhedralGridVanguard<TypeTag>);

View File

@ -118,12 +118,21 @@ class EclProblem;
namespace Opm::Properties {
namespace TTag {
#if EBOS_USE_ALUGRID
NEW_TYPE_TAG(EclBaseProblem, INHERITS_FROM(EclAluGridVanguard, EclOutputBlackOil, VtkEclTracer));
struct EclBaseProblem {
using InheritstFrom = std::tuple<VtkEclTracer, EclOutputBlackOil, EclAluGridVanguard>;
};
#else
NEW_TYPE_TAG(EclBaseProblem, INHERITS_FROM(EclCpGridVanguard, EclOutputBlackOil, VtkEclTracer));
//NEW_TYPE_TAG(EclBaseProblem, INHERITS_FROM(EclPolyhedralGridVanguard, EclOutputBlackOil, VtkEclTracer));
struct EclBaseProblem {
using InheritsFrom = std::tuple<VtkEclTracer, EclOutputBlackOil, EclCpGridVanguard>;
};
//struct EclBaseProblem {
// using InheritsFrom = std::tuple<VtkEclTracer, EclOutputBlackOil, EclPolyhedralGridVanguard>;
//};
#endif
}
// The class which deals with ECL wells
NEW_PROP_TAG(EclWellModel);
@ -431,8 +440,8 @@ class EclProblem : public GetPropType<TypeTag, Properties::BaseProblem>
using Simulator = GetPropType<TypeTag, Properties::Simulator>;
using Element = typename GridView::template Codim<0>::Entity;
using ElementContext = GetPropType<TypeTag, Properties::ElementContext>;
using EclMaterialLawManager = typename GET_PROP(TypeTag, MaterialLaw)::EclMaterialLawManager;
using EclThermalLawManager = typename GET_PROP(TypeTag, SolidEnergyLaw)::EclThermalLawManager;
using EclMaterialLawManager = typename GetProp<TypeTag, Properties::MaterialLaw>::EclMaterialLawManager;
using EclThermalLawManager = typename GetProp<TypeTag, Properties::SolidEnergyLaw>::EclThermalLawManager;
using MaterialLawParams = typename EclMaterialLawManager::MaterialLawParams;
using SolidEnergyLawParams = typename EclThermalLawManager::SolidEnergyLawParams;
using ThermalConductionLawParams = typename EclThermalLawManager::ThermalConductionLawParams;
@ -521,7 +530,7 @@ public:
int paramIdx,
int posParamIdx OPM_UNUSED)
{
typedef typename GET_PROP(TypeTag, ParameterMetaData) ParamsMeta;
using ParamsMeta = GetProp<TypeTag, Properties::ParameterMetaData>;
Dune::ParameterTree& tree = ParamsMeta::tree();
std::string param = argv[paramIdx];

View File

@ -43,7 +43,9 @@
namespace Opm::Properties {
// create new type tag for the VTK tracer output
NEW_TYPE_TAG(VtkEclTracer);
namespace TTag {
struct VtkEclTracer {};
}
// create the property tags needed for the tracer model
NEW_PROP_TAG(VtkWriteEclTracerConcentration);

View File

@ -26,7 +26,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowProblemSimple, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowProblemSimple {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowProblemSimple, MatrixAddWellContributions, true);
SET_INT_PROP(EclFlowProblemSimple, LinearSolverVerbosity,0);
@ -50,7 +54,11 @@ namespace Opm {
public:
typedef Opm::BlackOilFluidSystem<Scalar> type;
};
//NEW_TYPE_TAG(EclFlowProblem, INHERITS_FROM(BlackOilModel, EclBaseProblem));
// namespace TTag {
// struct EclFlowProblemSimple {
// using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
// };
// }
SET_TYPE_PROP(EclFlowProblemSimple, IntensiveQuantities, Opm::BlackOilIntensiveQuantities<TypeTag>);
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::ISTLSolverEbos<TypeTag>);
//SET_TAG_PROP(EclFlowProblemSimple, LinearSolverSplice, ParallelBiCGStabLinearSolver);

View File

@ -31,7 +31,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowBrineProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowBrineProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowBrineProblem, EnableBrine, true);
}}

View File

@ -31,7 +31,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowEnergyProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowEnergyProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowEnergyProblem, EnableEnergy, true);
}}

View File

@ -31,7 +31,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowFoamProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowFoamProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowFoamProblem, EnableFoam, true);
}}

View File

@ -36,7 +36,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowGasOilProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowGasOilProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
//! The indices required by the model
SET_PROP(EclFlowGasOilProblem, Indices)

View File

@ -36,7 +36,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowOilWaterProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowOilWaterProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
//! The indices required by the model
SET_PROP(EclFlowOilWaterProblem, Indices)

View File

@ -36,7 +36,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowOilWaterBrineProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowOilWaterBrineProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowOilWaterBrineProblem, EnableBrine, true);
//! The indices required by the model
SET_PROP(EclFlowOilWaterBrineProblem, Indices)

View File

@ -36,7 +36,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowOilWaterPolymerProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowOilWaterPolymerProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowOilWaterPolymerProblem, EnablePolymer, true);
//! The indices required by the model
//! The indices required by the model

View File

@ -36,7 +36,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowOilWaterPolymerInjectivityProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowOilWaterPolymerInjectivityProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowOilWaterPolymerInjectivityProblem, EnablePolymer, true);
SET_BOOL_PROP(EclFlowOilWaterPolymerInjectivityProblem, EnablePolymerMW, true);
//! The indices required by the model

View File

@ -31,7 +31,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowPolymerProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowPolymerProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowPolymerProblem, EnablePolymer, true);
}}

View File

@ -31,7 +31,11 @@
namespace Opm {
namespace Properties {
NEW_TYPE_TAG(EclFlowSolventProblem, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowSolventProblem {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowSolventProblem, EnableSolvent, true);
}}

View File

@ -25,7 +25,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EclFlowProblemSimple, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowProblemSimple {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
//! The indices required by the model
SET_PROP(EclFlowProblemSimple, Indices)
{

View File

@ -24,7 +24,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EclFlowProblemSimple, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct EclFlowProblemSimple {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
SET_BOOL_PROP(EclFlowProblemSimple, EnableEnergy, true);
//! The indices required by the model
SET_PROP(EclFlowProblemSimple, Indices)

View File

@ -71,7 +71,12 @@
namespace Opm::Properties {
NEW_TYPE_TAG(EclFlowProblem, INHERITS_FROM(BlackOilModel, EclBaseProblem, FlowNonLinearSolver, FlowModelParameters, FlowTimeSteppingParameters));
namespace TTag {
struct EclFlowProblem {
using InheritsFrom = std::tuple<FlowTimeSteppingParameters, FlowModelParameters,
FlowNonLinearSolver, EclBaseProblem, BlackOilModel>;
};
}
SET_STRING_PROP(EclFlowProblem, OutputDir, "");
SET_BOOL_PROP(EclFlowProblem, EnableDebuggingChecks, false);
// default in flow is to formulate the equations in surface volumes

View File

@ -27,7 +27,9 @@
namespace Opm::Properties {
NEW_TYPE_TAG(FlowModelParameters);
namespace TTag {
struct FlowModelParameters {};
}
NEW_PROP_TAG(DbhpMaxRel);
NEW_PROP_TAG(DwellFractionMax);

View File

@ -69,7 +69,7 @@ namespace Opm
class FlowMainEbos
{
public:
typedef typename GET_PROP(TypeTag, MaterialLaw)::EclMaterialLawManager MaterialLawManager;
using MaterialLawManager = typename GetProp<TypeTag, Properties::MaterialLaw>::EclMaterialLawManager;
using EbosSimulator = GetPropType<TypeTag, Properties::Simulator>;
using Grid = GetPropType<TypeTag, Properties::Grid>;
using GridView = GetPropType<TypeTag, Properties::GridView>;
@ -89,7 +89,7 @@ namespace Opm
// Read the command line parameters. Throws an exception if something goes wrong.
static int setupParameters_(int argc, char** argv)
{
using ParamsMeta = typename GET_PROP(TypeTag, ParameterMetaData);
using ParamsMeta = GetProp<TypeTag, Properties::ParameterMetaData>;
if (!ParamsMeta::registrationOpen()) {
// We have already successfully run setupParameters_().
// For the dynamically chosen runs (as from the main flow

View File

@ -67,7 +67,11 @@ namespace Opm::Properties {
// this is a dummy type tag that is used to setup the parameters before the actual
// simulator.
NEW_TYPE_TAG(FlowEarlyBird, INHERITS_FROM(EclFlowProblem));
namespace TTag {
struct FlowEarlyBird {
using InheritsFrom = std::tuple<EclFlowProblem>;
};
}
} // namespace Opm::Properties

View File

@ -36,7 +36,9 @@
namespace Opm::Properties {
NEW_TYPE_TAG(FlowNonLinearSolver);
namespace TTag {
struct FlowNonLinearSolver {};
}
NEW_PROP_TAG(NewtonMaxRelax);
NEW_PROP_TAG(FlowNewtonMaxIterations);

View File

@ -41,7 +41,9 @@ class ISTLSolverEbos;
namespace Opm::Properties {
NEW_TYPE_TAG(FlowIstlSolverParams);
namespace TTag {
struct FlowIstlSolverParams {};
}
NEW_PROP_TAG(LinearSolverReduction);
NEW_PROP_TAG(IluRelaxation);

View File

@ -56,7 +56,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(FlowIstlSolver, INHERITS_FROM(FlowIstlSolverParams));
namespace TTag {
struct FlowIstlSolver {
using InheritsFrom = std::tuple<FlowIstlSolverParams>;
};
}
template <class TypeTag, class MyTypeTag>
struct EclWellModel;

View File

@ -35,7 +35,11 @@
namespace Opm::Properties {
NEW_TYPE_TAG(FlowIstlSolverFlexible, INHERITS_FROM(FlowIstlSolverParams));
namespace TTag {
struct FlowIstlSolverFlexible {
using InheritsFrom = std::tuple<FlowIstlSolverParams>;
};
}
} // namespace Opm::Properties

View File

@ -19,7 +19,9 @@
namespace Opm::Properties {
NEW_TYPE_TAG(FlowTimeSteppingParameters);
namespace TTag {
struct FlowTimeSteppingParameters {};
}
NEW_PROP_TAG(SolverRestartFactor);
NEW_PROP_TAG(SolverGrowthFactor);

View File

@ -76,13 +76,16 @@
}
BEGIN_PROPERTIES
NEW_TYPE_TAG(TestEclOutputTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem));
namespace Opm::Properties {
namespace TTag {
struct TestEclOutputTypeTag {
using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
};
}
SET_BOOL_PROP(TestEclOutputTypeTag, EnableGravity, false);
SET_BOOL_PROP(TestEclOutputTypeTag, EnableAsyncEclOutput, false);
END_PROPERTIES
} // namespace Opm::Properties
namespace {
std::unique_ptr<Opm::EclIO::ESmry> readsum(const std::string& base)

View File

@ -70,11 +70,13 @@
throw std::runtime_error("Test condition failed"); \
}
BEGIN_PROPERTIES
NEW_TYPE_TAG(TestEquilTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem));
END_PROPERTIES
namespace Opm::Properties {
namespace TTag {
struct TestEquilTypeTag {
using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
};
}
} // namespace Opm::Properties
template <class TypeTag>
std::unique_ptr<Opm::GetPropType<TypeTag, Opm::Properties::Simulator>>