Commit Graph

478 Commits

Author SHA1 Message Date
Arne Morten Kvarving
c92195c96a changed: pass the version info as parameters in Banners.cpp/Main.cpp
we want to avoid these symbols in the library
2023-03-01 09:11:18 +01:00
Bård Skaflestad
6636b2f331
Merge pull request #4494 from akva2/flowmainebos_compile_unit
FlowMainEbos: add a compile unit
2023-02-28 20:13:30 +01:00
Arne Morten Kvarving
b238bba53b FlowMainEbos: move ExtraConvergenceOutput code to compile unit 2023-02-28 16:02:08 +01:00
Atgeirr Flø Rasmussen
b5678bf5cb
Merge pull request #4495 from atgeirr/add_timing_block
Add timing block
2023-02-28 15:00:17 +01:00
Arne Morten Kvarving
143139c6ee FlowMainEbos: move parallel file merge code to separate compile unit
avoid some headers in simulator objects
2023-02-28 14:05:51 +01:00
Arne Morten Kvarving
fe011bbd41 FlowMainEbos: prefer std::make_unique 2023-02-28 13:58:52 +01:00
Arne Morten Kvarving
5fd5753ed7 fixed: mixed-up input and output paths for restart serialization 2023-02-27 12:17:00 +01:00
Arne Morten Kvarving
070f3677f7 fixed: output OPMRST file to output dir
will look in both output dir and input file dir on load
2023-02-22 14:26:23 +01:00
Arne Morten Kvarving
c50fcc5818 added: store a hash of the grid cell mapping on each process
this is a simple sanity check to make sure the restarted run
has the same grid partitioning as the original run.
2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
8c3400f562 added: parallel support to HDF5File / HDF5Serializer 2023-02-16 14:49:38 +01:00
Arne Morten Kvarving
a60b7e50ca added: ability to specify .OPMRST file to be used
useful, in particular for testing.
2023-02-16 13:56:29 +01:00
Arne Morten Kvarving
72133deadc added: support for loading serialized state from .OPMRST file 2023-02-16 13:48:36 +01:00
Arne Morten Kvarving
ed170026c1 added: support for saving serialized state to OPMRST file
uses a HDF5 container
2023-02-16 13:46:36 +01:00
Arne Morten Kvarving
524c1320bb add serialization support to SimulatorFullyImplicitBlackoilEbos
this is the top of the hierarchy so a test would basically
be a full restart test
2023-02-16 12:38:02 +01:00
hnil
fd98d8ea27 added timing blocks to most important parts 2023-02-15 09:41:37 +01:00
Arne Morten Kvarving
c33240f5c1 changed: introduce EclGenericVanguard::SimulationModelParams
this is a struct that holds the information transferred
from the simulator prior to vanguard instantation.
this way we can avoid the static members for state,
which causes issues for serialization (in particular, it makes
it impossible to compare two instances like we do in tests).
2023-02-13 18:52:38 +01:00
Arne Morten Kvarving
05f92a1133 EclGenericVanguard: rename setParams to defineSimulationModel
setParams is a rather generic method name, be more specific
2023-02-13 17:49:59 +01:00
Arne Morten Kvarving
e5dc2996e2 changed: move banner printing to separate compile unit 2023-02-01 22:54:55 +01:00
Arne Morten Kvarving
385f526d77 fixed: regression from 82d2146c90
missing PRT header
2023-01-31 15:18:25 +01:00
Arne Morten Kvarving
715e0e1c82 fix Damaris setup in Main 2023-01-18 15:37:41 +01:00
Arne Morten Kvarving
e89a68b2ff Main.hpp: forward WellTestState 2023-01-18 14:01:43 +01:00
Arne Morten Kvarving
2b756a8202 Main: forward Action::State 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
7991af9c66 Main.hpp: forward UDQState 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
4aab577275 Main: move code for setting up Damaris to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
560b0e5cbb Main: move code for setting up Vanguard to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
c901570c9b Main.hpp: remove unnecessary Python.hpp include 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
82d2146c90 Main: move code for reading deck to compile unit 2023-01-18 14:01:42 +01:00
Arne Morten Kvarving
1729c1a414 Main: move some code to separate compile unit 2023-01-18 12:26:10 +01:00
Arne Morten Kvarving
fef009f792 Main: remove unused method and associated filesystem include 2023-01-18 12:22:50 +01:00
Arne Morten Kvarving
ffcfc5e2ea Main.hpp: remove unnecessary ErrorGuard.hpp include 2023-01-17 13:30:39 +01:00
Arne Morten Kvarving
240c039f53 readDeck: make the ErrorGuard an internal detail 2023-01-17 13:30:39 +01:00
Arne Morten Kvarving
8179935217 Main.hpp: remove unnecessary ParseContext.hpp include 2023-01-17 09:36:35 +01:00
Arne Morten Kvarving
56df430bd6 readDeck: make the ParseContext an internal detail 2023-01-17 09:36:31 +01:00
Bård Skaflestad
6eb97c0165
Merge pull request #4388 from akva2/parser_hpp_cleanup
Main.hpp: remove unneccesary Parser.hpp include
2023-01-17 09:20:07 +01:00
Arne Morten Kvarving
978d130f30 Main.hpp: remove unneccesary Parser.hpp include 2023-01-17 07:56:37 +01:00
Arne Morten Kvarving
d6b7e1c253 Main.hpp: remove unnecessary ArrayDimChecker.hpp include 2023-01-17 07:36:02 +01:00
Arne Morten Kvarving
60b23e8bb1 move ParseContext configuration to readDeck
this way we do not need to include InputErrorAction in Main.hpp
2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
fd94ca7031 add missing InputErrorAction.hpp includes 2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
3a01e89585 adjust to InputErrorAction change to enum class 2023-01-16 22:17:39 +01:00
Arne Morten Kvarving
3745a4c02d clean up Units.hpp includes
include it where required instead of relying on other
headers to pull it in
2023-01-16 12:21:29 +01:00
Arne Morten Kvarving
12a72b4d6e add missing include 2023-01-09 12:49:29 +01:00
Arne Morten Kvarving
64140f51c9 pass output stream
there is no default argument any longer
2023-01-03 15:24:28 +01:00
Arne Morten Kvarving
b148b454c6 NonlinearSolverEbos: avoid use of sstream 2023-01-02 15:17:49 +01:00
Tor Harald Sandve
5854b8a7a1 Support gas dissolution in water (Rsw)
- adapt to interface change in waterPvt()
- add gas + water + disgasw simulator

Note
- MSW is not supported
- EQUIL initialization is not supported
2022-12-21 13:13:52 +01:00
Bård Skaflestad
8dcb37570b Rename Convergence Output Option
This commit renames the previously introduced command line option
ExtraConvergenceOutput (--extra-convergence-output) into the more
descriptive

    OutputExtraConvergenceInfo (--output-extra-convergence-info)

Suggested by: [at]OPMUSER
2022-12-20 12:32:14 +01:00
Bård Skaflestad
858ca8fa49 Output Non-Linear Convergence to Separate File if Requested
This commit enables outputting non-linear convergence metrics, i.e.,
the MB and CNV values, per phase, for each non-linear iteration in
each timestep.  If the user passes the option value "iterations" to
the --extra-convergence-output command line option, this commit will
create a new output file, CASE.INFOITER, that holds

    * report step
    * time step within that report step
    * elapsed time
    * MB and CNV values per phase
    * well convergence status

for each non-linear iteration.

We use an asynchronous file writing procedure and confer ownership
of the report step's unprocessed convergence reports to this
procedure just before the end of

    SimulatorFullyImplicitBlackoilEbos::runStep()

At that point, the convergence reports are about to go out of scope.
The asynchronous protocol uses a dedicated queue of output requests,
class ConvergenceReportQueue, into which the producer-i.e., member
function runStep()-inserts new convergence reports and from which
the output thread, ConvergenceOutputThread::writeASynchronous(),
retrieves those requests before writing the file data.
2022-12-20 10:14:13 +01:00
Bård Skaflestad
63654a73fc Don't Output INFOSTEP File by Default
This commit introduces a new helper class,

    ConvergenceOutputConfiguration

which parses comma separated option strings into a runtime
configuration object for whether to output additional convergence
information and, if so, what information to output.

Supported option string values are

  * "none"       -- Dont want any additional convergence output.

  * "steps"      -- Want additional convergence output pertaining to the
                    converged solution at the end of each timestep.

  * "iterations" -- Want additional convergence output pertaining to each
                    non-linar ieration in each timestep.

Option value "none" overrides all other options.  In other words, if the
user requests "none", then there will be no additional convergence
output, even if there are other options in the option string.

We add a new option, ExtraConvergenceOutput (command line option
--extra-convergence-output), which takes a string argument expected
to be a comma separated combination of these options.  The default
value is "none".  Finally, make the INFOSTEP file output conditional
on the user supplying "steps" as an argument to the new option.
2022-12-15 13:02:09 +01:00
Arne Morten Kvarving
f17a90170d use exception classes from opm-common 2022-12-13 12:56:13 +01:00
Bård Skaflestad
3c63a7aa6d Capture Timestep's Non-Linear Convergence History
This enables outputting a formatted record of the limiting MB and
CNV quantities as time and non-linear iterations progress.  This, in
turn, is intended for diagnostic and analysis purposes and will not
be output unless specifically requested.

In particular, add a new type,

    ConvergenceReport::ReservoirConvergenceMetric

which captures the convergence metric type (MB or CNV) along with
the associate phase and numerical value of the convergence metric.
We add a vector of these convergence metric objects as a new data
member of the ConvergenceReport.

Finally, foreshadowing the intended use case, also store the report
time in the ConvergenceReport object.
2022-12-09 16:22:36 +01:00
Bård Skaflestad
149ae34dd2 Capture Component Names in Independent Datastructure
This is in preparation of enabling separate convergence output
for diagnostic purposes.
2022-12-09 09:41:22 +01:00