27 #ifndef OPM_ECL_THERMAL_LAW_MANAGER_HPP 28 #define OPM_ECL_THERMAL_LAW_MANAGER_HPP 43 class FieldPropsManager;
51 template <
class Scalar,
class Flu
idSystem>
56 using SolidEnergyLawParams =
typename SolidEnergyLaw::Params;
57 using HeatcrLawParams =
typename SolidEnergyLawParams::HeatcrLawParams;
58 using SpecrockLawParams =
typename SolidEnergyLawParams::SpecrockLawParams;
61 using ThermalConductionLawParams =
typename ThermalConductionLaw::Params;
63 void initParamsForElements(
const EclipseState& eclState, std::size_t numElems,
64 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
65 fieldPropDoubleOnLeafAssigner,
66 const std::function<std::vector<unsigned int>(
const FieldPropsManager&,
const std::string&,
67 bool)>& fieldPropIntOnLeafAssigner);
69 const SolidEnergyLawParams& solidEnergyLawParams(
unsigned elemIdx)
const;
71 const ThermalConductionLawParams& thermalConductionLawParams(
unsigned elemIdx)
const;
77 void initHeatcr_(
const EclipseState& eclState, std::size_t numElems,
78 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
79 fieldPropDoubleOnLeafAssigner);
85 const std::function<std::vector<unsigned int>(
const FieldPropsManager&,
const std::string&,
bool)>&
86 fieldPropIntOnLeafAssigner);
91 void initNullRockEnergy_();
96 void initThconr_(
const EclipseState& eclState, std::size_t numElems,
97 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
98 fieldPropsDoubleOnLeafAssigner);
103 void initThc_(
const EclipseState& eclState, std::size_t numElems,
104 const std::function<std::vector<double>(
const FieldPropsManager&,
const std::string&)>&
105 fieldPropsDoubleOnLeafAssigner);
110 void initNullCond_();
113 EclThermalConductionApproach thermalConductivityApproach_ = EclThermalConductionApproach::Undefined;
114 EclSolidEnergyApproach solidEnergyApproach_ = EclSolidEnergyApproach::Undefined;
116 std::vector<unsigned> elemToSatnumIdx_;
118 std::vector<SolidEnergyLawParams> solidEnergyLawParams_;
119 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:52