Commit Graph

217 Commits

Author SHA1 Message Date
Tor Harald Sandve
095c0457bc Code improvment for the group control switching
Pass the controls as enums not strings
Avoid pair as key in map
2024-12-06 13:56:00 +01:00
Tor Harald Sandve
128e80ec7a Maximum allowed oscillation for groups part 2
Set a parameter for maximum allowed oscillation of group controls
The parameter is only used for iter > nupcol
2024-12-04 09:17:46 +01:00
Tor Harald Sandve
73a28a7abb Maximum allowed oscillation for groups part 1 2024-12-03 09:21:38 +01:00
Tor Harald Sandve
42e17219b6
Merge pull request #5724 from totto82/changeNUPCOL
Changes in how the simulator handles NUPCOL
2024-12-02 10:29:09 +01:00
Tor Harald Sandve
d0bcf54b00
Merge pull request #5767 from totto82/network_sub_iter
Network sub iter
2024-11-27 15:48:12 +01:00
Tor Harald Sandve
93206349c8 Add sub iterations for balancing the network 2024-11-27 14:21:05 +01:00
Vegard Kippe
74fa148cd7 Support GCONSUMP on multiple levels in the group hierarchy 2024-11-25 22:26:24 +01:00
Tor Harald Sandve
b32e2f6b32 Guard against small rates in fraction calculation 2024-11-25 15:44:28 +01:00
Stein Krogstad
ef14bf6e45 fix typos 2024-11-25 11:15:43 +01:00
Stein Krogstad
cf877332ab Subtract reduction rate when checking higher group constraints 2024-11-25 11:15:43 +01:00
Tor Harald Sandve
554acb4019 Also update REIN if REIN changes significantly 2024-11-25 08:39:43 +01:00
Tor Harald Sandve
120416f358 dont shut well with GRUP control that struggles to converge 2024-11-22 11:05:08 +01:00
Tor Harald Sandve
71614ea5b0 Add parameter --nupcol_group_rate_tolerance to be able to set the relative tolerance. Default is 0.001 2024-11-20 17:46:31 +01:00
Tor Harald Sandve
7639450ce1 Update VREP even for iter > nupcol if VREP changes significant 2024-11-20 17:46:31 +01:00
Bård Skaflestad
0240922cf4 Handle WELPI from ACTIONX Separately From Constraints
This commit switches to using the 'welpi_wells' information from the
SimulatorUpdate structure as a basis to decide the wells for which
it is safe/sufficient to update only the CTFs in response to an
ACTIONX block running WELPI.  To this end, we split the actions of
the existing member function updateEclWells() into two parts,

  1. updateEclWellsConstraints()
  2. updateEclWellsCTFFromAction()

in which the first handles well status and well control updates
while the second deals with CTF updates in response to WELPI.  We do
not run the second part if the well structure has changed--e.g., due
to COMPDAT or WELOPEN--since the update loop depends on a static
connection topology.

We add a new member function wellUpdateLoop() which will traverse a
sequence of well names and invoke a loop body on those wells which
exist in wells_ecl_.  This collects common operations needed for
both the constraints and the CTF updates.
2024-10-29 14:06:08 +01:00
Vegard Kippe
ca9cad3f07 Properly update multipliers after cleaning, and ensure that the cleaning occurs before the multipliers are applied to the well. 2024-10-07 19:35:10 +02:00
Vegard Kippe
e19063d957 Fix 'off-by-a-step' error in filter cake cleaning + refactor slightly 2024-10-07 19:35:10 +02:00
Bård Skaflestad
5914744f7c
Merge pull request #5546 from totto82/fix_no_wells
BUGFIX Fix no wells case
2024-08-21 09:36:16 +02:00
Tor Harald Sandve
e584e05435 Fix shut wells case for output of gas mass injected rates 2024-08-21 08:50:57 +02:00
Arne Morten Kvarving
bc1fd4f01c BlackoilWellModelGeneric: optionally instantiate for float
BlackoilWellModelRestart: optionally instantiate for float
these need to be in the same commit due to circular dependencies
2024-08-20 12:31:07 +02:00
Arne Morten Kvarving
dcbd1c7baf BlackoilWellModelGeneric: convert input data to appropriate Scalar type 2024-08-20 12:31:07 +02:00
Lisa Julia Nebel
f59fb57d4b Fix two tests for opening new well connections in an ACTIONX with the keyword COMPDAT 2024-08-16 10:16:04 +02:00
Tor Harald Sandve
25b56c39aa Pass gas mass rate to summary 2024-08-14 09:01:10 +02:00
Markus Blatt
9dbaad2b3e
Merge pull request #5423 from blattms/bugfix/mswell-exceptions-are-problems
Only indicate problems for exceptions whem updating well potentials,
2024-06-20 14:33:17 +02:00
Markus Blatt
58ede5e789 Only indicate problems for exceptions whem updating well potentials,
Nearly all exceptions throw when computing well potentoals will not
abort the simulator but result in timestep chops. Hence those should not be
counted as errors (e.g. by calling the OPM_*THROW* macros) and be
reported in the PRT file.

This change will cause at least two more  occurences (in
MSWellHelpers) to be treated as problems. For this we added a new
helper function.
2024-06-12 14:25:37 +02:00
Svenn Tveit
adc36d64a5 Output rates to multisegment wells 2024-06-10 14:50:55 +02:00
Bård Skaflestad
151de07fa7 Collect Well Level Control Limits/Targets for Summary Output
This commit adds a new stage to the wellData() report function,
assignWellTargets(), which collects the numerical values of the
currently active limits/targets for summary file output purposes.
It is important that we collect these values strictly before we
start mutating the SummaryState object lest user-defined arguments
in keywords like WCONPROD be evaluated seemingly too soon.
Furthermore, it is faster to collect these values on the simulator
side and send them to the I/O rank for file output than to defer the
full calculation to the I/O rank.
2024-06-06 09:13:57 +02:00
Kai Bao
e968da28bb renaming calcRates to calcResvCoeff
and calcInjRates to calcInjResvCoeff.
2024-05-29 22:29:12 +02:00
Atgeirr Flø Rasmussen
6a7e1e08c0 Avoid memory leak from the *unique_ptr<X>.release() antipattern. 2024-05-28 16:49:08 +02:00
Arne Morten Kvarving
16f5290038 ParallelWellInfo: template Scalar type 2024-05-22 09:48:22 +02:00
Arne Morten Kvarving
11b5ba3f18 WellInterfaceGeneric: template Scalar type 2024-05-14 10:26:58 +02:00
Arne Morten Kvarving
772b00bc19 GasLiftGroupInfo: template Scalar type 2024-04-24 15:31:13 +02:00
Arne Morten Kvarving
f0e7f8842b BlackoilWellModelGeneric: template Scalar type 2024-04-23 11:33:33 +02:00
Arne Morten Kvarving
3d381bac91 BlackoilWellModelGuideRates: template Scalar type 2024-04-22 15:39:51 +02:00
Arne Morten Kvarving
77f9692277 BlackoilWellModelConstraints: template Scalar type 2024-04-22 15:39:51 +02:00
Arne Morten Kvarving
ddd61f4176 BlackoilWellModelRestart: template Scalar type 2024-04-22 15:39:51 +02:00
Arne Morten Kvarving
aa03d06c4d WellGroupHelpers: template Scalar type 2024-04-19 11:28:40 +02:00
Arne Morten Kvarving
7354bc6371 GroupEconomicLimitsChecker: template Scalar type 2024-04-17 11:21:34 +02:00
Arne Morten Kvarving
be57843296 WellState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
ab0e696709 SingleWellState: template Scalar type 2024-04-17 11:12:40 +02:00
Tor Harald Sandve
2210b523e4 Close worst-offending well based on ratio between violated and preferred phase 2024-04-03 09:16:39 +02:00
Tor Harald Sandve
920ad68782 Implement WELL as group limit action
And remove G as unsupported option in WTEST
2024-04-03 08:51:09 +02:00
Bård Skaflestad
4a87dcf5f3 Use In-place Construction of PerforationData Objects
This is (slightly) faster than construct + copy.
2024-03-19 09:16:23 +01:00
Arne Morten Kvarving
c5eb0816e6 fixed: we need to call loadRestartData on all processes
we need to read in group data even if there are no
local wells
2024-03-12 11:08:07 +01:00
Stein Krogstad
a9ab62e6b8 Don't set lower bound on network update 2024-01-26 14:58:06 +01:00
Bård Skaflestad
0b2c396a01
Merge pull request #4961 from vkip/network_restart_use_node_pressures
Use network pressures from restart
2023-11-15 09:46:35 +01:00
Vegard Kippe
4ce9c41a37 Replacing loop by assignment 2023-11-10 09:01:09 +01:00
Bård Skaflestad
16c8184e3f
Merge pull request #4914 from vkip/extra_network_output
Allow output of network pressures based on rates at end of time step
2023-11-09 23:19:48 +01:00
Kai Bao
25b007c46e
Merge pull request #4945 from vkip/network_reroute
Network reroute - avoid looking up nonexisting nodes
2023-11-08 19:59:40 +01:00
Bård Skaflestad
abfb5c9d82 Update Well Topology if Triggered From ACTIONX
This commit adds a new flag data member,

    wellStructureChangedDynamically_

to the generic black-oil well model.  This flag captures the

    well_structure_changed

value from the 'SimulatorUpdate' structure in the updateEclWells()
member function.  Then, in BlackoilWellModel::beginTimeStep(), we
key a well structure update off this flag when set.  This, in turn,
enables creating or opening wells as a result of an ACTIONX block
updating the structure in the middle of a report step.
2023-11-07 17:02:18 +01:00