Commit Graph

13768 Commits

Author SHA1 Message Date
Tong Dong Qiu
1583292bf4 Move opencl kernels to static class 2021-11-04 14:25:22 +01:00
Tong Dong Qiu
b8587daaa7 Move ChowPatel decomposition to appropriate file 2021-11-04 13:58:06 +01:00
Bård Skaflestad
869de90b56
Merge pull request #3663 from blattms/remove-warn-opencl
Fixes warning about catching polymorphic type by value.
2021-11-03 18:30:57 +01:00
Markus Blatt
02bbe995c3 Fixes warning about catching polymorphic type by value.
Removed message in amgclbackend was:
warning: catching polymorphic type ‘class
boost::property_tree::json_parser::json_parser_error’ by value
[-Wcatch-value=]
2021-11-03 18:07:56 +01:00
Tor Harald Sandve
f755cc3be1
Merge pull request #3645 from totto82/fixNoWellReduction
Adjust reduction rate when well control is considered for GRUP
2021-11-03 15:32:18 +01:00
Bård Skaflestad
2971a3f051
Merge pull request #3659 from joakim-hove/refactor-wellstate-init
Refactor wellstate init
2021-11-03 13:16:34 +01:00
Joakim Hove
44ad5ab190 Remove superfluos is injector or producer test 2021-11-03 12:35:28 +01:00
Joakim Hove
05317e1d72 Extract functionality to update target rates to SingleWellState 2021-11-03 12:30:40 +01:00
Joakim Hove
5a986ee430 Move updateStatus functionality to SingleWellState 2021-11-03 12:30:40 +01:00
Joakim Hove
53dba36513 Move resetConnectionFactor to SingleWellState 2021-11-03 12:30:40 +01:00
Tor Harald Sandve
a57374fae9 Adjust reduction rate when well control is considered for GRUP
The reduction rate is computed differently for cases without wells under GRUP
For a well to check whether to switch to GRUP it needed to use the reduction rate
that would have been computed if this particular well was under GRUP control
and thus recompute the reduction rate without entering the no-grup path
2021-11-03 11:42:18 +01:00
Joakim Hove
743e14583a
Merge pull request #3661 from joakim-hove/equil-finite-check
Replace numerical assert check with std::isfinite() and throw
2021-11-03 11:42:15 +01:00
Atgeirr Flø Rasmussen
0dc743421e
Merge pull request #3662 from atgeirr/fix-extra-mpi-init
Remove extra MPI initialization.
2021-11-03 09:19:03 +01:00
Atgeirr Flø Rasmussen
c8828ad43b Remove extra MPI initialization.
Initialization is now done in the Main::initMPI() method.
For configurations with dune-fem, this also caused crashes
with dune-fem versions prior to 2.8.
2021-11-02 20:35:20 +01:00
Bård Skaflestad
4a74fd1282
Merge pull request #3633 from bska/accumulate-wxxgr-for-all-gcon-wells
Report Well Level Injection Guide Rates if Group Controlled
2021-11-02 17:59:58 +01:00
Joakim Hove
dec387d95d Replace numerical assert check with std::isfinite() and throw 2021-11-02 17:04:48 +01:00
Bård Skaflestad
1e34d714bf Report Well Level Production Guide Rates if Group Controlled
This commit extends the guide rate reporting to always extracting
and reporting pertinent production guide rates at the well level
(i.e., WxPGR) if at least one of the groups in the well's upline has
an entry in GCONPROD.  This is for increased compatibility with
ECLIPSE.
2021-11-02 16:19:56 +01:00
Bård Skaflestad
0c70eac490 Report Well Level Injection Guide Rates if Group Controlled
This commit uses the new GroupTreeWalker helper class to ensure that
we always extract and report pertinent injection guide rates at the
well level (i.e., WxIGR) if at least one of the groups in the well's
upline has an entry for the corresponding phase in GCONINJE.  This
is for increased compatibility with ECLIPSE.

Prior to this change we would report zero-valued WWIGR vectors on a
real field case which made analysing simulation results needlessly
difficult.
2021-11-02 16:19:56 +01:00
Bård Skaflestad
2b0aa379f5 Extract Group Tree Walk to Helper Class
This commit extracts a helper class, GroupTreeWalker, from the
current implementation of 'calculateAllGroupGuiderates()'.  This is
in preparation of adding a similar approach to extracting WxIGR for
all wells for which at least one group in the upline has an entry in
GCONINJE.

The user can add visitor operations for wells and groups, typically
with side effects, and then choose whether to run a pre-order walk
(visit groups before their children) or a post-order walk (visit
children-i.e., wells, before their parents).
2021-11-02 16:19:56 +01:00
Atgeirr Flø Rasmussen
2cf78c6da0
Merge pull request #3660 from atgeirr/remove-redundant-class
Remove ISTLSolverEbosFlexible and flow_blackoil_dunecpr.
2021-11-02 15:32:53 +01:00
Atgeirr Flø Rasmussen
5503e6ca06 Remove ISTLSolverEbosFlexible and flow_blackoil_dunecpr.
The class ISTLSolverEbos has all features of the removed class, and
is not much more complex. The flow_blackoil_dunecpr is the only
program using it, and is redundant.
2021-11-02 15:02:48 +01:00
Markus Blatt
932ddcd32d
Merge pull request #3652 from akva2/use_opencl_hpp
changed: probe for cl/opencl.hpp and use if found
2021-11-02 09:31:05 +01:00
Arne Morten Kvarving
7de50b94c7 changed: probe for cl/opencl.hpp and use if found
this to avoid a spam of warnings
2021-11-01 19:41:05 +01:00
Joakim Hove
101b277bfe
Merge pull request #3642 from joakim-hove/remove-groupstate-dump
Remove debugging aid GroupState::dump
2021-11-01 17:51:32 +01:00
Joakim Hove
5336822242 Remove unused utility class PhasePresence 2021-11-01 17:06:50 +01:00
Joakim Hove
bcdc974585 Create PhaseUsage constructor 2021-11-01 17:04:42 +01:00
Joakim Hove
ec780676e2 Split initSinglewell for producer and injector 2021-11-01 16:02:34 +01:00
Joakim Hove
d213bc9d78 Initialize static perforation data in SingleWellState constructor 2021-11-01 16:02:34 +01:00
Joakim Hove
6c16b5dbb8 Move variable to local scope 2021-11-01 16:02:34 +01:00
Joakim Hove
93218b05c2 Use multiple returns in init single well 2021-11-01 16:02:34 +01:00
Joakim Hove
2527970d11 Replace two assert() with one throw 2021-11-01 16:02:34 +01:00
Joakim Hove
029d1794f8 Remove local variable 2021-11-01 16:02:34 +01:00
Joakim Hove
807ac101d8 Add name member to SingleWellState 2021-11-01 16:02:34 +01:00
Joakim Hove
03cf7b0327 Move updateStatus functionality to SingleWellState 2021-11-01 16:02:31 +01:00
Atgeirr Flø Rasmussen
624d8b1343
Merge pull request #3651 from akva2/remove_gcc7_compat
use std::filesystem directly
2021-11-01 15:30:03 +01:00
Joakim Hove
129288b2bd Add operator[] to WellState 2021-11-01 13:47:40 +01:00
Joakim Hove
ab63d14bcd Remove debugging aid GroupState::dump 2021-11-01 13:47:36 +01:00
Arne Morten Kvarving
903b5462aa
Merge pull request #3650 from akva2/remove_ebos
Remove ebos
2021-11-01 13:38:02 +01:00
Joakim Hove
d150f400fe Move code from WellState to SingleWellState 2021-11-01 13:23:17 +01:00
Atgeirr Flø Rasmussen
5f81b77d14
Merge pull request #3639 from blattms/dune-fem-master
Fixes compilation with dune-fem 2.8
2021-11-01 13:10:17 +01:00
Arne Morten Kvarving
39a94863a0 remove ebos 2021-11-01 13:08:40 +01:00
Atgeirr Flø Rasmussen
16eafcca04
Merge pull request #3649 from akva2/separate_flow_binaries
changed: build separate simulator binaries for flow
2021-11-01 13:07:07 +01:00
Arne Morten Kvarving
06bd25575f use std::filesystem directly 2021-11-01 12:31:58 +01:00
Atgeirr Flø Rasmussen
fa3b619ec9
Merge pull request #3644 from blattms/use-cl2.hpp
[enhancement][opencl} Use cl2.hpp instead of cl.hpp (missing on bullseye)
2021-11-01 10:10:30 +01:00
Arne Morten Kvarving
9395c74b3e changed: build separate simulator binaries for flow
this is very convenient during development.
we can then remove the FLOW_BLACKOIL_ONLY option,
as it is no longer needed - use the flow_blackoil binary instead.
however we need to keep this support in Main.hpp due to the python
bindings relying on it.
2021-11-01 09:31:09 +01:00
Bård Skaflestad
1a80378b0a
Merge pull request #3613 from bska/accumulate-guiderate-once
Switch Guide Rate Accumulation to Post-Order Traversal
2021-10-29 22:29:13 +02:00
Bård Skaflestad
767b5ca58b Switch Guide Rate Accumulation to Post-Order Traversal
This guarantees, under the assumption that the group tree does not
have cycles, that we do not accumulate group-level guide rate values
until all of its children are fully evaluated.  We use an iterative
depth-first post-order tree traversal with an explicit stack instead
of a recursive implementation.

The previous implementation, which tried to do the same kind of
child-to-parent accumulation, might visit a parent group multiple
times which in turn might lead to losing updates.  This is a more
formalised approach to the value accumulation than was originally
employed.
2021-10-29 21:21:49 +02:00
Bård Skaflestad
b94a6e290d
Merge pull request #3632 from bska/create-micp-helper
Separate MICP Case Out to Helper Function
2021-10-29 21:17:40 +02:00
Bård Skaflestad
f212c946c7 Separate MICP Case Out to Helper Function
In keeping with the other simulation cases.
2021-10-29 16:15:44 +02:00
Atgeirr Flø Rasmussen
fe8df97266
Merge pull request #3637 from akva2/fix_mpiabort_no_input_case
changed: special case no input deck given handling
2021-10-29 15:35:35 +02:00