27 #ifndef OPM_ECL_THERMAL_LAW_MANAGER_HPP 28 #define OPM_ECL_THERMAL_LAW_MANAGER_HPP 42 class FieldPropsManager;
50 template <
class Scalar,
class Flu
idSystem>
55 using SolidEnergyLawParams =
typename SolidEnergyLaw::Params;
56 using HeatcrLawParams =
typename SolidEnergyLawParams::HeatcrLawParams;
57 using SpecrockLawParams =
typename SolidEnergyLawParams::SpecrockLawParams;
60 using ThermalConductionLawParams =
typename ThermalConductionLaw::Params;
62 void initParamsForElements(
const EclipseState& eclState,
size_t numElems,
63 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
64 fieldPropDoubleOnLeafAssigner,
65 const std::function<std::vector<unsigned int>(
const FieldPropsManager&,
const std::string&,
66 bool)>& fieldPropIntOnLeafAssigner);
68 const SolidEnergyLawParams& solidEnergyLawParams(
unsigned elemIdx)
const;
70 const ThermalConductionLawParams& thermalConductionLawParams(
unsigned elemIdx)
const;
76 void initHeatcr_(
const EclipseState& eclState,
size_t numElems,
77 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
78 fieldPropDoubleOnLeafAssigner);
84 const std::function<std::vector<unsigned int>(
const FieldPropsManager&,
const std::string&,
bool)>&
85 fieldPropIntOnLeafAssigner);
90 void initNullRockEnergy_();
95 void initThconr_(
const EclipseState& eclState,
size_t numElems,
96 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
97 fieldPropsDoubleOnLeafAssigner);
102 void initThc_(
const EclipseState& eclState,
size_t numElems,
103 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
104 fieldPropsDoubleOnLeafAssigner);
109 void initNullCond_();
112 EclThermalConductionApproach thermalConductivityApproach_ = EclThermalConductionApproach::Undefined;
113 EclSolidEnergyApproach solidEnergyApproach_ = EclSolidEnergyApproach::Undefined;
115 std::vector<unsigned> elemToSatnumIdx_;
117 std::vector<SolidEnergyLawParams> solidEnergyLawParams_;
118 std::vector<ThermalConductionLawParams> thermalConductionLawParams_;
Definition: FieldPropsManager.hpp:42
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Implements the total thermal conductivity and rock enthalpy relations used by ECL.
Definition: EclipseState.hpp:66
Implements the total thermal conductivity and rock enthalpy relations used by ECL.
Definition: EclThermalConductionLawMultiplexer.hpp:49
Provides the energy storage relation of rock.
Definition: EclSolidEnergyLawMultiplexer.hpp:49
The default implementation of a parameter object for the ECL thermal law.
Provides the energy storage relation of rock.
The default implementation of a parameter object for the ECL thermal law.
Provides an simple way to create and manage the thermal law objects for a complete ECL deck...
Definition: EclThermalLawManager.hpp:51