20#ifndef OPM_AGGREGATE_AQUIFER_DATA_HPP
21#define OPM_AGGREGATE_AQUIFER_DATA_HPP
23#include <opm/output/eclipse/InteHEAD.hpp>
26#include <opm/output/data/Aquifer.hpp>
38namespace Opm {
namespace RestartIO {
namespace Helpers {
91 const data::Aquifers& aquData,
102 return this->maxActiveAnalyticAquiferID_;
108 return this->integerAnalyticAq_.
data();
114 return this->singleprecAnalyticAq_.
data();
120 return this->doubleprecAnalyticAq_.
data();
126 return this->integerNumericAq_.
data();
132 return this->doubleprecNumericAq_.
data();
142 return this->integerAnalyticAquiferConn_[aquiferID - 1].data();
153 return this->singleprecAnalyticAquiferConn_[aquiferID - 1].data();
165 return this->doubleprecAnalyticAquiferConn_[aquiferID - 1].data();
169 int maxActiveAnalyticAquiferID_{0};
171 std::vector<int> numActiveConn_{};
172 std::vector<double> totalInflux_{};
175 WindowedArray<int> integerAnalyticAq_;
178 WindowedArray<float> singleprecAnalyticAq_;
181 WindowedArray<double> doubleprecAnalyticAq_;
184 WindowedArray<int> integerNumericAq_;
187 WindowedArray<double> doubleprecNumericAq_;
191 std::vector<WindowedArray<int>> integerAnalyticAquiferConn_;
195 std::vector<WindowedArray<float>> singleprecAnalyticAquiferConn_;
199 std::vector<WindowedArray<double>> doubleprecAnalyticAquiferConn_;
201 void allocateDynamicBackingStorage(
const InteHEAD::AquiferDims& aqDims);
203 void handleCarterTracy(
const AquiferConfig& aqConfig,
204 const data::Aquifers& aquData,
205 const SummaryState& summaryState,
206 const UnitSystem& usys);
208 void handleConstantFlux(
const AquiferConfig& aqConfig,
209 const ScheduleState& sched,
210 const SummaryState& summaryState,
211 const UnitSystem& usys);
213 void handleFetkovich(
const AquiferConfig& aqConfig,
214 const data::Aquifers& aquData,
215 const SummaryState& summaryState,
216 const UnitSystem& usys);
218 void handleNumeric(
const AquiferConfig& aqConfig,
219 const data::Aquifers& aquData,
220 const SummaryState& summaryState,
221 const UnitSystem& usys);
Provide facilities to simplify constructing restart vectors such as IWEL or RSEG.
Definition AquiferConfig.hpp:46
About cell information and dimension: The actual grid information is held in a pointer to an ERT ecl_...
Definition EclipseGrid.hpp:55
Definition AggregateAquiferData.hpp:41
const std::vector< double > & getDoublePrecAquiferData() const
Retrieve Floating-Point (Double Precision) Aquifer Data Array.
Definition AggregateAquiferData.hpp:118
const std::vector< float > & getSinglePrecAquiferConnectionData(const int aquiferID) const
Retrieve Floating-Point (Real) Aquifer Connection Data Array (analytic aquifers)
Definition AggregateAquiferData.hpp:151
const std::vector< float > & getSinglePrecAquiferData() const
Retrieve Floating-Point (Real) Aquifer Data Array.
Definition AggregateAquiferData.hpp:112
const std::vector< int > & getIntegerAquiferData() const
Retrieve Integer Aquifer Data Array.
Definition AggregateAquiferData.hpp:106
const std::vector< int > & getNumericAquiferIntegerData() const
Retrieve Integer Aquifer Data Array for Numeric Aquifers.
Definition AggregateAquiferData.hpp:124
const std::vector< int > & getIntegerAquiferConnectionData(const int aquiferID) const
Retrieve Integer Aquifer Connection Data Array (analytic aquifers)
Definition AggregateAquiferData.hpp:140
const std::vector< double > & getNumericAquiferDoublePrecData() const
Retrieve Double Precision Aquifer Data Array for Numeric Aquifers.
Definition AggregateAquiferData.hpp:130
void captureDynamicAquiferData(const InteHEAD::AquiferDims &aqDims, const AquiferConfig &aqConfig, const ScheduleState &sched, const data::Aquifers &aquData, const SummaryState &summaryState, const UnitSystem &usys)
Linearise dynamic information pertinent to analytic aquifers into internal arrays.
Definition AggregateAquiferData.cpp:648
int maximumActiveAnalyticAquiferID() const
Retrieve the maximum active aquifer ID over all analytic aquifers.
Definition AggregateAquiferData.hpp:100
const std::vector< double > & getDoublePrecAquiferConnectionData(const int aquiferID) const
Retrieve Floating-Point (Double Precision) Aquifer Connection Data Array (analytic aquifers)
Definition AggregateAquiferData.hpp:163
const std::vector< T > & data() const
Get read-only access to full, linearised data items for all windows.
Definition WindowedArray.hpp:131
Definition ScheduleState.hpp:91
Definition SummaryState.hpp:68
Definition UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition InteHEAD.hpp:172