This commit switches to using 'map<>::insert_or_assign()' as the
primary interface for collecting dynamic aquifer data. In turn,
this activates move semantics for the substructures and reduces the
number of times the data is copied.
Insert_or_assign requires the key, so provide this value--i.e., the
aquifer ID--as part of the AquiferInterface.
This commit adds support for calculating and reporting the
dimensionless time (simulator time divided by aquifer's time
constant) and pressure (influence function evaluated at
dimensionless time) values as part of the Carter-Tracy aquifer's
'aquiferData()' reporting function.
These values are useful in their own right, e.g., for summary output
through the keywords AAQTD and AAQPD, but they are also needed for
ECLIPSE restart purposes.
This commit adds a new member function,
AquiferInterface::initFromRestart()
that consumes a vector<data::AquiferData> constructed from
information in the restart file's SAAQ and XAAQ vectors. At the
moment, we use the initial aquifer pressure, the total produced
liquid volume and the current aquifer pressure at restart.
We implement the interface's member function in terms of the virtual
function
AquiferInterface::assignRestartData()
that must be overridden in derived classes.
Implement a trivial such function for Carter-Tracy aquifers, and a
function that only stores the current aquifer pressure for the
Fetkovich aquifer model.
Additionally, record whether or not the aquifer object was
initialised from a previous solution. If so, don't reset total
produce liquid volumes or aquifer pressures to their base values
from the model input file.