Commit Graph

1105 Commits

Author SHA1 Message Date
Kai Bao
2b85e93ef6 some cleaning up
not functionality changes.
2021-02-22 23:15:26 +01:00
Kai Bao
524e63a255 adapting to the upstream interface change. 2021-02-22 23:15:26 +01:00
Kai Bao
c1a61e3b72 fixing the numerical aquifer related after rebasing 2021-02-22 23:15:26 +01:00
Kai Bao
a755b54afc rebasing and fixing the compilation.
The equilibration needs to be fixed for numerical aquifers.
2021-02-22 23:15:26 +01:00
Kai Bao
74f2fcd121 WIP in using pinched grid for numerical aquifer 2021-02-22 23:15:26 +01:00
Kai Bao
65bde5d65b making sure the aquifer cells have the correct cell volume
because AQUNUM can specify different cells volume, which is indepedent
of the grid coordinates.
2021-02-22 23:15:26 +01:00
Kai Bao
ef67d9a9e7 using the specified pressure for numerical aquifer
NOT totally sure how to use this pressure value, do we need to consider
the capillary pressure?
2021-02-22 23:15:26 +01:00
Kai Bao
80c0073a69 set water saturations for numerical aquifer cells to be 1. 2021-02-22 23:15:26 +01:00
Kai Bao
1d5b60a600 using the depth specified by numerical aquifer
for numerical aquifer cells, instead of the depth calculated from the
grid geometry.
2021-02-22 23:15:26 +01:00
Joakim Hove
a5c5dc2ec9
Merge pull request #3071 from joakim-hove/rft-config
Use ScheduleState for RFT configuration
2021-02-19 10:35:33 +01:00
Markus Blatt
d693c3da42
Merge pull request #3050 from joakim-hove/actionx-welpi
Support combination of ACTIONX and WELPI
2021-02-18 22:09:16 +01:00
Joakim Hove
aca3b246ae Add empty() methods for updateEclWell and wellPI in ebos 2021-02-18 16:53:50 +01:00
Joakim Hove
ff51c2d7ee Handle WELLPI keyword in ACTIONX
When an ACTIONX has evaluated to True we inspect the keyword payload and if it
contains WELPI we query the well model for current wellpi values and pass that
along as context to the Schedule::applyAction()
2021-02-18 16:53:50 +01:00
Tor Harald Sandve
4ca3c2af72 clean-up commented code 2021-02-18 13:49:35 +01:00
Joakim Hove
b92f06544c Use ScheduleState for RFT configuration 2021-02-18 10:47:59 +01:00
Tor Harald Sandve
1abbd9c776 add diffusivity to eclTranmissibility 2021-02-16 12:21:58 +01:00
Markus Blatt
fd7c4e3d24
Merge pull request #3053 from totto82/fixBoundaryMPI
fix boundary face index on process boundaries
2021-02-11 09:07:19 +01:00
Joakim Hove
b15a336341 Add wellpi argument to Schedule::applyAction() 2021-02-10 12:39:25 +01:00
Tor Harald Sandve
c64dcacfec fix boundary face index on process boundaries 2021-02-09 12:40:00 +01:00
Joakim Hove
4f90eff8d5 Pass simulation time argument to applyAction 2021-02-05 09:39:35 +01:00
Bård Skaflestad
03a616e08a Support Aliases for Block Level Quantities
In particular, treat BSOIL, BSGAS, BSWAT, and BPRESSUR as aliases
for BOSAT, BGSAT, BWSAT, and BPR respectively.
2021-02-02 11:36:41 +01:00
Markus Blatt
0238a80b02
Merge pull request #3032 from blattms/test-spe9-distributed-wells
Support external loadbalancers in EclCpGridVanguard
2021-02-02 11:21:40 +01:00
Markus Blatt
67fc95c340
Merge pull request #3029 from blattms/activate-distributed-wells
Activate distributed wells in the simulator
2021-02-02 09:40:08 +01:00
Markus Blatt
143ae344f5 Split error message into multiple lines 2021-01-28 16:43:24 +01:00
Bård Skaflestad
9360d0a646
Merge pull request #3033 from totto82/fixEmptyEquilOutput
Fix empty region output in parallel
2021-01-27 15:03:06 +01:00
Markus Blatt
2d23b01da8 Restrict property/type tag changes to eclbasevanguar.hh 2021-01-27 14:41:10 +01:00
Tor Harald Sandve
82c8968ae3 only warn about empty regions when none of the partitions contains the region 2021-01-27 12:47:41 +01:00
Markus Blatt
e1e1ff9a17 Added support for external load balancer to EclCpGridVanguard.
You can use EclCpGridVanguard::setExternalLoadBalancer() to
set an external funtion that creates a vector of integers (containing
the partition for each cell) from the grid. If it is set then this
information will be used for loadbalancing, otherwise ZOLTAN.
2021-01-26 21:12:04 +01:00
Tor Harald Sandve
c145722798 pass CartesianIndexMapper instead of the grid to the RelpermDiagnositics 2021-01-26 14:59:36 +01:00
Markus Blatt
ac1757d2c0 Corrected use of typetag system to make the tests compile.
This meant introducing another version of the TAG for the
grid.
2021-01-25 15:05:24 +01:00
Markus Blatt
f464d93f15 Activate distributed standard wells.
We introduce a new parameter --enable-distributed-wells=<true|false>
for this. During startup we check that the model either only has
standard wells or that multisegement wells are actively interpreted
as standard wells (by way of passing --enable-multisegment-wells=false
as an option).
2021-01-25 15:05:24 +01:00
Joakim Hove
d025f39474 Use ScheduleState to manage Actionx 2021-01-15 07:57:27 +01:00
Joakim Hove
5dd3e308f5 Use ScheduleState to manage well lists 2021-01-12 20:18:40 +01:00
Joakim Hove
237eb2b7ee Fetch events from ScheduleState 2021-01-11 17:42:30 +01:00
Joakim Hove
1b534dfad7 Use ScheduleState to extract oil vaporization properties 2021-01-07 15:50:31 +01:00
Atgeirr Flø Rasmussen
bf826c99c9
Merge pull request #3003 from totto82/setImbalanceTol
dynamically set zoltan imbalance tolerance
2021-01-07 08:25:41 +01:00
Joakim Hove
fe788cdb05 Access tuning class from ScheduleState 2021-01-06 16:26:13 +01:00
Tor Harald Sandve
3cd0d9c29f dynamically set zoltan imbalance tolerance 2021-01-06 11:52:48 +01:00
Bård Skaflestad
e7ca9df998 Extract SOIL Directly for 'BOSAT' Summary Vector
This works better in two-phase runs (G/O or O/W).
2020-12-21 13:57:31 +01:00
Arne Morten Kvarving
1907fe4937 collect global aquifer data for output in eclwriter 2020-12-21 12:54:34 +01:00
Tor Harald Sandve
6cf91e7f19 Get compressed to cartesian mapping and depths from the vanguard 2020-12-11 12:48:01 +01:00
Bård Skaflestad
0e938c0ca7
Merge pull request #2941 from totto82/dunifyInitCode
dunify and make the initialization parallel
2020-12-09 20:46:28 +01:00
Atgeirr Flø Rasmussen
83a6c2abae
Merge pull request #2947 from blattms/fix-parallel-well-red
Prepares for apply distributed standard wells.
2020-12-04 20:32:30 +01:00
Joakim Hove
66a532f33e
Merge pull request #2957 from joakim-hove/wbp-collect
Wbp collect
2020-12-04 09:11:21 +01:00
Markus Blatt
8ee58096ba Make the parallel reduction when applying the Wells.
The B matrix is basically a component-wise multiplication
with a vector followed by a parallel reduction. We do that
reduction to all ranks computing for the well to save the
broadcast when applying C^T.
2020-12-03 11:10:36 +01:00
Joakim Hove
72905f3e3b Gather WBP pressure data before summary eval 2020-12-03 09:40:40 +01:00
Arne Morten Kvarving
76eec37e5a fixed: use correct type tag in ebos_gaswater 2020-12-03 09:13:23 +01:00
Paul Egberts
877c0b723d fix missing argument for BlackoilTwophaseIndices 2020-12-03 09:04:11 +01:00
Paul Egberts
13cd4b476e fix disabled component index 2020-12-03 09:04:11 +01:00
Paul Egberts
d0421582e1 add gas-water simulator 2020-12-03 09:04:11 +01:00
Tor Harald Sandve
b202a025c0 some clean up 2020-12-02 13:04:34 +01:00
Joakim Hove
ced3c99e09
Merge pull request #2953 from joakim-hove/udq-eval-off-by-one
Shift the report step argument used when calling UDQ eval
2020-12-02 08:34:43 +01:00
Atgeirr Flø Rasmussen
f34b286636
Merge pull request #2944 from goncalvesmachadoc/aquifer
Remove unnecessary check for saturations
2020-12-01 08:40:28 +01:00
Joakim Hove
1d86e2dc97 Pass wbp index list to output module 2020-12-01 07:52:58 +01:00
Joakim Hove
1bb7b0d30f Use unique_ptr for outputmodule member in EclWriter 2020-11-30 13:31:04 +01:00
Joakim Hove
c0e3de3815 Pass WBP calculators to Summary::eval 2020-11-30 11:30:00 +01:00
Joakim Hove
11bbb33337 Shift the report step argument used when calling UDQ eval 2020-11-30 10:14:20 +01:00
Arne Morten Kvarving
b7e3ca1326
Merge pull request #2928 from akva2/simplify_buildsystem_models
Use lists in buildsystem and rename some ebos models to be consistent with flow
2020-11-27 19:39:39 +01:00
Tor Harald Sandve
246c339b13 Pass gridView instead of the vanguard to the initialization 2020-11-27 13:46:04 +01:00
Tor Harald Sandve
6c06a72466 dunify and make the initialization parallel 2020-11-27 12:38:17 +01:00
Atgeirr Flø Rasmussen
5617a2ef5c
Merge pull request #2919 from blattms/do-not-filter-distributed
Do not filter connections on the schedule of the loadbalanced grid.
2020-11-26 16:43:09 +01:00
Cintia Goncalves Machado
c24cd93da5 remove more checks 2020-11-25 22:48:01 +01:00
Cintia Goncalves Machado
76bde77f5c do not check for saturation for single-phase 2020-11-25 21:46:40 +01:00
Markus Blatt
19bebcefe2 Broadcast schedule another time after filtering connection on rank 0
Only after rank zero does the filtering the schedule the well
definitions in there are guarateed to have no perforations to inactive
cells. Therefore we broadcast the schedule another time to publish
this to all processes.

Previously, we did the filtering locally on these processes bit that
did also remove perforations to cells that are active globally but
not locally. That seems very hard to work with when allowing
distributed wells.
2020-11-24 22:46:49 +01:00
Joakim Hove
62b119170d Pass Inplace argument to Summary::eval() 2020-11-24 12:33:05 +01:00
Joakim Hove
df292baeea Use Inplace::Phase enums instead of string tags 2020-11-24 12:33:05 +01:00
Joakim Hove
e962374856 Pass the initial inplace values to Summary::eval() 2020-11-20 10:02:16 +01:00
Joakim Hove
b2896d09ff
Merge pull request #2920 from joakim-hove/use-original-IP
Pass region in place values to the summary writer
2020-11-19 17:13:04 +01:00
Markus Blatt
d8eaef3271 Fixed and updated comment 2020-11-19 15:29:45 +01:00
Markus Blatt
46cb9012c0 Do not filter connections on the schedule of the loadbalanced grid.
It would remove perforated cells from wells that cross the local
domain's border. That would make it impossible to figure out the
first connection. In addition we would not be able to check that
the connections exist (as rank 0 would have the complete information
-> inconsistency).
2020-11-19 15:29:45 +01:00
Joakim Hove
6084f7c4d4 Use class Inplace to manage aggregated region properties in output 2020-11-19 11:38:18 +01:00
Arne Morten Kvarving
be48b3505d remove unused variable 2020-11-19 11:10:33 +01:00
Joakim Hove
2043d792c1 Remove arguments 2020-11-18 15:40:22 +01:00
Arne Morten Kvarving
e176487cae changed: rename ebos_thermal to ebos_energy
make it the same as the flow model, allowing simplification
in the buildsystem
2020-11-18 14:04:27 +01:00
Arne Morten Kvarving
9ad927799b changed: rename ebos_oilwaterpolymer to ebos_oilwater_polymer
make it the same as the flow model, allowing simplification
in the buildsystem
2020-11-18 14:04:04 +01:00
Ove Sævareid
b132df610f Missing template argument. 2020-11-17 12:39:21 +01:00
Ove Sævareid
98b2ed5bd4 Cleaning up various issues. 2020-11-17 12:39:21 +01:00
Ove Sævareid
0f7e66e151 Alternative solvent extension for the black oil model. 2020-11-17 12:33:19 +01:00
Markus Blatt
0dcfc60363
Merge pull request #2912 from totto82/polyhedrealgrid
Make a flow version that uses the polyhedreal grid
2020-11-16 17:04:38 +01:00
Joakim Hove
2d137e706f
Merge pull request #2918 from joakim-hove/summary-RRPV
Change output name of Region Pore Volume
2020-11-16 10:37:37 +01:00
Joakim Hove
cddc8044b3 Change output name of Region Pore Volume 2020-11-13 08:21:22 +01:00
Joakim Hove
da2bc2affd Refactor application of NNC / EDITNNC
- The edit manipulations from EDITNNC have already been applied to the NNC data
  from opm-common

- The NNC data structures are guaranteed to be ordered, both with cell1 <= cell2
  and the NNCs are in ascending order

- The NNC output to EGRID / INIT files is based on std::vector<NNCdata>
2020-11-10 16:59:30 +01:00
Tor Harald Sandve
fbccdbf68e Make a flow version that uses the polyhedreal grid
Currently the simulator creats the polyhedreal grid from an eclGrid from opm-common

TODO
 - make it possible to create the grid directly from DGF or MRST format
 - fix issue on norne.
2020-11-10 15:49:59 +01:00
Joakim Hove
e2909958c8
Merge pull request #2844 from hakonhagland/poro2
Implements access to the porosity from Python.
2020-11-05 11:15:12 +01:00
Alf Birger Rustad
590da4b0ae Switch default for restarting to read historic schedule 2020-11-03 17:56:24 +01:00
Håkon Hægland
648bab7108 Implements access to the porosity from Python.
Implements access (read/write) to the porosity from Python.
2020-11-03 17:18:14 +01:00
Joakim Hove
082fed2d78 Add wellmatcher argument when evaluating UDQ expressions 2020-10-30 23:34:07 +01:00
Atgeirr Flø Rasmussen
f528adb604
Merge pull request #2837 from blattms/fix-parallel-average-formation-factors
Fixes parallel computation of average formation factors.
2020-10-06 19:37:12 +02:00
Bård Skaflestad
14e34378b0
Merge pull request #2829 from GitPaean/wip_aquifer_keywords
aquifer summary keywords
2020-10-05 22:51:40 +02:00
Markus Blatt
5553d2d1f3 Renamed variables/functions for number of cells. 2020-10-05 20:02:13 +02:00
Markus Blatt
f791884639 Used std::distance instead of manual for-loop. 2020-10-05 14:31:48 +02:00
Markus Blatt
ca8de16285 Fixes parallel computation of average formation factors.
This was using the sum of the sum of all cells of the partitions.
Hence the shared cells were counted twice.
2020-10-05 14:08:59 +02:00
Kai Bao
ed89f25d1b providing the aquifer data for summary output 2020-10-02 13:13:20 +02:00
Alf Birger Rustad
e68db6dbda Converted to fmt formatting 2020-10-02 12:46:45 +02:00
Alf Birger Rustad
8ecfa1b5db Fix the warning message for tracer model. 2020-10-02 08:56:49 +02:00
Markus Blatt
1109aeecfc
Merge pull request #2825 from blattms/dune-2.7-fixes
Fixes compilation with DUNE 2.7
2020-10-01 16:30:18 +02:00
Markus Blatt
903cde5568
Merge pull request #2820 from atgeirr/serial-partitioning
Add command line parameter --serial-partitioning.
2020-10-01 16:09:49 +02:00
Atgeirr Flø Rasmussen
30cab9dbe6
Merge pull request #2819 from totto82/rocktab
Add support for ROCKTAB
2020-10-01 09:32:31 +02:00
Markus Blatt
6e1f729e8d Work around MPIGuard which is broken in DUNE 2.7.0
Otherwise compilation aborts with:

flow_ebos_gasoil.cpp:(.text+0xa5d0): multiple definition of `Dune::GuardCommunicator::create(ompi_communicator_t* const&)';
2020-09-30 20:34:36 +02:00
Atgeirr Flø Rasmussen
c6203e9bec Add command line parameter --serial-partitioning. 2020-09-29 16:14:45 +02:00
Atgeirr Flø Rasmussen
0096035a97
Merge pull request #2818 from totto82/updateHystTime
Change when hysteresis and vappers are updated
2020-09-29 15:59:56 +02:00
Tor Harald Sandve
4f84ca4716 Add support for ROCKTAB 2020-09-28 20:32:34 +02:00
Tor Harald Sandve
56fc29beb1 move update of hysteresis and vappars from beginEpisode to beginTimestep 2020-09-28 10:02:31 +02:00
Atgeirr Flø Rasmussen
0cdd1eda69
Merge pull request #2812 from totto82/fixBC_2p
fix BC code for 2p simulations.
2020-09-28 09:51:01 +02:00
Atgeirr Flø Rasmussen
e8460b384e
Merge pull request #2804 from totto82/updateAndInvalid
Invalidate and update the intensive quantities at the same time
2020-09-28 09:02:25 +02:00
Atgeirr Flø Rasmussen
b5c5c28c16
Merge pull request #2788 from alfbr/new-defaults
New numerical defaults
2020-09-28 08:57:08 +02:00
hnil
16cd1f0ef3 Removed use of explicit regular falsi.
Use the standard solver from opm-common instead.
2020-09-26 13:07:01 +02:00
Tor Harald Sandve
80fcccdd66 fix 2p BC code 2020-09-25 09:59:45 +02:00
Bård Skaflestad
362c84a01c
Merge pull request #2798 from totto82/outputTemperature
output temperature when TEMP is set
2020-09-24 22:06:20 +02:00
Arne Morten Kvarving
49cc70f49c fixed: avoid deadlocks in parallel if serialization throws 2020-09-24 11:00:37 +02:00
Joakim Hove
2c447ae829
Merge pull request #2805 from akva2/serializer_optional
Optional support in eclmpiserializer
2020-09-24 07:33:16 +02:00
Arne Morten Kvarving
dfd2109665 added: support for std::optional in eclmpiserializer 2020-09-23 12:23:18 +02:00
Tor Harald Sandve
85e25f7e0e Invalidate and update the intensive quantities instead of just invalidate them 2020-09-23 11:39:04 +02:00
Atgeirr Flø Rasmussen
237b281f09
Merge pull request #2802 from blattms/refactor-defunct-wells
Refactored how well information is exported after load balancing.
2020-09-23 08:54:35 +02:00
Markus Blatt
1d94357558 Refactored how well information is exported after load balancing.
Previously, we exported an unordered map containing all names of
wells that are not present in the local part of the grid.

As we envision to have wells that are distributed across multiple
processors, this information does not seem to be enough. We need
to be able to set up communication for each well. To do this we need
to find out who handles perforations of each well.

We now export a full list of well name together with a boolean
indicating whether it perforates local cells (vector of pair of string
and bool).
2020-09-22 20:04:01 +02:00
Markus Blatt
779c7f6012
Merge pull request #2793 from blattms/fix-tran-application
Fixes application of transmissibility modifiers from the edit section.
2020-09-22 19:56:16 +02:00
Kai Bao
897fc77a1d
Merge pull request #2791 from GitPaean/increasing_maxIter
increasing maxIter to 1000 for function satFromPc
2020-09-21 21:18:20 +02:00
Joakim Hove
cc6abb4086
Merge pull request #2796 from joakim-hove/rm-exceptions
Remove unused #include of exceptions
2020-09-21 16:33:19 +02:00
Tor Harald Sandve
ae95570693 output temperature when TEMP is set 2020-09-21 15:35:55 +02:00
Joakim Hove
d9465907be
Merge pull request #2795 from joakim-hove/remove-sim-container
Remove references to unused class SimulationDataContainer
2020-09-21 11:16:37 +02:00
Joakim Hove
0565d6f402 Remove unused #include of exceptions 2020-09-21 11:12:15 +02:00
Joakim Hove
9809dcc804 Remove references to unused class SimulationDataContainer 2020-09-21 07:16:11 +02:00
Bård Skaflestad
fde3c476c3 Chase Group/Node Summary API Update
This is in preparation of adding support for outputting the network
node pressure quantity, GPR, to the summary file.  In particular,
'GroupValues' is renamed to 'GroupAndNetworkValues' and has new
individual datamembers for the former group-level data and the new
node-level data.

Update BlackoilWellModel::groupData() and CollectToIORank
accordingly and bring the parallel restart facility in line with the
new layout.
2020-09-20 22:26:07 +02:00
Kai Bao
775793676c increasing maxIter to 1000 for function satFromPc
it is a temporary fix to make some parallel running easier. We need to
change it manually to make some parallel running pass.
2020-09-17 20:59:58 +02:00
Markus Blatt
6d8621e4df Use TranCalculator to update transmissibilities. 2020-09-17 20:28:17 +02:00
Alf Birger Rustad
345597f5f7 Enable drift compensation 2020-09-16 16:09:14 +02:00
Bård Skaflestad
79f2908277
Merge pull request #2782 from totto82/fixOilWater
Fix oil water for MSW
2020-09-14 20:00:09 +02:00
Bård Skaflestad
e4878addb4
Merge pull request #2727 from totto82/fixUnitSalt
fix output unit salt
2020-09-14 15:46:11 +02:00
Tor Harald Sandve
bcc0a1be69 only output connection saturation for existing phases 2020-09-14 14:44:16 +02:00
Bård Skaflestad
c219b61c65
Merge pull request #2767 from joakim-hove/summary-reg
Started to support summary regions
2020-09-14 11:54:19 +02:00
Joakim Hove
4be8240771 Support alternate FIPxxx regions in region summary keywords
As part of support the RPR__xxx summary keywords the ecloutputblackoilmodule.hh
file hase been refactored significantly:

 - std::optional<> is used to manage the calculate once initial values.

 - several small functions are extracted from the outputFipLog() function.

 - std::array<> is used instead of ScalarBuffer to manage containers over all
   FipTypes.

 - SummaryConfig nodes for the requested summary output is stored in the class.

 - A small struct RegionSum is created to hold the region summed properties.
2020-09-14 11:09:37 +02:00
Tor Harald Sandve
a32f6bbfa8 fix output unit salt 2020-09-14 08:40:24 +02:00
Joakim Hove
03852825d5 White space change 2020-09-10 13:53:39 +02:00
Markus Blatt
c2362daae9 reactive applyMultipliers_(trans, outsideFaceIdx, ..) for PINCH(5)=ALL
Should make the tests succeed.
2020-09-10 10:20:17 +02:00
Markus Blatt
06827bdd17 Apply only MULTZ+ in applyAllZMultipliers_, prepare for PINCH(5)=TOP
For PINCH(5)==ALL, we take the minimum of MULTZ+ and ignore MULTZ-.
We also prepare for PINCH(5)==TOP taking only the toplevel MULTZ+
value.

For non-vertical directions we use both MULTZ+ and MULTZ-
2020-09-10 09:12:34 +02:00
Bård Skaflestad
8033e8fc67
Merge pull request #2781 from blattms/fix_pinchmode_all_parallel_3
fix insideCartElmIdx and outsideCartElmIdx order for faces in parallel (2)
2020-09-09 23:30:24 +02:00
Markus Blatt
d2a2d5074d Rely on insideCartElemIdx<outsideCartElemIdx in allpyAllZMultipliers_
and simpily code under that assumption.
2020-09-09 21:41:52 +02:00
Bård Skaflestad
f771088414
Merge pull request #2779 from joakim-hove/use-make-unique
Use std::make_unique<>
2020-09-08 22:44:57 +02:00
Joakim Hove
c0187ffc73 Use std::make_unique<> 2020-09-08 21:57:26 +02:00
Markus Blatt
ee6044b2e0 Fixes determining whether index of summary keyword is on process.
We used a method isGlobalIdxOnThisRank to determine whether to write
an entry for a summary keyword (like BPR). Unfortunately, this did
exactly what the name suggested, but we actually passed a cartesian
index to it. That meant that a lower cartesian index might have found on
many processes (with different cartesian index and hence resulting in
wrong values), while higher for ones no process would have been found
with it (resulting in writing zeros).

With this commit we store a sorted list of cartesian indices and query
that in the renamed and restructured function isCartesianidxOnThisRank.

Most probably this broke during refactoring.

Closes #2665
2020-09-08 20:44:27 +02:00
Markus Blatt
11f9eb9d88 Base face processing decision of faces on cartesian indices
This will process the same faces in serial and parallel.
Hence it make the silent assumption that we only process faces
from low cartesian index to high cartesian index hold again.

This should fix PINCH MULTZ ALL in parallel.
2020-09-08 11:10:31 +02:00
Joakim Hove
ead673b58a Add report_step argument to UDQConfig::eval() 2020-09-08 07:39:03 +02:00
Bård Skaflestad
399ff94bce
Merge pull request #2752 from joakim-hove/pass-udq-state
Pass the UDQState member when evaluating UDQ
2020-09-03 01:00:03 +02:00
Arne Morten Kvarving
7305f84351 use std::make_unique where applicable 2020-09-02 15:35:39 +02:00
Joakim Hove
d330d883be Pass the UDQState member when evaluating UDQ 2020-09-01 15:09:13 +02:00
Joakim Hove
4b45623333
Merge pull request #2748 from joakim-hove/add-udq-state
Add UDQState argument to output writer
2020-09-01 15:07:21 +02:00
Joakim Hove
c2f7e900b6 Add UDQState argument to output writer 2020-08-31 18:40:39 +02:00
Bård Skaflestad
2bd80947b9 Fix Debug Build
Remove left parenthesis character left over from transitioning to
the type-based parameter system.  The '(' produced a build failure
which only manifested in debug builds.

Thanks to Håkon Hægland for bringing the issue to our attention.
2020-08-31 16:33:52 +02:00
Bård Skaflestad
5392726a8f
Merge pull request #2745 from akva2/no_macro_properties
Continue replacing macros for typetags et al
2020-08-31 13:00:56 +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
Joakim Hove
0fabb02db4 Add vanguard member UDQState 2020-08-27 17:31:39 +02:00
Joakim Hove
f6d2b4fd27
Merge pull request #2737 from joakim-hove/extract-eval-udq
Extract UDQ eval to separate function call
2020-08-27 17:09:33 +02:00
Arne Morten Kvarving
941e4916f8 changed: remove SET_PROP macro usage 2020-08-27 14:02:05 +02:00
Arne Morten Kvarving
7d853d2e05 changed: remove SET_SCALAR_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
fca83318aa changed: remove SET_INT_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
a79c37a041 changed: remove SET_STRING_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
0e71c0e29b changed: remove SET_BOOL_PROP macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
e8248b44ff changed: remove NEW_TYPE_TAG macro usage 2020-08-27 13:01:51 +02:00
Arne Morten Kvarving
914053ac3c changed: remove GET_PROP_VALUE macro usage 2020-08-27 13:01:51 +02:00
Joakim Hove
3c565ef59e Use const_cast< > in variant serialization 2020-08-27 11:01:22 +02:00
Markus Blatt
322bc8d9cc only check deck on process 0 2020-08-27 09:05:09 +02:00
Markus Blatt
c958034d26 Adapt and use readDeck from EclipseBaseVanguard, too.
This reduces code duplication ad should fix the bad_cast exception
when running ebos in parallel.
2020-08-27 09:05:09 +02:00
Markus Blatt
575245d785 Factored out logging setup and deck reading from class Main.
These codes are reimplemented in the ebos simulator and should
be reused, instead. This commit factilitates this and starts
reusing the logging setup code in ebos. Hence reduces code duplication.
2020-08-27 09:05:09 +02:00
Markus Blatt
6b3c6cd7f1 Remove EclBaseVanguard::internal*_ variables.
Before this we had a set of external*_ variabales (unique_ptrs), a set of
internal_*_ variables (unique_ptrs) and another set of pointers that
point to the pointers actually used. That seemed a bit much. With this
commit skip the internal variables and use unique_ptrs for all
others. In the constructor either the external*_ gets moved or the
objects are directly created as unique_ptrs.
2020-08-27 09:05:09 +02:00
Markus Blatt
1300139eea Use make_unique to create unique_ptrs with exception safety. 2020-08-27 09:05:09 +02:00
Markus Blatt
75104fd310 Move to more consistent ownership of ECL data in EclBaseVanguard
We resort to consistently use unique_ptrs in EclBaseVanguard for
the data read from ECL files or set externally. This means that
during the simulation EclBaseVanguard owns this data and not Main
or the ebos setup functions. This ownership transfer becomes
transparent due to std::move.

This came up when trying to fix the parallel runs of ebos and during
that removing some code duplication.
2020-08-27 09:05:09 +02:00
Arne Morten Kvarving
74fac38d85 changed: remove GET_PROP_TYPE / GET_PROP macro usage 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving
82a35e53b7 changed: remove TTAG macro calls 2020-08-27 08:19:39 +02:00
Arne Morten Kvarving
8148a81ed0 changed: replace EWOMS_RESET_PARAMETERS macro calls 2020-08-26 10:50:34 +02:00
Bård Skaflestad
9829bfd61a
Merge pull request #2733 from joakim-hove/serialize-variant
Serialize variant
2020-08-25 23:10:18 +02:00
Joakim Hove
cc32189a2e Handle serialization of std::variant<T0,T1> 2020-08-25 22:37:24 +02:00
Joakim Hove
c7b68482f3 Extract UDQ eval to separate function call 2020-08-25 16:33:30 +02:00
Arne Morten Kvarving
70908d9017 changed: remove BEGIN_PROPERTIES/END_PROPERTIES macro usage 2020-08-21 15:50:35 +02:00
Tor Harald Sandve
9d72b6ad1a clean-up saltved implementation based on code review 2020-08-18 11:04:39 +02:00
Tor Harald Sandve
491b532a6a Add trivial saltvd table for cases without saltvd given in the deck 2020-08-18 10:55:43 +02:00
Tor Harald Sandve
bd9186b41d implement Saltvd 2020-08-18 10:55:43 +02:00
Kai Bao
11807747cb renaming solveWellEqUntilConverged to be iterateWellEquations 2020-08-11 09:10:19 +02:00
Tor Harald Sandve
fc45b1bd47 Add inner iterations for standard wells also 2020-08-11 09:10:19 +02:00
Bård Skaflestad
8c8635d221 Cell Data: Don't Warn About Supported Output Directives
This commit ensures that we don't issue misleading warning about
output creation directives such as

    BASIC
    FREQ
    RESTART

that could be, and typically are, put into keywords like RPTRST and
RPTSCHED.  Previously, we would interpret these directives as names
of cell vectors and we would get very confusing diagnostic messages
of the form

    Keyword 'BASIC' is unhandled for output to file

which suggests that 'BASIC' is unsupported despite the output system
supporting the directive for quite some time.  While here, also
apply the same reasoning to the vectors we always output such as
SWAT, SGAS, or PRESSURE.
2020-07-28 13:36:25 +02:00
Joakim Hove
8f78a15938 Add WListManager argument when constructing ActionContext 2020-07-09 07:30:37 +02:00
Bård Skaflestad
47d4a5087f
Merge pull request #2698 from totto82/applyPVTWsalt
Pass the salt concentration to the water PVT
2020-07-08 09:32:51 +02:00
Joakim Hove
b9b1e734cb Add data::GroupValues member to RestartValue 2020-07-04 10:06:03 +02:00
Tor Harald Sandve
88ee892fdf pass the saltConcentration to the waterPVT 2020-07-02 13:44:01 +02:00
Bård Skaflestad
5bb4321824 Simulator Group Data: Chase Upstream API Update
This commit makes the 'groupData()' function return a

    map<string, Opm::data::GroupData>

object instead of a

    map<string, Opm::data::GroupConstraints>

object.  The 'GroupData' structure adds a level of indirection to
the current per-group summary quantities that are directly assigned
by the simulator.  While here, also move the assignment of the
current group constraints/control values out to a separate helper
to reduce the body of the per-group loop in 'groupData()'.

This is in preparation of adding support for reporting group-level
production/injection guiderates (Gx[IP]GR) to the summary file.
2020-07-01 22:52:26 +02:00
Bård Skaflestad
7cf035da80 EclWriter: Refactor Cell Loop out to Helper Function
That way we can use the same code for both the 'writeOutput' and
the 'evalSummaryState' member functions.  While here, also change
the declared types of 'wellData' and 'groupData' to 'auto' in
preparation of API updates for collecting group- and well level
guiderate data.

Finally, apply 'const' where possible.
2020-06-27 21:14:09 +02:00
Joakim Hove
b52366926a Add Action::State member to EclPropblem and pass it to io/ActionX 2020-06-17 12:25:03 +02:00
Bård Skaflestad
0310fa4edf
Merge pull request #2673 from blattms/fix-tranyxyz-sub-3D
[bugfix] Fix TRANXYZ for problems with less than 3 dimensions.

Also subsumes and closes #2150.
2020-06-15 17:15:48 +02:00
Markus Blatt
2e9cfffea6 Fix TRANXYZ for problems with less than 3 dimensions.
Up to now We always assumed that cardDims[i]>1 holds. which it does for most
of the cases. But when e.g. simulating a vertical stack of 5 cells
flow would report the transmissibilities in the Z direction in TRANX
and output TRANZ as zero. Similar problems should be there for 2D grids.

With this commit we actually check whether there can be neighbours in
the X and Z direction to prevent this behavior.
2020-06-15 10:40:26 +02:00
Arne Morten Kvarving
44bec2d7db changed: delay deck dereference
this was harmless unless enableExperiments was given, since
the deck ref is not used otherwise, but it caused an UBSAN issue
when run in parallel.
2020-06-15 09:50:06 +02:00
Joakim Hove
754f74df01 Adapt variant serialization to four types 2020-06-12 07:21:46 +02:00
Joakim Hove
a1306a62fc Add serialization of std::variant<T1,T2,T3> 2020-06-10 20:41:14 +02:00
Atgeirr Flø Rasmussen
cdbbdd828e Always create proper case name.
Without this, rank 0 gets an empty case name, resulting in
buggy VTK output with filenames containing the genereric stem
"sim" rather than the case name as stem.
2020-05-29 10:28:42 +02:00
Atgeirr Flø Rasmussen
20c63f9f49
Merge pull request #2624 from OPM/fix/adapt-to-propertysystem-changes
adapt to changes in the property system
2020-05-28 12:05:17 +02:00
Joakim Hove
fd8c79b668 Default to initialize from restart file in case of restarted run 2020-05-21 10:15:20 +02:00
Bernd Flemisch
21df1cbe31 [properties] adapt to changes in the property system
`NEW_PROP_TAG` is now a definition and not just a declaration.
Eliminate superfluous declarations, include headers with definitions.
Make one necessary forward declaration explicit.
2020-05-18 15:54:26 +02:00
Kai Bao
93655244ce increasing the max iteration number for statFromPc
when doing the equilibration.
2020-04-30 12:12:58 +02:00
Bård Skaflestad
b288602dfc Equilibration: Add Experimental Support for Horizontal Subdivision
This commit adds a very early, alpha-quality implementation of the
"horizontal subdivision" strategy (N < 0) of the EQUIL directive.
This in turn enables more accurate derivations of the initial fluids
in place.

Interactions with SWATINIT are completely untested, and the initial
Rs/Rv derivations in this context are possibly incomplete.  More
work is likely needed in this area, but this does at least enable
more widespread testing.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
4b04a36a2f Initial State Calculator: Prune Unneeded Steps and Variables
In particular, remove unneeded function parameters and don't form a
per-cell PVT zero-based index when we're not going to use the
values.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
f0ed53a6f1 Vertical Extent: Prune Unneeded 'cellcount' Parameter
The purpose of this function is to determine the vertical extent of
a set of cells.  Counting the number of cells in the region is not
its responsibility.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
6292855bd5 Initial State Calculator: Refactor Cell Loop
This commit splits out the per-cell initial state derivation to two
separate helper functions, equilibrateCellCentres() and cellLoop().
The latter manages the per-cell assignments to pertinent data
members and calls an arbitrary "equilbration method" that is
provided as a callback and which calculates per-cell phase
pressures, phase saturations and mixing ratios (Rs/Rv).

In turn, the equilibrateCellCentres() uses the cellLoop() to affect
the existing equilibration procedure within a cell using values at
the depths of the cell centres only.
2020-04-22 20:10:19 +02:00
Bård Skaflestad
fd2d8536eb Refactor Phase Saturation Derivation Procedure
This commit introduces a new helper class,

    Opm::EQUIL::Details::PhaseSaturations<>

that subsumes the responsibility of the existing helper function

    Opm::EQUIL::phaseSaturations<>()

and generalises that functionality to arbitrary depth points within
single cells.  This is in preparation of adding support for the N<0
case of the initial fluid in place procedure defined in the EQUIL
keyword.  The class consumes an already equlibrated pressure table
for the pertinent equilibration region, calculates capillary
pressure values and inverts Pc curves to derive saturation values.
If the capillary pressure curves are constant within a cell, then a
simple depth consideration with respect to the implied sharp phase
interface is used to derive saturation values.  We also preserve
existing support for SWATINIT-type initialisation of the water
saturation field.

Switch InitialStateComputer<>::calcPressSatRsRv() over to using the
pressure and saturation helper classes instead of the original
helper functions since this provides additional control.  Also
remove those helper functions to reduce risk of confusion over which
method to use.  Update the unit tests accordingly.
2020-04-14 23:01:02 +02:00
Bård Skaflestad
d039a1d60e Basic Equilibration: Prepare for Subdivision Strategy
This commit is the first step of several that implements ECLIPSE's
"accurate fluid-in-place" model initialization procedure based on
subdividing the vertical range/extent of individual cells.  This
first step puts the O/G/W phase-pressure calculation into a helper
class,

    Opm::EQUIL::Details::PressureTable<>

through which phase pressure values can be calculated at abritrary
depths rather than just at the cell centre depths.  In other words,
this helper class extends and subsumes the responsibilities of the
existing helper functions

    Opm::EQUIL::Details::PhasePressure::assign()
    Opm::EQUIL::Details::PhasePressure::oil()
    Opm::EQUIL::Details::PhasePressure::gas()
    Opm::EQUIL::Details::PhasePressure::water()

We still use the same ODE-based evaluation procedure for the phase
pressures and the equilibrateOWG() helper function still computes
the phase pressure values at cell centre depths only.

That, in turn, corresponds to the "N = 0" case (steady state) of the
basic equilibration facility.
2020-04-14 23:01:02 +02:00
Joakim Hove
5a09624ad6 Add call to evaluate PYACTION in eclproblem::applyActions() 2020-04-14 08:48:32 +02:00
Joakim Hove
76111897a6 MOve String utility in opm-common 2020-04-04 16:28:16 +02:00
Bård Skaflestad
74368c5f98
Merge pull request #2452 from blattms/use-region-temperature-cleaned
Use correct region temperature when calculating RS/RV
2020-04-02 15:08:53 +02:00
Alf Birger Rustad
62f5ba95b4 Enable owner first ordering by default 2020-04-01 12:58:59 +02:00
Joakim Hove
d6a1d3029e Use std::shared_ptr for Python handle to Schedule 2020-03-31 12:28:07 +02:00
Arne Morten Kvarving
a456b7dff5 fixed: broadcasting an int and receiving as a size_t is a very bad idea
pointy-hat: me
2020-03-30 11:48:00 +02:00
Joakim Hove
30216212c4 Add Python argument to Schedule constructor 2020-03-26 10:15:07 +01:00
Joakim Hove
54cd4f96f7
Merge pull request #2496 from akva2/tracers_from_state
Use tracers from EclipseState
2020-03-25 10:17:56 +01:00
Arne Morten Kvarving
5fd85c1446
Merge pull request #2497 from akva2/deck_avoid
Avoid deck usage in simulator
2020-03-24 08:28:21 +01:00
Arne Morten Kvarving
1424b8e859 changed: use Deck unit system from EclipseState
to avoid deck usage in simulator
2020-03-23 15:54:48 +01:00
Arne Morten Kvarving
b3bf3c58b2 changed: use TracerConfig from opm-common 2020-03-23 15:52:53 +01:00
Arne Morten Kvarving
55ad96a067 use TracerVdTable from opm-common 2020-03-23 15:50:13 +01:00
Atgeirr Flø Rasmussen
56222d4350 Make is_ptr() for unique_ptr handle two template parameters. 2020-03-23 13:36:07 +01:00
Atgeirr Flø Rasmussen
652c7d239b Simplify ptr(), avoiding a template template parameter.
Since unique_ptr<T, Deleter> takes two arguments it cannot strictly
speaking be used via a template template parameter that takes one,
even though the second has a default. GCC allows this anyway, but
not clang.
2020-03-23 11:55:45 +01:00
Arne Morten Kvarving
7775a665d0
Merge pull request #2485 from akva2/i_want_no_deck_dammit
fixed: double-parsing of the deck
2020-03-20 11:17:06 +01:00
Bård Skaflestad
fda4a29c7e
Merge pull request #2459 from jalvestad/group_constraints_summary
Make available current Production/Injection Group Control parameters for use in  Restart
2020-03-19 16:54:34 +01:00
Arne Morten Kvarving
595f601b2c fixed: double-parsing of the deck
externalDeck = nullptr -> internalDeck was parsed.
i have no idea why we have this external/internal deck in the first place.
2020-03-19 14:50:34 +01:00
Jostein Alvestad
35d5269ffa removed unused object opm::data::Group from eclwriter.hh 2020-03-19 14:19:21 +01:00
Markus Blatt
0970867e47
Merge pull request #2484 from akva2/janitoring
avoid potentially uninitialized warnings in serial
2020-03-19 13:07:08 +01:00
Arne Morten Kvarving
42a2d22d89 avoid potentially uninitialized warnings in serial
this was actually broken by an upstream change from return-by-reference
to return-by-value, but we were lucky, the return value was
kept in memory until end of block it seems.
2020-03-19 10:14:04 +01:00
Arne Morten Kvarving
4c5f9f2241 add doxy to eclmpiserializer 2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
59d1ff9b88 updates in EclMpiSerializer to avoid explicit instances in serializer
now the serializer is 'standard', as in we only require basic types
+ stl containers. this should make the actual implementation pretty
pluggable. will ease replacing our serialization routines
with those in Dune 2.7 later.
2020-03-19 09:31:52 +01:00
Arne Morten Kvarving
c86cfbd83a add complexType template parameter to EclMpiSerializer::vector
set to false if vector contains a type without a serializeOp
2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
638a53ac88 add support for unique_ptr in EclMpiSerializer 2020-03-19 09:31:07 +01:00
Arne Morten Kvarving
f0bc3e3815 add bool parameter ComplexType to EclMpiSerializer::map
this is passed on to the serializeOp template for the underlying
type. used with maps over DynamicState where DynamicState is over
a non-complex type.
2020-03-19 09:31:07 +01:00
Jostein Alvestad
7654972db4 corrected for unused parameters in eclwellmanager - groupData 2020-03-19 08:44:46 +01:00
Arne Morten Kvarving
13639cdace add isSerializing member to eclmpiserializer
sometimes it is necessary to know in user code
2020-03-17 08:19:44 +01:00
Arne Morten Kvarving
5eb2ec30a5 add map handler to eclmpiserializer 2020-03-16 20:52:17 +01:00
Arne Morten Kvarving
30cac6b648 add shared_ptr handling in eclmpiserializer 2020-03-16 20:52:17 +01:00
Joakim Hove
65f4635e20
Merge pull request #2464 from joakim-hove/relperm-diag-no-deck
Relperm diag no deck
2020-03-16 13:28:44 +01:00
Arne Morten Kvarving
fe2437e67e add pair handling in eclmpiserializer::vector 2020-03-16 11:44:13 +01:00
Arne Morten Kvarving
6fee426bfc remove static assert in vector handler of eclmpiserializer
std::is_pod is too generic
2020-03-16 10:49:42 +01:00
Jostein Alvestad
6a659339f1 various corrections to code and coding style 2020-03-16 10:39:56 +01:00
Jostein Alvestad
277e5bc39d corrections to groupData(..) in eclwellmanager.hh 2020-03-16 10:39:55 +01:00
Jostein Alvestad
4006319ff7 further changes to report currentStatusGroupControls to Summary 2020-03-16 10:39:52 +01:00
Jostein Alvestad
0dcacb41d4 intial changes to add current group controls to summary 2020-03-16 10:39:51 +01:00
Arne Morten Kvarving
3180974e63
Merge pull request #2471 from akva2/fix_no_mpi
fixed: do not build ParallelRestart test without MPI
2020-03-13 17:53:59 +01:00
Arne Morten Kvarving
c40c733a57 fixed: build without MPI 2020-03-13 17:52:37 +01:00
Markus Blatt
e65f6c02bb
Merge pull request #2220 from andrthu/owners-first
[For testing] Enable "owners first" ordering. Altered SpMV, SP and ILU.
2020-03-13 17:48:22 +01:00
Arne Morten Kvarving
654fae05a4 adjust for SummaryNode -> SummaryConfigNode rename 2020-03-13 15:56:33 +01:00
andrthu
3d0d0f9624 Remove GhostLast ILU 2020-03-13 15:03:31 +01:00
Arne Morten Kvarving
91e9d952d8 added: handler for vectors in eclmpiserializer
this shall be used by users when they have a vector of types
with a serializeOp template. it cannot (at least not right now)
be part of the regular operator() as some vectors should go
directly to the underlying serializer (trivial types).

we can possibly find some traits magic for this later.
2020-03-13 14:09:17 +01:00
Joakim Hove
8473aa38e5 Remove Deck argument to RelpermDiagnostic 2020-03-13 08:54:30 +01:00
andrthu
c91eb330d3 remove 2.6 and move ownerFirst in lb 2020-03-11 12:42:55 +01:00
andrthu
866a661255 New owners-first based linear algebra operations (SoMV, SP and ILU.apply). 2020-03-11 12:41:38 +01:00
andrthu
1fb0860712 add ownersFirst arguments. Change loadBalance to match change in opm-grid. 2020-03-11 12:41:37 +01:00