mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
changed: remove SET_TYPE_PROP macro usage
This commit is contained in:
parent
93a3ebf8f7
commit
3b21a8a481
15
ebos/ebos.hh
15
ebos/ebos.hh
@ -50,7 +50,10 @@ struct EbosTypeTag {
|
||||
}
|
||||
|
||||
// Set the problem class
|
||||
SET_TYPE_PROP(EbosTypeTag, Problem, Opm::EbosProblem<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct Problem<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = Opm::EbosProblem<TypeTag>;
|
||||
};
|
||||
|
||||
// Enable experimental features for ebos: ebos is the research simulator of the OPM
|
||||
// project. If you're looking for a more stable "production quality" simulator, consider
|
||||
@ -61,7 +64,10 @@ struct EnableExperiments<TypeTag, TTag::EbosTypeTag> {
|
||||
};
|
||||
|
||||
// use flow's well model for now
|
||||
SET_TYPE_PROP(EbosTypeTag, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclWellModel<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = Opm::BlackoilWellModel<TypeTag>;
|
||||
};
|
||||
|
||||
// currently, ebos uses the non-multisegment well model by default to avoid
|
||||
// regressions. the --use-multisegment-well=true|false command line parameter is still
|
||||
@ -95,7 +101,10 @@ struct UseVolumetricResidual<TypeTag, TTag::EbosTypeTag> {
|
||||
};
|
||||
|
||||
// by default use flow's aquifer model for now
|
||||
SET_TYPE_PROP(EbosTypeTag, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclAquiferModel<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = Opm::BlackoilAquiferModel<TypeTag>;
|
||||
};
|
||||
|
||||
// use flow's linear solver backend for now
|
||||
SET_TAG_PROP(EbosTypeTag, LinearSolverSplice, FlowIstlSolver);
|
||||
|
@ -49,9 +49,18 @@ struct EclAluGridVanguard {
|
||||
}
|
||||
|
||||
// declare the properties
|
||||
SET_TYPE_PROP(EclAluGridVanguard, Vanguard, Opm::EclAluGridVanguard<TypeTag>);
|
||||
SET_TYPE_PROP(EclAluGridVanguard, Grid, Dune::ALUGrid<3, 3, Dune::cube, Dune::nonconforming>);
|
||||
SET_TYPE_PROP(EclAluGridVanguard, EquilGrid, Dune::CpGrid);
|
||||
template<class TypeTag>
|
||||
struct Vanguard<TypeTag, TTag::EclAluGridVanguard> {
|
||||
using type = Opm::EclAluGridVanguard<TypeTag>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct Grid<TypeTag, TTag::EclAluGridVanguard> {
|
||||
using type = Dune::ALUGrid<3, 3, Dune::cube, Dune::nonconforming>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct EquilGrid<TypeTag, TTag::EclAluGridVanguard> {
|
||||
using type = Dune::CpGrid;
|
||||
};
|
||||
|
||||
} // namespace Opm::Properties
|
||||
|
||||
|
@ -56,9 +56,18 @@ struct EclCpGridVanguard {
|
||||
}
|
||||
|
||||
// declare the properties
|
||||
SET_TYPE_PROP(EclCpGridVanguard, Vanguard, Opm::EclCpGridVanguard<TypeTag>);
|
||||
SET_TYPE_PROP(EclCpGridVanguard, Grid, Dune::CpGrid);
|
||||
SET_TYPE_PROP(EclCpGridVanguard, EquilGrid, GetPropType<TypeTag, Properties::Grid>);
|
||||
template<class TypeTag>
|
||||
struct Vanguard<TypeTag, TTag::EclCpGridVanguard> {
|
||||
using type = Opm::EclCpGridVanguard<TypeTag>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct Grid<TypeTag, TTag::EclCpGridVanguard> {
|
||||
using type = Dune::CpGrid;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct EquilGrid<TypeTag, TTag::EclCpGridVanguard> {
|
||||
using type = GetPropType<TypeTag, Properties::Grid>;
|
||||
};
|
||||
|
||||
} // namespace Opm::Properties
|
||||
|
||||
|
@ -46,9 +46,18 @@ struct EclPolyhedralGridVanguard {
|
||||
}
|
||||
|
||||
// declare the properties
|
||||
SET_TYPE_PROP(EclPolyhedralGridVanguard, Vanguard, Opm::EclPolyhedralGridVanguard<TypeTag>);
|
||||
SET_TYPE_PROP(EclPolyhedralGridVanguard, Grid, Dune::PolyhedralGrid<3, 3>);
|
||||
SET_TYPE_PROP(EclPolyhedralGridVanguard, EquilGrid, GetPropType<TypeTag, Properties::Grid>);
|
||||
template<class TypeTag>
|
||||
struct Vanguard<TypeTag, TTag::EclPolyhedralGridVanguard> {
|
||||
using type = Opm::EclPolyhedralGridVanguard<TypeTag>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct Grid<TypeTag, TTag::EclPolyhedralGridVanguard> {
|
||||
using type = Dune::PolyhedralGrid<3, 3>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct EquilGrid<TypeTag, TTag::EclPolyhedralGridVanguard> {
|
||||
using type = GetPropType<TypeTag, Properties::Grid>;
|
||||
};
|
||||
|
||||
} // namespace Opm::Properties
|
||||
|
||||
|
@ -213,7 +213,10 @@ struct OutputMode {
|
||||
};
|
||||
|
||||
// Set the problem property
|
||||
SET_TYPE_PROP(EclBaseProblem, Problem, Opm::EclProblem<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct Problem<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = Opm::EclProblem<TypeTag>;
|
||||
};
|
||||
|
||||
// Select the element centered finite volume method as spatial discretization
|
||||
SET_TAG_PROP(EclBaseProblem, SpatialDiscretizationSplice, EcfvDiscretization);
|
||||
@ -285,10 +288,16 @@ public:
|
||||
};
|
||||
|
||||
// by default use the dummy aquifer "model"
|
||||
SET_TYPE_PROP(EclBaseProblem, EclAquiferModel, Opm::EclBaseAquiferModel<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclAquiferModel<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = Opm::EclBaseAquiferModel<TypeTag>;
|
||||
};
|
||||
|
||||
// use the built-in proof of concept well model by default
|
||||
SET_TYPE_PROP(EclBaseProblem, EclWellModel, EclWellManager<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclWellModel<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = EclWellManager<TypeTag>;
|
||||
};
|
||||
|
||||
// Enable aquifers by default in experimental mode
|
||||
template<class TypeTag>
|
||||
@ -452,14 +461,23 @@ struct EnableStorageCache<TypeTag, TTag::EclBaseProblem> {
|
||||
};
|
||||
|
||||
// Use the "velocity module" which uses the Eclipse "NEWTRAN" transmissibilities
|
||||
SET_TYPE_PROP(EclBaseProblem, FluxModule, Opm::EclTransFluxModule<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct FluxModule<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = Opm::EclTransFluxModule<TypeTag>;
|
||||
};
|
||||
|
||||
// Use the dummy gradient calculator in order not to do unnecessary work.
|
||||
SET_TYPE_PROP(EclBaseProblem, GradientCalculator, Opm::EclDummyGradientCalculator<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct GradientCalculator<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = Opm::EclDummyGradientCalculator<TypeTag>;
|
||||
};
|
||||
|
||||
// Use a custom Newton-Raphson method class for ebos in order to attain more
|
||||
// sophisticated update and error computation mechanisms
|
||||
SET_TYPE_PROP(EclBaseProblem, NewtonMethod, Opm::EclNewtonMethod<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct NewtonMethod<TypeTag, TTag::EclBaseProblem> {
|
||||
using type = Opm::EclNewtonMethod<TypeTag>;
|
||||
};
|
||||
|
||||
// The frequency of writing restart (*.ers) files. This is the number of time steps
|
||||
// between writing restart files
|
||||
|
@ -97,13 +97,29 @@ namespace Opm {
|
||||
// using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
|
||||
// };
|
||||
// }
|
||||
SET_TYPE_PROP(EclFlowProblemSimple, IntensiveQuantities, Opm::BlackOilIntensiveQuantities<TypeTag>);
|
||||
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::ISTLSolverEbos<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct IntensiveQuantities<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
using type = Opm::BlackOilIntensiveQuantities<TypeTag>;
|
||||
};
|
||||
// template<class TypeTag>
|
||||
// struct LinearSolverBackend<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
// using type = Opm::ISTLSolverEbos<TypeTag>;
|
||||
// };
|
||||
//SET_TAG_PROP(EclFlowProblemSimple, LinearSolverSplice, ParallelBiCGStabLinearSolver);
|
||||
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::Linear::ParallelBiCGStabSolverBackend<TypeTag>);//not work
|
||||
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::Linear::SuperLUBackend<TypeTag>)//not work
|
||||
// template<class TypeTag>
|
||||
// struct LinearSolverBackend<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
// using type = Opm::Linear::ParallelBiCGStabSolverBackend<TypeTag>; // not work
|
||||
// };
|
||||
// template<class TypeTag>
|
||||
// struct LinearSolverBackend<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
// using type = Opm::Linear::SuperLUBackend<TypeTag>; // not work
|
||||
// };
|
||||
//SET_TAG_PROP(EclFlowProblem, FluidState, Opm::BlackOilFluidState);
|
||||
SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::ISTLSolverEbosFlexible<TypeTag>);
|
||||
|
||||
template<class TypeTag>
|
||||
struct LinearSolverBackend<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
using type = Opm::ISTLSolverEbosFlexible<TypeTag>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct EnableStorageCache<TypeTag, TTag::EclFlowProblemSimple> {
|
||||
static constexpr bool value = true;
|
||||
|
@ -95,7 +95,10 @@ struct UseVolumetricResidual<TypeTag, TTag::EclFlowProblem> {
|
||||
static constexpr bool value = false;
|
||||
};
|
||||
|
||||
SET_TYPE_PROP(EclFlowProblem, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclAquiferModel<TypeTag, TTag::EclFlowProblem> {
|
||||
using type = Opm::BlackoilAquiferModel<TypeTag>;
|
||||
};
|
||||
|
||||
// disable all extensions supported by black oil model. this should not really be
|
||||
// necessary but it makes things a bit more explicit
|
||||
@ -124,7 +127,10 @@ struct EnableBrine<TypeTag, TTag::EclFlowProblem> {
|
||||
static constexpr bool value = false;
|
||||
};
|
||||
|
||||
SET_TYPE_PROP(EclFlowProblem, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct EclWellModel<TypeTag, TTag::EclFlowProblem> {
|
||||
using type = Opm::BlackoilWellModel<TypeTag>;
|
||||
};
|
||||
SET_TAG_PROP(EclFlowProblem, LinearSolverSplice, FlowIstlSolver);
|
||||
|
||||
} // namespace Opm::Properties
|
||||
|
@ -212,7 +212,10 @@ template<class TypeTag>
|
||||
struct UseCpr<TypeTag, TTag::FlowIstlSolverParams> {
|
||||
static constexpr bool value = false;
|
||||
};
|
||||
SET_TYPE_PROP(FlowIstlSolverParams, LinearSolverBackend, Opm::ISTLSolverEbos<TypeTag>);
|
||||
template<class TypeTag>
|
||||
struct LinearSolverBackend<TypeTag, TTag::FlowIstlSolverParams> {
|
||||
using type = Opm::ISTLSolverEbos<TypeTag>;
|
||||
};
|
||||
template<class TypeTag>
|
||||
struct PreconditionerAddWellContributions<TypeTag, TTag::FlowIstlSolverParams> {
|
||||
static constexpr bool value = false;
|
||||
|
Loading…
Reference in New Issue
Block a user