We assign cumulative production only on the process that connects to
the reservoir model. As a tiny optimisation, we return 0.0 early
as the aquifer flux on processes that do not connect to the
reservoir.
This commit switches to using the new 'typeData' interface for
representing type-specific aquifer data items. In particular we use
the new 'typeData.is<>()' and 'typeData.get<>()' member functions to
query and access the data that is specific to each aquifer type
(e.g., Carter-Tracy or numerical).
While here, also expand the reported data items for numerical
aquifers to one initial pressure value for each aquifer cell. This
is needed for restart purposes.
This commit adds logic to communicate more dynamic aquifer values
between the simulation and I/O layers. In particular, we ensure
that we allocate the 'aquFet' and 'aquCT' substructures of the
dynamic aquifer data as appropriate and that we collect this
information on the I/O rank as part of the restart output process.
We furthermore make the 'ParallelRestart' facility aware of dynamic
aquifer data in preparation of loading these values from the restart
file.
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.
putting the numerical aquifer related modification in a function and the
function is called after the equilibration calculation, so it will work
for different equilibration methods.
the current approach is not necessarily correct. When aquifer cells are
on the overlap layers, things are much more complicated.
But it mostly affects only the summary output of the numerical aquifers.
The well data should be fine.