Previously only the cell data registered with SimulationDataContainer
war gathered during parallel output. User requested data was neglected
and a warning was issued. With this commit we intialize the local view
of data::Solution on all processes with the data registered in
SimulationDataContainer and add cell data requested by the user. This is
then gathered on the IO process, and used for the output layer. To
rudimentarily support matlab we also create a global view of
SimulationDataContainer for it.
There is already a generic one with the Grid implementation
being the template parameter in the header file. The other
implementation using UnstructuredGrid does exactly the same.
Therefore we remove it with this commit.
The regex we are using might also consider a file named bla.2.blub.
In that case it is not nice to throw an exception. Instead we print
a message to std::cerr.
Previously, the eclipseGrid used by EclipseWriter was constructed from
the one in the EclipseState with the current CpGrid. Unfortunately the
latter was the distributed version resembling only the local part that
the processor works on. Therefore the information about the active cells
was wrong when writing results (which raised an exception in the writer).
With this commit we construct the EclipseWriter before distributing the grid
and use this writer later on in the OutputWriter.
this patch only uses OpmLog if it is set up properly, else it uses
std::cout. the reason why this is needed is that there's a
chicken-and-egg problem: exceptions which are thrown before the
logging system has been initialized -- most prominently while parsing
the deck -- cause the simulator to silently abort without any user
notification which can be very confusing. On the other hand,
initializing the logging system requires a fully initialized
EclipseState object, i.e. currently to initialze the logging system
the deck must be parsed and in order to print the exceptions thrown
while parsing the deck one needs the logging system.
v2: only prevent using the logging system if has not been set
up. thanks to [at]blattms for the suggestion!
This weak enum is really just an alias for four other constants which in
turn alias another enum. Since they're mostly used for indexing they're
relaxed to constexpr ints.
Includes the following changes:
- update to match API change in opm-output (vector not map for data::Wells::completions),
- restore WellStateFullyImplicitBlackoil::perfPhaseRates() from output,
- restore WellStateFullyImplicitBlackoil::currentControls() from output.
Remaining non-restored well-related data are:
- well potentials,
- the dynamic list of econ-limited completions.