55 using ParamPointerType =
void*;
58 using Scalar = ScalarT;
66 { solidEnergyApproach_ = EclSolidEnergyApproach::Undefined; }
71 void setSolidEnergyApproach(EclSolidEnergyApproach newApproach)
75 solidEnergyApproach_ = newApproach;
76 switch (solidEnergyApproach()) {
77 case EclSolidEnergyApproach::Undefined:
78 throw std::logic_error(
"Cannot set the approach for solid energy storage to 'undefined'!");
80 case EclSolidEnergyApproach::Heatcr:
84 case EclSolidEnergyApproach::Specrock:
88 case EclSolidEnergyApproach::Null:
89 realParams_ =
nullptr;
94 EclSolidEnergyApproach solidEnergyApproach()
const
95 {
return solidEnergyApproach_; }
98 template <EclSol
idEnergyApproach approachV>
99 typename std::enable_if<approachV == EclSolidEnergyApproach::Heatcr, HeatcrLawParams>::type&
102 assert(solidEnergyApproach() == approachV);
106 template <EclSol
idEnergyApproach approachV>
107 typename std::enable_if<approachV == EclSolidEnergyApproach::Heatcr, const HeatcrLawParams>::type&
108 getRealParams()
const
110 assert(solidEnergyApproach() == approachV);
115 template <EclSol
idEnergyApproach approachV>
116 typename std::enable_if<approachV == EclSolidEnergyApproach::Specrock, SpecrockLawParams>::type&
119 assert(solidEnergyApproach() == approachV);
123 template <EclSol
idEnergyApproach approachV>
124 typename std::enable_if<approachV == EclSolidEnergyApproach::Specrock, const SpecrockLawParams>::type&
125 getRealParams()
const
127 assert(solidEnergyApproach() == approachV);
134 switch (solidEnergyApproach()) {
135 case EclSolidEnergyApproach::Undefined:
138 case EclSolidEnergyApproach::Heatcr:
142 case EclSolidEnergyApproach::Specrock:
146 case EclSolidEnergyApproach::Null:
150 solidEnergyApproach_ = EclSolidEnergyApproach::Undefined;
153 EclSolidEnergyApproach solidEnergyApproach_;
154 ParamPointerType realParams_;
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30