Commit Graph
90 Commits
Author SHA1 Message Date
Håkon Hægland 9c5469d6ad Refactor TargetCalculator
Refactor TargetCalculator::groupTarget() to
WellGroupHelper::getProductionGroupTarget(), and
don't pass Group::ProductionControls as a parameter. Since
TargetCalculator only works for a given group, passing control as a
parameter is confusing and can be error prone if being passed a control
for a different group than the TargetCalculator was constructed for.
2025-12-12 18:17:52 +01:00
Håkon Hægland 4ce72a9aec Rename WellGroupHelper
Rename WellGroupHelper to GroupStateHelper and make GroupState a
non-const pointer such that it is clear that the object can update
GroupState.
2025-11-28 08:03:55 +01:00
Håkon Hægland db1a3c344a Don't store non-const deferred logger object
Don't store non-const DeferredLogger object in WellGroupHelper class,
instead pass it explicitly as a non-const parameter when needed.
2025-10-24 15:37:20 +02:00
Håkon Hægland cebdf98231 Remove const casts for WellState
Remove const casts from wgHelper.wellState() and instead pass non-const
WellState as a separate parameter
2025-10-24 04:37:22 +02:00
Håkon Hægland 0a8e67033e Remove unused parameter warnings 2025-10-22 15:12:11 +02:00
Håkon Hægland 36d9d84bc2 Refactor WellGroupHelpers
Use a dynamic WellGroupHelper object that can store state instead of the
current WellGroupHelpers collection of static functions. This is in
preparation for the reserovir coupling feature which needs to be
injected into the well group helper functions.
2025-10-22 15:12:11 +02:00
Kai Bao 7d5663cd47 changing numComponents in wells to be numConservationQuantities
numComponents has been a very misleading name and something causes
confusion when coming to phase/component indices.

For example, mobility is not way to be associated with compoent.
2025-09-12 09:38:04 +02:00
Kai Bao b3e4c4d0d0 removing BlackoilPhases and PhaseUsage
replacing it with a new PhaseUsageInfo and FluidSystem, both of which
are using the same implementation of PhaseUsageInfo, and only one set of
indices is used. Currently, it is the BlackOilDefaultFluidSystemIndices.
2025-09-02 10:19:36 +02:00
Tor Harald Sandve 233837cbb0 Fix checking of guiderate fractions
We dont want to check for guiderate fractions during local solves
(i.e. while well rates are not converged)
2025-06-11 11:05:27 +02:00
Atgeirr Flø Rasmussen 1cec083ea6 Rename BlackOilDefaultIndexTraits->BlackOilDefaultFluidSystemIndices 2025-05-08 15:03:19 +02:00
Kai Bao 29e1291296 moving flowPhaseToModelPhaseIdx to WellInterfaceIndices 2025-04-10 15:28:48 +02:00
Arne Morten Kvarving 82a9698d27 added: support a scaling factor for well efficiency 2024-12-17 08:41:25 +01:00
Vegard Kippe ac5de96ad4 Add dampening to the injectivity multipliers (WINJMULT) 2024-10-08 15:49:10 +02:00
Arne Morten Kvarving 610abd0b6c WellInterfaceFluidSystem: optionally instantiate for float 2024-08-19 13:35:43 +02:00
Tor Harald Sandve 5f8916c0c3 Use cell temperature in perforated cell to compute reservoir rates 2024-08-01 11:14:29 +02:00
Kai Bao 6ac7f8fdaf not applying WECON RATE limit
when the well is under zero group target.
2024-06-24 14:42:10 +02:00
Stein Krogstad 427351cc12 Include checking for zero targets from groups where required 2024-05-23 14:55:37 +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 3067e56182 WellInterfaceFluidSystem: use Scalar type 2024-05-14 10:26:58 +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
Arne Morten Kvarving ab0e696709 SingleWellState: template Scalar type 2024-04-17 11:12:40 +02:00
Arne Morten Kvarving 34e883c1de WellInterfaceFluidSystem: rename flowPhaseToEbosPhaseIdx to flowPhaseToModelPhaseIdx 2024-02-07 08:08:30 +01:00
Tor Harald Sandve a40ede9957 Compute reservoir injection rates from well temperature and pressure for thermal cases 2023-10-26 15:57:41 +02:00
Stein Krogstad 035d216641 adding function iterateWellEqWithSwitching
when we do the local solve for well equations, control/status will be
updated during the iteration process, such that the converged well gets
correct control/status regarding to the current reservoir state.

various change in the other parts of the code were made to make the
function work as intended.
2023-09-29 10:51:04 +02:00
Tor Harald Sandve dbe8c3d294 Support WGRUPCON item 2 = no 2023-03-31 11:47:33 +02:00
Tor Harald Sandve a2ae7d5bed Fix resv for groups 2023-03-27 16:03:40 +02:00
Tor Harald Sandve 054d832bff compute CVIR and CVPR 2023-02-22 08:54:47 +01:00
Tor Harald Sandve ceb8d996aa Fix GPMAINT for groups without control
If GPMAINT is used the group does not need a valid control object
2023-01-10 15:59:21 +01:00
Arne Morten Kvarving 97367a1e95 move checkIndividualConstraints to WellConstraints 2022-11-01 08:57:02 +01:00
Arne Morten Kvarving e884778e46 move activeInjectionConstraint to WellConstraints 2022-11-01 08:57:01 +01:00
Arne Morten Kvarving 06686702ea added: WellConstraints
this will hold the code for well constraints.
start by moving activeProductionConstraint to the new class
2022-11-01 08:56:41 +01:00
Arne Morten Kvarving 726e6699da move checkGroupConstraints into WellGroupConstraints 2022-10-31 13:14:51 +01:00
Arne Morten Kvarving 75dad9f4c4 move checkGroupConstraintsProd into WellGroupConstraints 2022-10-31 13:14:51 +01:00
Arne Morten Kvarving 698b748270 added: WellGroupConstraints
this holds the code for well group constraints.
move checkGroupConstraintsInj into the new class
2022-10-31 13:14:50 +01:00
Arne Morten Kvarving 6f49aee719 move getGroupProductionTargetRate into WellGroupControls 2022-10-31 09:08:35 +01:00
Arne Morten Kvarving 2d4c522082 move getGroupInjectionTargetRate into WellGroupControls 2022-10-31 09:08:35 +01:00
Arne Morten Kvarving 0cc0b29a14 move updateWellTestState to WellInterfaceGeneric 2022-10-24 12:18:30 +02:00
Arne Morten Kvarving 8b503f9a00 move updateWellTestStatePhysical to WellTest 2022-10-24 12:10:57 +02:00
Arne Morten Kvarving e2b5fc8082 move updateWellTestStateEconomic to WellTest 2022-10-24 12:06:09 +02:00
Arne Morten Kvarving 71d404336e move checkRatioEconLimits to WellTest 2022-10-24 11:55:57 +02:00
Arne Morten Kvarving 1a0774ceab move checkRateEconLimits to WellTest 2022-10-24 11:49:22 +02:00
Arne Morten Kvarving 2b152e67e1 move checkMaxWaterCutLimit to WellTest 2022-10-24 11:43:57 +02:00
Arne Morten Kvarving e7273868f5 move checkMaxWGRLimit to WellTest 2022-10-24 11:40:30 +02:00
Arne Morten Kvarving fe8259bb76 move checkMaxGORLimit to WellTest 2022-10-24 11:37:54 +02:00
Arne Morten Kvarving 37f51420f6 move checkMaxRatioLimitCompletions to WellTest 2022-10-24 11:28:06 +02:00
Arne Morten Kvarving 9367335fe3 added: WellTest
this will hold the code for well tests.
start by moving checkMaxRatioLimitWell to the new class
2022-10-24 10:55:32 +02:00
Kai Bao 9461bf1a99 only enforcing production economic limit to producers. 2022-10-06 15:27:33 +02:00
Tor Harald Sandve d21921073b avoid oscilation between ORAT and LRAT when they are equal 2022-09-29 11:10:43 +02:00