Commit Graph

154 Commits

Author SHA1 Message Date
Arne Morten Kvarving
73ede837bb changed: move WBP BlackoilWellModel code to separate class
model using has-a instead of is-a in BlackoilWellModelGeneric
2025-01-10 09:38:35 +01:00
Arne Morten Kvarving
70e993c0bc BlackoilWellModel: move group switching reporting to separate method
this can be put in the generic TU
2025-01-10 09:18:05 +01:00
Arne Morten Kvarving
2800f35b73 changed: move the auxillary well module from BlackoilModule to WellConnectionAuxillary
this is an adapter for the non-linear solver.
it is still model using is-a but this can now be changed if desired.
2025-01-07 10:38:03 +01:00
Arne Morten Kvarving
89dbda4621 changed: move GasLift to separate class
move to has-a instead of is-a for modelling in BlackoilWellModel
2025-01-06 15:15:59 +01:00
Arne Morten Kvarving
7c5f9c59b3 BlackoilWellModel: move initialization of terminal_output_ to the generic class
it is now possible since parameter system does not need typetag
2025-01-06 15:09:56 +01:00
Arne Morten Kvarving
27ec1eb390 BlackoilWellModel: add some accessors 2024-12-20 10:41:58 +01:00
Arne Morten Kvarving
44c8b6086b computeWellBlockAveragePressures: move to BlackoilWellModelGeneric 2024-12-19 13:10:46 +01:00
Arne Morten Kvarving
4d998545eb initializeWBPCalculationService: move to BlackoilWellModelGeneric 2024-12-19 13:10:46 +01:00
Arne Morten Kvarving
a67e8c44b4 registerOpenWellsForWbpCalculation: move to BlackoilWellModelGeneric 2024-12-19 12:58:50 +01:00
Arne Morten Kvarving
7ab8d1938f wbpCalcMap_: move to BlackoilWellModelGeneric 2024-12-19 12:58:50 +01:00
Arne Morten Kvarving
3d10b549e7 setPrimaryVarsDomain: move to BlackoilWellModelGeneric 2024-12-19 12:58:50 +01:00
Arne Morten Kvarving
a36d40957b getPrimaryVarsDomain: move to BlackoilWellModelGeneric 2024-12-19 12:58:50 +01:00
Arne Morten Kvarving
5217e63309 logPrimaryVars: move to BlackoilWellModelGeneric 2024-12-19 12:58:50 +01:00
Arne Morten Kvarving
5897805e5b well_domain_: move to BlackoilWellModelGeneric 2024-12-19 12:58:49 +01:00
Arne Morten Kvarving
0470502027 added: support WCYCLE 2024-12-17 08:41:25 +01:00
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
93206349c8 Add sub iterations for balancing the network 2024-11-27 14:21:05 +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
e19063d957 Fix 'off-by-a-step' error in filter cake cleaning + refactor slightly 2024-10-07 19:35:10 +02:00
Tor Harald Sandve
25b56c39aa Pass gas mass rate to summary 2024-08-14 09:01:10 +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
bac2087b85 WellProdIndexCalculator: template Scalar type 2024-05-22 15:21:37 +02:00
Arne Morten Kvarving
27d99f78ec ParallelWBPCalculation: template Scalar type 2024-05-22 10:51:12 +02:00
Arne Morten Kvarving
16f5290038 ParallelWellInfo: template Scalar type 2024-05-22 09:48:22 +02:00
Arne Morten Kvarving
81189b89c7 PerforationData: template Scalar type 2024-05-22 09:48:07 +02:00
Arne Morten Kvarving
3747981347 VFPProperties: template Scalar type 2024-05-21 17:01:30 +02:00
Arne Morten Kvarving
11b5ba3f18 WellInterfaceGeneric: template Scalar type 2024-05-14 10:26:58 +02:00
Arne Morten Kvarving
09065dd130 GasLiftSingleWellGeneric: template Scalar type 2024-04-24 15:31:13 +02:00
Arne Morten Kvarving
25de745dab GasLiftWellState: template Scalar type 2024-04-24 15:31:13 +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
137741e572 WellFilterCake: template Scalar type 2024-04-17 11:13:01 +02:00
Arne Morten Kvarving
15d75c5228 WGState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
67f1811234 GroupState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving
be57843296 WellState: 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
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
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
Vegard Kippe
5fbf981af8 Output of network pressures based on rates at end of time step 2023-10-26 19:35:56 +02:00
Tor Harald Sandve
90e791877c Implement Forchheimer term in wellIndex
Add output of CDFAC

Add effect of compaction on CTFAC
2023-10-23 08:55:21 +02:00