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