27 #ifndef OPM_ECL_THERMAL_CONDUCTION_LAW_MULTIPLEXER_PARAMS_HPP
28 #define OPM_ECL_THERMAL_CONDUCTION_LAW_MULTIPLEXER_PARAMS_HPP
44 template <
class ScalarT>
47 using ParamPointerType =
void*;
50 using Scalar = ScalarT;
52 enum ThermalConductionApproach {
65 { thermalConductionApproach_ = undefinedApproach; }
70 void setThermalConductionApproach(ThermalConductionApproach newApproach)
74 thermalConductionApproach_ = newApproach;
75 switch (thermalConductionApproach()) {
76 case undefinedApproach:
77 throw std::logic_error(
"Cannot set the approach for thermal conduction to 'undefined'!");
88 realParams_ =
nullptr;
93 ThermalConductionApproach thermalConductionApproach()
const
94 {
return thermalConductionApproach_; }
97 template <ThermalConductionApproach approachV>
98 typename std::enable_if<approachV == thconrApproach, ThconrLawParams>::type&
101 assert(thermalConductionApproach() == approachV);
105 template <ThermalConductionApproach approachV>
106 typename std::enable_if<approachV == thconrApproach, const ThconrLawParams>::type&
107 getRealParams()
const
109 assert(thermalConductionApproach() == approachV);
114 template <ThermalConductionApproach approachV>
115 typename std::enable_if<approachV == thcApproach, ThcLawParams>::type&
118 assert(thermalConductionApproach() == approachV);
122 template <ThermalConductionApproach approachV>
123 typename std::enable_if<approachV == thcApproach, const ThcLawParams>::type&
124 getRealParams()
const
126 assert(thermalConductionApproach() == approachV);
133 switch (thermalConductionApproach()) {
134 case undefinedApproach:
149 thermalConductionApproach_ = undefinedApproach;
152 ThermalConductionApproach thermalConductionApproach_;
153 ParamPointerType realParams_;
The default implementation of a parameter object for the thermal conduction law based on the THC* key...
The default implementation of a parameter object for the thermal conduction law based on the THCONR k...
Default implementation for asserting finalization of parameter objects.
The default implementation of a parameter object for the thermal conduction law based on the THC* key...
Definition: EclThcLawParams.hpp:40
The default implementation of a parameter object for the thermal conduction law based on the THCONR k...
Definition: EclThconrLawParams.hpp:40
The default implementation of a parameter object for the ECL thermal law.
Definition: EclThermalConductionLawMultiplexerParams.hpp:46
Default implementation for asserting finalization of parameter objects.
Definition: EnsureFinalized.hpp:47