27 #ifndef OPM_ECL_THERMAL_CONDUCTION_LAW_MULTIPLEXER_PARAMS_HPP
28 #define OPM_ECL_THERMAL_CONDUCTION_LAW_MULTIPLEXER_PARAMS_HPP
43 template <
class ScalarT>
46 typedef void* ParamPointerType;
49 typedef ScalarT Scalar;
51 enum ThermalConductionApproach {
64 { thermalConductionApproach_ = undefinedApproach; }
69 void setThermalConductionApproach(ThermalConductionApproach newApproach)
73 thermalConductionApproach_ = newApproach;
74 switch (thermalConductionApproach()) {
75 case undefinedApproach:
76 throw std::logic_error(
"Cannot set the approach for thermal conduction to 'undefined'!");
87 realParams_ =
nullptr;
92 ThermalConductionApproach thermalConductionApproach()
const
93 {
return thermalConductionApproach_; }
96 template <ThermalConductionApproach approachV>
97 typename std::enable_if<approachV == thconrApproach, ThconrLawParams>::type&
100 assert(thermalConductionApproach() == approachV);
104 template <ThermalConductionApproach approachV>
105 typename std::enable_if<approachV == thconrApproach, const ThconrLawParams>::type&
106 getRealParams()
const
108 assert(thermalConductionApproach() == approachV);
113 template <ThermalConductionApproach approachV>
114 typename std::enable_if<approachV == thcApproach, ThcLawParams>::type&
117 assert(thermalConductionApproach() == approachV);
121 template <ThermalConductionApproach approachV>
122 typename std::enable_if<approachV == thcApproach, const ThcLawParams>::type&
123 getRealParams()
const
125 assert(thermalConductionApproach() == approachV);
132 switch (thermalConductionApproach()) {
133 case undefinedApproach:
148 thermalConductionApproach_ = undefinedApproach;
151 ThermalConductionApproach thermalConductionApproach_;
152 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:45
Default implementation for asserting finalization of parameter objects.
Definition: EnsureFinalized.hpp:47