Commit Graph

1624 Commits

Author SHA1 Message Date
Joakim Hove
9809dcc804 Remove references to unused class SimulationDataContainer 2020-09-21 07:16:11 +02:00
Atgeirr Flø Rasmussen
0816e21846
Merge pull request #2787 from akva2/fix_optional_deserialization
Fix optional deserialization
2020-09-16 09:41:53 +02:00
Arne Morten Kvarving
4160c6ce98 fixed: deserialization for std::optional<T>
just writing the data does not update the has_value as expected
2020-09-16 08:47:06 +02:00
Arne Morten Kvarving
76c63c4405 changed: hide internal method 2020-09-15 10:51:57 +02:00
Bård Skaflestad
e8582ce476 Include All Pertinent EFACs In Guiderate Potential Updates
This commit switches the helper function

    WellGroupHelpers::updateGuideRateForGroups<>()

to include efficiency factors in the potential rates at grouptree
levels below a particular group.  We furthermore switch the helper
function

    WellGroupHelpers::updateGuideRatesForWells<>()

to not include efficiency factors at all.

The motivation for this change is that efficiency factors always
apply to the level we're accumulating rate values into rather than
to the rate values themselves.
2020-09-15 09:44:52 +02:00
Bård Skaflestad
453dec3e26
Merge pull request #2785 from blattms/improve-parallel-deck-error-handling
Improves error handling and reporting in parallel.
2020-09-15 09:06:43 +02:00
Markus Blatt
58fdf300df Use std::exit(EXIT_FAILURE)
Somehow this reappeard druing refactoring.
2020-09-15 08:36:20 +02:00
Markus Blatt
cd74796004 Refactored to only check once for errors in parallel.
This simplifies the code a lot (less `#if HAVE_MPI`) and there seems
to be not reason not to.
2020-09-15 08:27:04 +02:00
Markus Blatt
d413a2c960 Perform checkArrayDimension only on rank 0. 2020-09-15 08:26:23 +02:00
Markus Blatt
921e154972 use EXIT_FAILURE to indicate problems whem exiting. 2020-09-14 19:17:55 +02:00
Tor Harald Sandve
c2c009ecb6 clean-up based on review 2020-09-14 15:42:48 +02:00
Tor Harald Sandve
1a7b617074 guards against non-exsisting phases 2020-09-14 14:44:16 +02:00
Tor Harald Sandve
a323487b3b Fix the equation index for 2p oil-water simulations 2020-09-14 14:44:16 +02:00
Markus Blatt
519e4ac002 Improves error handling and reporting in parallel.
As the ErrorGuard also dumps warnings we now always dump
it (previously only on error) to get these messages in the
console.

If there are error encountered, we log a meaningful error
message (the real cause was missing previously) and do a
graceful exit after MPI_Finalize.
2020-09-14 12:53:02 +02:00
Alf B. Rustad
d0c110e935 Removed duplicated OPTIONS 2020-09-13 23:15:01 +02:00
Alf B. Rustad
1b05ed1199 Removed OPERATER and OPERNUM since they are supported. 2020-09-13 22:40:20 +02:00
Atgeirr Flø Rasmussen
76384344ca
Merge pull request #2777 from GitPaean/adding_well_assembly_timing
adding timing for the well assembly
2020-09-08 16:02:16 +02:00
Kai Bao
7b4142e9b6 adding timing for the well assembly
And changes the indentation of the linear solver setup time a little to
show it is part of the linear solve time.
2020-09-08 11:12:41 +02:00
Bård Skaflestad
9d6a0be776
Merge pull request #2772 from blattms/prevent-copy-in-rateconverter
Prevent another copy of cell to region mapping in RateConverter.
2020-09-07 17:13:22 +02:00
Markus Blatt
578ca0a725 Fixed unused variable warning. 2020-09-07 16:42:01 +02:00
Markus Blatt
c21f1e72f8 Prevent another copy of cell to region mapping in RateConverter.
RateConverter itself already copies this and offers the mapping.
With this commit we just use that.
2020-09-07 15:36:07 +02:00
Markus Blatt
53005c477d
Merge pull request #2762 from ducbueno/opencl-stdwell-clean
Fixed out of resources problem
2020-09-03 19:50:39 +02:00
Jose Eduardo Bueno
525faf7b5d Changed work_group_size 2020-09-03 14:25:50 -03:00
Jose Eduardo Bueno
f8898e3158 New function for setting OpenCL in wellContribs 2020-09-03 13:30:12 -03:00
Markus Blatt
3ee0db8cf4
Merge pull request #2760 from atgeirr/inform-user
Use log mechanism for info output
2020-09-03 17:15:00 +02:00
Markus Blatt
ba8782eeca
Merge pull request #2761 from akva2/fix_flexible_serial
fixed: use the proper linear operator without wells in matrix in serial
2020-09-03 17:08:40 +02:00
Arne Morten Kvarving
273d465c32 fixed: use the proper linear operator without wells in matrix in serial 2020-09-03 15:53:57 +02:00
Atgeirr Flø Rasmussen
3dffb5d4da Use log mechanism for info output, and tell the user the deck has been read. 2020-09-03 15:11:25 +02:00
Markus Blatt
d51b4a53e8
Merge pull request #2758 from atgeirr/reinstate-lost-features
Reinstate lost logging of header and parameters.
2020-09-03 15:08:55 +02:00
Jose Eduardo Bueno
c7adc3495f Initial commit 2020-09-03 09:46:44 -03:00
Atgeirr Flø Rasmussen
92bdcbf597 Reinstate lost logging of header and parameters.
Also re-add the ability to do strict parsing.
2020-09-03 14:07:33 +02:00
Bård Skaflestad
6220cdf613 Restore Groups' Active Constraints on Restart
First step towards better restarts of models with group control.
2020-09-03 01:11:32 +02:00
Bård Skaflestad
bdc34a7580 Distribute Group Values at Parallel Restart
Mostly to prepare for restoring the groups' active controls from
restart information.
2020-09-03 01:11:32 +02:00
Bård Skaflestad
a0373ed428 Support Distributing Guiderates in Parallel Restart
In preparation of distributing group-related information (e.g.,
the active constraint).
2020-09-03 01:11:32 +02:00
Markus Blatt
27931c4303 [opencl] Fixes shadowing variable warnings.
These seemed familar and I would have sworn that I already fixed them
somewhen. Might have been reintroduced by rebasing.
2020-09-02 22:46:44 +02:00
Markus Blatt
e997d7b130
Merge pull request #2751 from ducbueno/opencl-stdwell-clean
AddStandardWell functionality in OpenCL backend
2020-09-02 22:02:05 +02:00
Jose Eduardo Bueno
4d10d9ac76 Fixed issue when no std wells are present 2020-09-02 15:44:46 -03:00
Jose Eduardo Bueno
56c1c0862c Added StandardWell functionality to OpenCL backend 2020-09-02 15:00:34 -03:00
Bård Skaflestad
144baeeb42 Well Model: Report Guiderates at Well and Group Levels
This commit adds support for reporting the simulator's guiderate
values at the well and group levels to the output layer through the
wellData() and groupData() member functions.  We add several new
member functions that collectively assemble the values and assign
them to objects of type Opm::data::GuideRateValue for subsequent
output to the summary and restart files.

In particular

    getGuideRateValues(const Well&) const
    getGuideRateValues(const Group&) const

retrieve the guiderate values for all phases for those individual
wells and groups for which the guideRate_ data member defines a
value.  The most complicated function of this commit is

    calculateAllGroupGuideRates

which aggregates those individual contributions from the well (leaf)
level up to the root of the group tree (the FIELD group).  This
process uses an ancillary array ('up') to keep track of the parent
groups of all wells and all groups, and to ensure that we only visit
each parent group once (sort+unique on subsets of the 'up' array).

We do not currently support outputting guiderates for reservoir
voidage volume (GuideRateModel::Target::RES).
2020-09-02 17:22:04 +02:00
Bård Skaflestad
e1ce1c9124 Centralize Rate Vector Derivation for Guide Rates
This commit creates a single implementation function for deriving
'RateVector' objects that go into the guiderate calculation.  In
particular, we now use the same implementation function for both the
well and the group levels.  While here, also expose the group level
derivation as a free function and reimplement the FractionCalculator
version in terms of this free function.  Finally, remove the
previous attempt at such a free function taking only the group name.
This function no longer exists in isolation and is only accessible
through the FractionCalculator.

This is in preparation of reporting guiderate values to the output
layer (summary and restart files).
2020-09-02 17:22:04 +02:00
Bård Skaflestad
3c91761999 Well State: Add Predicate for Flow Rate Existence
This commit adds two new predicate member functions

    bool hasWellRates(well_name) const
    bool hasProductionGroupRates(group_name) const

that enable querying the existence of the corresponding flow rate
values for wells and group production.

This is in preparation of reporting the simulator's guiderate values
to the summary and restart files.
2020-09-02 17:22:04 +02:00
Bård Skaflestad
fdba34e071 IsXGroup: Return Explicit Boolean Value
Mostly to highlight that 'globalIsXGrup_' holds integers rather than
bools.  While here, also fix an error message formatting problem.
2020-09-02 17:22:04 +02:00
Arne Morten Kvarving
7305f84351 use std::make_unique where applicable 2020-09-02 15:35:39 +02:00
Arne Morten Kvarving
182ec130b1 fixed: use const refs in foreach constructs
avoids unnecessary copies
2020-09-01 13:25:26 +02:00
Bård Skaflestad
efed640e63 Broken Constraints: Fix Diagnostic Message
Especially, grab a copy of the "oldControl" to avoid reading through
a reference for which the underlying object is reset in

    setCurrent*GroupControl()

This in turn avoids generating confusing diagnostic messages of the
form

    Switching production control mode for group G from FLD to FLD
2020-08-31 13:04:39 +02:00
Arne Morten Kvarving
f4f5fa3a5d changed: remove one missed TTAG usage
also include header for the Scalar property definition
2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
9a000c6d07 changed: remove SET_TAG_PROP macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
3b21a8a481 changed: remove SET_TYPE_PROP macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
93a3ebf8f7 changed: remove NEW_PROP_TAG macro usage 2020-08-28 10:44:53 +02:00
Arne Morten Kvarving
941e4916f8 changed: remove SET_PROP macro usage 2020-08-27 14:02:05 +02:00