Commit Graph

660 Commits

Author SHA1 Message Date
Arne Morten Kvarving
6e83e349d6 changed: move variadic broadcast into EclMpiSerializer 2022-09-13 13:29:47 +02:00
Arne Morten Kvarving
75dbf60f7a
Merge pull request #4093 from akva2/serializer_handle_sets
changed: handle all sets in eclmpiserializer
2022-09-13 13:05:21 +02:00
Bård Skaflestad
7e44ddd2bd
Merge pull request #4100 from totto82/wvfpexp_user
remove WVFPEXP from unsupported keywords
2022-09-13 12:46:58 +02:00
Arne Morten Kvarving
dfa870c313 changed: handle all sets in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 12:39:07 +02:00
Arne Morten Kvarving
4cd9272a76 changed: handle all arrays in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 12:08:39 +02:00
Arne Morten Kvarving
603e44068c changed: handle all maps in eclmpiserializer
thus we can remove support in MPIPacker
2022-09-13 11:32:37 +02:00
Arne Morten Kvarving
c6beb479d3 changed: remove optional support in MPIPacker
handled by the serializer
2022-09-13 10:49:54 +02:00
Arne Morten Kvarving
4a81e5c92d fixed: remove forwarding in variadic functions
these are l-values so the forward call is a noop. if they
would be pr or x-values, forwarding multiple times is not
correct.
2022-09-13 10:16:55 +02:00
Tor Harald Sandve
683ed0df1f remove WVFPEXP from unsupported keywords 2022-09-13 09:30:04 +02:00
Arne Morten Kvarving
1838b39d2e changed: split ParallelRestart.hpp/cpp in two bits
the mpi serialization bit is put in MPISerializer.hpp/cpp,
while the parallel restart bit stays in ParallelRestart
2022-09-08 13:36:51 +02:00
Arne Morten Kvarving
bb0701ed01 remove unused serialization code 2022-09-07 10:10:16 +02:00
Markus Blatt
15ca494164
Merge pull request #4084 from akva2/tran_distribute_eclmpiserializer
changed: use EclMpiSerializer to distribute transmissibilities
2022-09-07 10:05:05 +02:00
Arne Morten Kvarving
e93e18a55d changed: use EclMpiSerializer to distribute transmissibilities 2022-09-07 09:39:15 +02:00
Arne Morten Kvarving
b53ab951d0 drop primitive serializer support for data:: types 2022-09-06 16:04:02 +02:00
Arne Morten Kvarving
5b81e9eaee fixed: do not include EclMpiSerializer without mpi 2022-09-06 14:03:32 +02:00
Arne Morten Kvarving
1d00ed47ba changed: use EclMpiSerializer in loadParallelRestart 2022-09-06 12:02:07 +02:00
Arne Morten Kvarving
a5c8ed50d5 added: data::SegmentPressures mpiserializer test 2022-09-05 13:05:46 +02:00
Arne Morten Kvarving
6ff0d0cdc4 added: data::GuideRateValue mpiserializer test 2022-09-05 11:17:44 +02:00
Arne Morten Kvarving
237832b86d added: primitive serializer support for std::bitset 2022-09-05 11:17:27 +02:00
Atgeirr Flø Rasmussen
51e5459be5 Add packing support for classes needing it.
Since Rates is not longer a POD, it needs explicit
packSize()/pack()/unpack() support. This also applies
to classes containing Rates, namely Connection and Segment.
Similarly, SegmentPressures is not a POD.
2022-08-24 15:11:27 +02:00
Atgeirr Flø Rasmussen
04180031e1 Limit warnings to terminal during deck input.
With this, the tag limit of 10 is used from the very start of the run,
and not only after the deck has been read.
2022-08-16 14:43:07 +02:00
Arne Morten Kvarving
d2ba2e75e8 remove include of Well header 2022-08-11 11:49:42 +02:00
Elyes Ahmed
5c2b60bcd0 rebasing 2022-07-28 20:40:34 +02:00
OPMUSER
f9ba52e91b Update UnsupportedFlowKeywords.cpp
Remove MINPORV from unsupported keyword list
2022-07-09 20:13:30 +08:00
OPMUSER
65addddb06 Update UnsupportedFlowKeywords.cpp
Remove TEMPVD from the unsupported key list, as tested as working.
2022-07-08 18:20:18 +08:00
OPMUSER
b784a6d78b Update UnsupportedFlowKeywords.cpp
Remove RTEMPA from the unsupported keywords list as testing shows it is supported.
2022-07-08 17:36:12 +08:00
Markus Blatt
6aea0fab37 Added instantiations of OrderedMap with truncated keys for parallel. 2022-06-27 13:09:09 +02:00
Markus Blatt
ebb8fc7aae Warn about about long fault -name 2022-06-27 13:09:08 +02:00
Bård Skaflestad
252d0afe8e Emit Actual Message on Input Failure
This gives more information to the user and hopefully aids them in
resolving the underlying issue.
2022-05-20 16:30:19 +02:00
Markus Blatt
51d8c9536e Spelling fix geomtry -> geometry.
Actually one should rename the function used from opm-common, too.
But that is for later...
2022-04-27 20:52:30 +02:00
OPMUSER
89461ed058 Radial and Spider Grid Keywords Not Supported
Add the DR, DTHETA and OUTRAD keywords as unsupported keywords with messages to enable the user to debug the input deck.

Back port candidate for release.
2022-04-20 14:19:56 +08:00
Tor Harald Sandve
0c9bb3990e
Merge pull request #3830 from plgbrts/vapwat
Adding explicit input specification of water-gas ratio (RVW) and RVW output plus simulator gas-water system with salt precipitation and water evaporation for
2022-04-07 09:03:26 +02:00
Markus Blatt
282951dc44
Merge pull request #3848 from blattms/binary-package-version-no-buildtime
Use empty string for buildtime if BUILD_TIMESTAMP is not set.
2022-04-05 14:54:58 +02:00
Bård Skaflestad
dfdfbbd7d7 Don't Process Corner-Point Data If No Valid Cell Geometry
If no cell has a valid corner-point geometry, typically caused by
using GDFILE to read non-finite data such as all ZCORN = -1.0E+20,
then we must not attempt to generate a grid structure.  If we do, we
will typically just fail somewhere deep down in the corner-point
processing code and generate a diagnostic message that's hard to
decipher.

With this commit we instead output a diagnostic message of the form

    Failed to create valid EclipseState object.
    Exception caught: No active cell in input grid has valid/finite cell geometry
    Please check geometry keywords, especially if grid is imported through GDFILE

This may not be a lot better than the original diagnostic

    Processing grid
    flow: ${ROOT}/opm-grid/opm/grid/cpgpreprocess/preprocess.c:768: is_lefthanded: Assertion `! searching' failed.
    Aborted (core dumped)

but does at least suggest that the grid data may be faulty.
2022-03-25 14:35:55 +01:00
Markus Blatt
08fd5da6a7 Use empty string for buildtime if BUILD_TIMESTAMP is not set.
In combination with the relevant changes in opm-common this
prevent flow in binary Linux packages from having a timestamp in the
executable that changes with every rebuild.

With the changes in opm-common  one can now set the variable
OPM_BINARY_PACKAGE_VERSION to a meaningful version string (Debian
11.2: 2021.10-4). If that is done and flow is built from tarballs it
will now not have a time stamp and print the package version to the
PRT file. E.g.

Flow Version     =  2021.10 (Debian 11.2: 2021.10-1)
2022-03-23 22:46:40 +01:00
Paul Egberts
390a5a4b82 clean up 2022-03-06 21:02:22 +01:00
Paul Egberts
797fdc278b water-gas ratio input and output plus simulator for salt precipitation and water evaporation 2022-03-01 20:52:43 +01:00
Markus Blatt
a520733d5b
Merge pull request #3774 from plgbrts/expli-salt
allow for explicit initialization of SALT and SALTP
2022-02-11 14:35:57 +01:00
Tor Harald Sandve
ad799b3e80 Add more performance summary output
This commit ads: NEWTON, MLINEARS, MSUMLINS, MSUMNEWT, NLINEARS, NLINSMIN, NLINSMAX
2022-02-03 15:03:37 +01:00
Markus Blatt
4407fdd3db std::regex_replace use $n for referencing and not \n. 2022-01-27 17:22:09 +01:00
Markus Blatt
710d648eda Prevent multiple *.?.dbg/prt files in production crashed parallel runs.
There was a fallout when skipping concating these files to the
default ones (PR #1708). We should also have deactivated creating
these files at all. As a result these files appeared in all parallel
runs that were aborted.

This change now prevents creating and logging to these files in
parallel in a default
run (--enable-parallel-logging-fallout-warning=false).

Developers can still activate logging and concating to see whether
everything is only logged on the io process by passing
--enable-parallel-logging-fallout-warning=true.

Closes 3725
2022-01-27 17:21:29 +01:00
Paul Egberts
590920db6b allow for explicit initialization of SALT (salt concentration) and SALTP (precipitated salt) 2022-01-18 11:12:43 +01:00
Paul Egberts
f69aa171fe removed some salt-precipitation related keywords from the unsupported keyword list 2022-01-14 11:46:39 +01:00
Joakim Hove
6b92443cb4 Downstream filesystem reorganisation in opm-common 2022-01-02 14:33:34 +01:00
OPMUSER
d6f7cb59a7 Validate ROCKCOMP Upadate 2021-12-20 18:06:17 +08:00
OPMUSER
34652f2d5d Remove NEXTSTEP from Unsupported List 2021-12-14 11:31:38 +08:00
OPMUSER
0ee2ed0311 Update PartiallySupportedFlowKeywords.cpp 2021-12-10 20:17:12 +08:00
OPMUSER
f7327c06f7 Update PartiallySupportedFlowKeywords.cpp 2021-12-10 19:56:54 +08:00
Markus Blatt
9a80d806c0 Setup parallel solvers for tracers. 2021-11-17 16:02:16 +01:00
Arne Morten Kvarving
24e252f46d fix serial build after PR #3675
annoyingly, dune has a casting operator for mpicollectivecommunication
-> MPIComm but for some reason does not have a casting operator for
the dummy collectivecommunication -> No_Comm
2021-11-10 10:41:24 +01:00
Arne Morten Kvarving
e67bae5453 fix: serial build after PR #3671 2021-11-09 15:57:24 +01:00
Bård Skaflestad
676cdb8307
Merge pull request #3674 from akva2/broadcast_variadic
added: utility to broadcast multiple variables in one operation
2021-11-09 14:51:23 +01:00
Joakim Hove
06e71f1345 Broadcast updated transmissibility after runtime updates of MULT? 2021-11-09 14:22:19 +01:00
Joakim Hove
5f4efbde73 broadcast<T> with Schedule and TransMult specialization 2021-11-09 14:22:19 +01:00
Arne Morten Kvarving
2120cbf043 added: utility to broadcast multiple variables in one operation 2021-11-09 13:02:05 +01:00
Bård Skaflestad
40fdb9e1d6 Mark GRAVITY Keyword as Supported in the Simulator
The input layer now converts this input to DENSITY data.
2021-11-07 22:34:31 +01:00
Arne Morten Kvarving
06bd25575f use std::filesystem directly 2021-11-01 12:31:58 +01:00
Joakim Hove
a79fd67104 Mark keywords DIFFC, DIFFUSE and GPMAINT as supported 2021-10-26 07:42:14 +02:00
Joakim Hove
695254fc7c Broadcast WellTestState after initialization 2021-10-19 11:16:41 +02:00
Joakim Hove
daabe1ca76 Make sure WellTestState is initialized also on non IO rank 2021-10-19 11:16:41 +02:00
Joakim Hove
9a9ccb90b8 Make sure to filter out wells from other processes in WellTestState 2021-10-19 11:16:41 +02:00
Atgeirr Flø Rasmussen
fc80451e3d Silence unused argument warning. 2021-10-15 13:26:44 +02:00
Joakim Hove
2c68f12769 Load WellTestState from restart file 2021-10-13 08:46:48 +02:00
Bård Skaflestad
0f13f4095b Mark 'comm' As Potentially Unused
The communicator is only needed in parallel builds.
2021-10-10 20:38:45 +02:00
Bård Skaflestad
d028937925 Remove Unused 'Comm' Parameter
Remnant from ealier refactoring work.
2021-10-08 12:44:27 +02:00
Bård Skaflestad
1feab761d6 Extract Helper Functions From readDeck
Mostly to reduce the number of nested conditionals and long lines.
2021-10-07 22:01:47 +02:00
Atgeirr Flø Rasmussen
d1391de639 Minor whitespace fixes. 2021-10-05 13:59:16 +02:00
Elyes Ahmed
0202b00d59 clean up after review 2021-10-05 13:07:52 +02:00
Elyes Ahmed
f53c597f90 Replacing use of MPI_COMM_WORLD with a variable communicator. 2021-10-05 13:07:52 +02:00
OPMUSER
be7395a137 Keyword Validation Fixes: GCONINJE, WTEST and AQUCT
Keyword Validation Fixes: GCONINJE, WTEST and AQUCT. Just minor edsits
2021-09-30 16:14:40 +08:00
Joakim Hove
56afec81b4
Merge pull request #3548 from joakim-hove/broadcast-udq+action
Broadcast UDQState and Action state after restart loading
2021-09-28 19:31:53 +02:00
Tor Harald Sandve
c790b14753 Make WTEST more robust
Only open wells that are solvable, operable and economical
2021-09-28 10:07:12 +02:00
Joakim Hove
8943e90e17 Broadcast UDQState and Action state after restart loading 2021-09-28 09:54:15 +02:00
Markus Blatt
a927f8e23b Unify parallel try-catch clauses with Macros and catch everything.
Not a big fan of Macros but here at least they seem ot be the only
option. The problem is that the catch clauses must all catch the same
exceptions that have a entry in ExceptionType, because they might be
nested. In addition we did not have a catch all clause, which is added
now and is needed in case a called method throws an unexpected exception.
2021-09-24 09:25:44 +02:00
Bård Skaflestad
1dc3832966
Merge pull request #3540 from hakonhagland/python_set_sched
Initialize blackoil simulator from Opm::Schedule shared with Python.
2021-09-23 13:32:31 +02:00
Joakim Hove
f581208fa0 Load Action state from restart file 2021-09-22 12:43:10 +02:00
Håkon Hægland
5ad65c70ee Initialize blackoil simulator from schedule shared with Python.
Adds a new constructor to Main.hpp that takes shared pointers to Deck,
EclipseState, Schedule, and SummaryConfig. This makes it possible to
share these variables with Python without worrying about lifetime issues
of the underlying C++ objects. For example, a Python script can first
create an opm.io.schedule.Schedule object which is modified from Python.
Then, assume the same Python script creates an
opm.simulators.BlackOilSimulator which is initialized with the same
schedule object. Since the underlying C++ object is a shared pointer,
the Schedule object in Python may go out of scope (get deleted by Python)
without having the C++ schedule object being deleted. And the Python
BlackOilSimulator may continue to be used after the Python Schedule object
has been deleted since it still has a valid C++ schedule object.
2021-09-21 15:52:59 +02:00
Joakim Hove
357540bfca Create Action::State external to the vanguard 2021-09-19 10:17:58 +02:00
Markus Blatt
b056557f57 bugfix: Detect exception during beginReportStep in parallel a. abort
Previously, exceptions happening at this stage have deadlocked
flow. E.g.  UniformTabulated2DFunction in opm-material throws
a NumericalIssue if the values passed are outside the tabulated
reason. This function is e.g. called in 2-phase CO2-storage cases
during BlackoilModel::initializeWellState

BTW: This is only the first step as it is not very user friendly that
a simulation aborts at this (late) stage.
2021-09-15 20:50:49 +02:00
Joakim Hove
eeab23ebab Add Parser argument to restart loader 2021-09-09 15:08:14 +02:00
Joakim Hove
3e66fc9555 Add Runspec argument to restart loader 2021-09-04 19:35:53 +02:00
Markus Blatt
598e9fa102 [bugfix] Fix sequential run after #979
Definition of the communicator was moved inside a
`#if HAVE_MPI` there. This commit queries the
communicator again below to fix this.
2021-09-02 13:12:23 +02:00
Markus Blatt
edd6c6fe85 [bugfix] Prevent segmentation fault for unkown keywords in parallel.
If there are unknown keywords and the parser throws an exception
then we nevertheless broadcasted the eclipseState and schedule.
Unfortunately, these might be null pointers in this case and
the serializer will run into a segmentation fault (e.g. when
serializing the non-existent TableManager)

Broadcasting is now only done if parsing was successful.
2021-09-02 11:14:46 +02:00
Cintia Goncalves Machado
b675d86aa8 add radial to regression test 2021-09-01 00:13:02 +02:00
Joakim Hove
060eac4999 Add basic functionality for validating special case keywords 2021-08-24 13:50:40 +02:00
Bård Skaflestad
ec264159b1 Load Analytical Aquifers from Restart File
This commit activates the restart support for analytical aquifers.
Analytic aquifer keywords do not exist in the input file for
restarted runs since the 'SOLUTION' section is empty apart from from
the 'RESTART' specification.

We use the 'RestartIO::Aquifer' class to load the information from
the restart file and then assign this information to the
AquiferConfig object hosted by the EclipseState.  Loading Schedule
information from the restart file is still contingent on the
'--sched-restart=false' command line setting.
2021-08-19 21:07:05 +02:00
Bård Skaflestad
6da47344a3 Record New Supported Keywords
We recently added support for

  * RPTONLY
  * RPTONLYO
  * SUMTHIN
2021-08-17 10:29:36 +02:00
OPMUSER
272ae1c8f8 Minor updates
Delete time stamp
update WCONPROD, TRACER and TRACERS
2021-07-10 14:05:33 +08:00
OPMUSER
22a2720e5a Partially Supported Keywords Validation
All keywords that can be checked with the existing validation frame work. All failures will continue, even if the message says "will STOP". The only exception is GUIDERAT(2) as parser check results in the STOP; however, this going to change so the STOP will happen with this code.

Comments and agreement between continue and STOP actions appreciated-
2021-07-10 14:05:33 +08:00
OPMUSER
741fddc2f7 Update UnsupportedFlowKeywords with Some Output Comments
Just minor changes to the output strings for better clarity.
2021-07-10 14:05:33 +08:00
OPMUSER
82834c0a3b Unsupported Keywords: Fix RVCONST add ROCKOPTS
Added ROCKOPTS to unsupported keyword list, as there are no opm-test examples, is this correct?

If ROCKOPTS is supported what is supported?
2021-07-10 14:05:33 +08:00
Atgeirr Flø Rasmussen
3253a79693 Instantiate pack etc. for new integer type.
The std::uint_fast64_t is used in WriteRestartFileEvents, from
opm-common.
2021-07-08 17:55:28 +02:00
Bård Skaflestad
2627a05c1e
Merge pull request #3433 from osae/tracerDefaultTrue
Default activation of tracer model.
2021-07-07 11:54:28 +02:00
Ove Sævareid
738877fc1b Default activation of tracer model. 2021-07-06 17:06:10 +02:00
Joakim Hove
2b680f27af Load udq state results from restart file 2021-07-03 10:08:25 +02:00
Joakim Hove
528078e8e1 Assemble UDQState external to the vanguard 2021-07-01 08:24:59 +02:00
Bård Skaflestad
b79b08e86f
Merge pull request #3414 from OPMUSER/RUNSPEC-GRID
Add GRAVITY keyword to UnsupportedFlowKeywords
2021-06-28 13:26:43 +02:00
OPMUSER
5d9e3811af Add GRAVITY keyword to UnsupportedFlowKeywords
Add GRAVITY keyword to UnsupportedFlowKeywords with message to use DENSITY instead.
2021-06-28 18:11:49 +08:00
Bård Skaflestad
3fe922b27f
Merge pull request #3404 from OPMUSER/RUNSPEC-GRID
PartiallySupportedKeywords for RUNSPEC and GRID Sections
2021-06-27 17:04:20 +02:00
Bård Skaflestad
5e883e562c Chase Type Specific Aquifer Data API Change
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.
2021-06-25 09:58:27 +02:00