Commit Graph

679 Commits

Author SHA1 Message Date
Paul
30e1f5178c Automatic choke 2024-07-02 12:13:52 +02:00
Kai Bao
ce05406483 make sure a well exists in the process
before closing it due to group action
2024-07-01 22:00:39 +02:00
Bård Skaflestad
26cd7ab993 Move opm/core/props to opm/simulators/utils
The opm/core directory is no longer meaningful, and it contains only
components which might collectively be described as simulator
utilities.
2024-06-25 12:22:09 +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
Arne Morten Kvarving
bcbac79486
Merge pull request #5380 from akva2/linalg_template_scalar
LinAlg classes: template Scalar type
2024-05-31 08:40:11 +02:00
Kai Bao
e968da28bb renaming calcRates to calcResvCoeff
and calcInjRates to calcInjResvCoeff.
2024-05-29 22:29:12 +02:00
Arne Morten Kvarving
ff39bc3b03 WellContribution: template Scalar type 2024-05-24 14:09:11 +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
e9050359db BlackoilWellModel: use appropriate Scalar type 2024-05-23 08:52:59 +02:00
Arne Morten Kvarving
27d99f78ec ParallelWBPCalculation: template Scalar type 2024-05-22 10:51:12 +02:00
Arne Morten Kvarving
0481c7c0b2 adjust to PAvgCalculator templating 2024-05-22 10:51:07 +02:00
Arne Morten Kvarving
59e6d4db08 adjust to PAvgDynamicSourceData templating 2024-05-22 10:51:07 +02:00
Arne Morten Kvarving
3747981347 VFPProperties: template Scalar type 2024-05-21 17:01:30 +02:00
Atgeirr Flø Rasmussen
226410cd44
Merge pull request #5303 from akva2/gaslift_template_scalar
GasLift: template Scalar type
2024-05-14 09:59:42 +02:00
Arne Morten Kvarving
3024fba293 fixed: properly avoid inclusion of BDA types if BDA is disabled 2024-05-02 11:37:03 +02:00
Arne Morten Kvarving
772b00bc19 GasLiftGroupInfo: template Scalar type 2024-04-24 15:31:13 +02:00
Arne Morten Kvarving
f5d6b69703 BlackoilWellModel: use Scalar type 2024-04-23 11:33:33 +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
Atgeirr Flø Rasmussen
edf4be5f79
Merge pull request #5227 from akva2/improve_ide_experience
Improve IDE experience
2024-04-22 15:31:08 +02:00
Arne Morten Kvarving
aa03d06c4d WellGroupHelpers: template Scalar type 2024-04-19 11:28:40 +02:00
Arne Morten Kvarving
be57843296 WellState: template Scalar type 2024-04-17 11:12:40 +02:00
Bård Skaflestad
b1be391d4c
Merge pull request #5172 from totto82/gconprod7
Implement WELL as group limit action
2024-04-11 17:36:55 +02:00
Arne Morten Kvarving
0161d69660 adjust to removal of EWOMS_GET_PARAM 2024-04-05 14:02:28 +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
Arne Morten Kvarving
cecedc1042 fixed: rate converter must be initialized early if WELLPI is enabled 2024-04-02 16:42:40 +02:00
Arne Morten Kvarving
ae60f0b640 BlackoilWellModel: header cleanup
add necessary headers, remove unused
2024-04-02 14:20:50 +02:00
Arne Morten Kvarving
3475da7d8c Rename ebos_simulator members/parameters to simulator 2024-03-06 10:53:00 +01:00
Arne Morten Kvarving
90aadd4c94 BlackoilWellModel: improve IDE experience 2024-02-27 10:43:03 +01:00
Arne Morten Kvarving
c0a50597a1 BlackoilWellModel::computePotentials: improve exception message
- add which well the exception added for
- concatenate message for all exceptions to show all, not just last exception
2024-02-07 14:12:54 +01:00
Kai Bao
e5e9143a2a shutting wells zero rate constraint and not allowing crossflow 2024-02-01 23:09:53 +01:00
Vegard Kippe
31b46b4829 Revert the choice to open history wells at every step, since this may cause some models to be stuck at very short time steps. 2024-01-26 12:05:26 +01:00
Atgeirr Flø Rasmussen
3c4dd1f3b7 Avoid illegal combination of options.
NLDD requires --matrix-add-well-contributions=true for now.

Also: minor improvement to well rank and subdomain output clutter.
2024-01-24 14:19:07 +01:00
Bård Skaflestad
24ebb77257
Merge pull request #5116 from atgeirr/parallel-well-domain-output
Parallel well domain and error logging for NLDD
2024-01-23 15:41:11 +01:00
Arne Morten Kvarving
98c704c1c3 changed: move ebos/eclmpiserializer.hh to opm/simulators/utils/MPISerializer.hpp
it does not use the typetag system
2024-01-23 10:51:32 +01:00
Atgeirr Flø Rasmussen
1842df7cfd Output well subdomain info properly in the parallel case. 2024-01-19 16:15:53 +01:00
Atgeirr Flø Rasmussen
6eb670b5c7 Improve parallel logging in NLDD solver. 2024-01-15 09:08:52 +01:00
Markus Blatt
50e1d09a8c Add semicolon to help with indentation. 2023-12-07 16:41:16 +01:00
Markus Blatt
260dac77a5 [MPI] Handle exception during assembleWellEqWithoutIteration correctly
For this particular model WetGasPVT::saturationPressure did throw
because convergence in the newton solver is not reached in 20
iterations. Unfortunately, the exception was only seen on one MPI rank
and the others continued.

With this commit we communicate the problem and throw on all MPI
processes. Time step will be cut as a result.
2023-12-07 15:41:35 +01:00
Markus Blatt
abd387abba
Merge pull request #5036 from blattms/comm-sigular-mat-exception
Communicate exceptions during WellModel::updateAndCommunicate
2023-12-06 09:54:00 +01:00
Markus Blatt
779dd74923 Communicate exceptions during WellModel::updateAndCommunicate
For multi segment well the underlying call to
MultisegmentWell::updateWellStateWithTarget (at least if
updateWellStateWithTHPTargetProd is called for a producer under thp
control) might throw as there might be a singular matrix during the
solve needed in MultisegmentWell::iterateWellEqWithControl.

Previously, if that happened then the MPI process where it happened would
stop the nonlinear iteration as failed and try with a chopped time
step. The others might go one with the current time step and we would
see MPI errors about truncated messages.

Now we communicate any exception happening during this part of
WellModel::updateAndCommunicate and all processes will stop the
nonlinear iteration as failed and chop the time step.
2023-12-04 22:26:55 +01:00
Vegard Kippe
55067636f4 Ensuring that the UDA is updated every time step, not just only report step. 2023-12-01 19:44:09 +01:00
Vegard Kippe
17452e0fc6 Adding const 2023-12-01 09:34:42 +01:00
Vegard Kippe
0acb148ba7 Using std::exception 2023-11-30 16:13:40 +01:00
Vegard Kippe
2294983759 Catch exceptions from well testing (often: inf/nan in MSW matrices). 2023-11-29 09:17:53 +01:00
Atgeirr Flø Rasmussen
cb3ab14a71
Merge pull request #5025 from blattms/expect-singular-matrices-upate-WellControl
[bugfix] Expect singular matrices, terminate updateWellControls/nonlinear and cut timestep
2023-11-27 08:42:11 +01:00
Markus Blatt
31ab752ae6 [fix] Parallel try-catch also added for updateWellControls for groups.
Not sure whether this is needed, but better safe than sorry.
2023-11-25 21:04:13 +01:00
Markus Blatt
50c25ead52 [bugfix] Expect singular matrices and terminate updateWellControls.
We are experiencing singular matrices when solving mulisegment wells
sometimes. In that case (here during
BlackoilModelEbos::assembleReservoir <-
BlackoilModelEbos::initialLinerization <-
BlackoilModelEbos:::nonlinearIterationNewton ) an exception is thrown
when updating the controls of a well.

The problem here is that this exception only happens on one
process. That one goes to the catch block in
NonLinearSolverEbos::step, marks the nonlinear solve as failed and
cuts the time step. The others move to the collective communication
below. Somehow and somewhen all end up in a non-matching collective
communication with different data types and we get an MPI Error that
the message was truncated.

Now all processes will throw, terminate the nonlinear solver and cut
the timestep as it should be.
2023-11-25 19:32:11 +01:00
Bård Skaflestad
7343aca2be
Merge pull request #5018 from blattms/parallel-well-fixes
[fix] Do parallel sums with int instead of bool.
2023-11-23 16:24:36 +01:00
Markus Blatt
6a866ac8d2 [fix] Do parallel sums with int instead of bool.
Using bool here is at least frowned upon. To be honest, I have no idea
what happens underneath here if we pass a bool. In contrast to other
pod types we do not associate it with a builtin type of MPI (not even
sure what to use). Hence we probably create a custom type for sending
and receiving. That should work. But I have no idea what will be used
for summation.

BTW: I am debugging a case that previously crashed and now suddenly
works and this seems to be the only relevant change I made in the
meantime.
2023-11-22 16:50:57 +01:00
Vegard Kippe
abbcb4b148 Check if a well was closed this step before re-opening in history mode 2023-11-17 17:29:30 +01:00
Kai Bao
e355990ac2
Merge pull request #4999 from vkip/always_open_historic_wells
Always check if wells on historic controls can be opened
2023-11-15 20:29:21 +01:00
Vegard Kippe
e0d1ff9c66 Always check if wells on historic controls can be opened 2023-11-15 19:04:48 +01:00
Bård Skaflestad
f195f73949 Extract Binary_Search Out to Helper
Mostly for readability.
2023-11-15 13:31:41 +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
Stein Krogstad
0756e2d1c1 Initialize rates/previous rates before well-test 2023-11-06 11:46:44 +01:00
Bård Skaflestad
17886f934c
Merge pull request #4924 from GitPaean/fixing_gecon_welopen
use the WELL_SET_TO_OPEN event to open closed wells
2023-11-01 10:24:18 +01:00
Bård Skaflestad
bf72698310
Merge pull request #4832 from totto82/wdaccor_refactor
Implement Forchheimer term in wellIndex
2023-10-31 17:46:49 +01: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
Kai Bao
83ed0f01e5 use the REQUEST_OPEN_WELL event to open closed wells 2023-10-20 13:08:07 +02:00
Bård Skaflestad
b60eb25285
Merge pull request #4918 from GitPaean/remove_white_spaces_wells_folder
removing white spaces in the wells folder
2023-10-19 09:08:03 +02:00
Kai Bao
b975ebff65
Merge pull request #4881 from vkip/no_network_solve_in_history
Avoid iterating network if no network wells are in prediciton mode
2023-10-16 14:54:36 +02:00
Kai Bao
f5d3489d23 distinguishing report step and time step
for the funcitons related to createWellContainer() and
runWellPIScaling().

So it is not exhaustive, but we should do it gradually.
2023-10-11 11:33:02 +02:00
Kai Bao
a525f0865f removing white spaces in the wells folder 2023-10-09 11:14:48 +02:00
Vegard Kippe
77bb7aa9cf Let reported pressures (GPR) respect the NETBALAN configuration 2023-10-06 15:15:43 +02:00
Vegard Kippe
389db91839 Slight restructuring/renaming for (possibly) improved clarity. 2023-10-06 15:15:43 +02:00
Vegard Kippe
a8b4c25bfb Separate network active and need for rebalance bool + perform check per timestep only. 2023-10-06 15:15:43 +02:00
Vegard Kippe
663c62e366 Avoid iterating network if no network wells are in prediciton mode 2023-10-06 15:15:42 +02:00
Markus Blatt
6a705b9b8e Fixed spelling. 2023-10-04 13:24:01 +02:00
Markus Blatt
9279ce19e8 [bugfix] Fixes stopping network update in parallel at max steps.
We did only break in the loop for rank 0 and not the other ones. Hence
all other processes kept iterating beyond the maximum number of
allowed iterations. This lead to hard to find crashes because of
non-matching MPI communication.
2023-10-04 12:56:44 +02:00
Markus Blatt
fa04666b8a
Merge pull request #4888 from blattms/fix-compute-temperature-for-distwells
Fixes computation of temperature for distributed wells.
2023-10-02 17:22:09 +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
Markus Blatt
2721b9fa2d Fixes computation of temperature for distributed wells.
Previously, we did a global summation of the size of the
well_perf_data vector to determine the number of perforations
of a well. In the case of distributed wells this will try to access
more perforations than stored for the well in well_perf_data and hence
might use data from cells that actually are not perforated by this
cell. Note that for well not distributed the code worked as the
summation has no effect.

This commit changes this to only query peforations on the
local process. This should be enough to fix this problem.

In addition it removes the computation of connpos which is never used.
2023-09-22 18:56:27 +02:00
Kai Bao
9d642fd7ce only outputting some network info to the rank 0 process 2023-09-19 16:17:19 +02:00
Tor Harald Sandve
80cbfe7fda
Merge pull request #4819 from hakonhagland/gecon3
Implement support for GECON keyword
2023-09-01 15:06:48 +02:00
Stein Krogstad
e7a0dbacf2 don't do rate-init for stopped/zero target 2023-08-29 14:52:09 +02:00
Håkon Hægland
2f9b136bb1 Implement support for GECON keyword
Implement support for item 2 and 3 of the GECON keyword
2023-08-29 01:07:21 +02:00
Arne Morten Kvarving
92fa9577da consistently use std::size_t 2023-08-15 09:32:10 +02:00
Bård Skaflestad
8c9682ab7a Split Well and Group Initialization Out to Helper
In preparation of adding support for opening/creating wells or
groups in the middle of a report step.  This is needed if an
ACTIONX block runs something like WELOPEN or WELSPECS/COMPDAT.
2023-07-12 17:23:14 +02:00
Bård Skaflestad
e965f6f27f Prune Unused Well State Parameter
The WellState parameter in setCmodeGroup() became unused when we
split the GroupState out of the WellState in commit e1d117c59f.
2023-07-12 17:23:14 +02:00
Bård Skaflestad
7f89276fe8 Hook New WBPn Calculation Up to Well Model
This commit activates the support for calculating WBPn summary
result values per well in parallel.  To affect the calculation we
add two new data members in BlackoilWellModelGeneric:

  - conn_idx_map_:
    Maps well's connection index (0..getConnections().size() - 1) to
    connections on current rank.  Its local() connections are
    negative 1 (-1) if the connection is not on current rank, and a
    non-negative value otherwise.  The global() function maps well
    connections on current rank to global connection ID for each
    well.  Effectively the reverse of local().  Finally, the open()
    function maps well connections on current rank to open/flowing
    connections on current rank.  Negative 1 if connection is not
    flowing.

  - wbpCalculationService:
    Parallel collection of WBPn calculation objects that knows how
    to exchange source and result information between all ranks in a
    communicator.  Also handles distributed wells.

We furthermore need a way to compute connection-level fluid mixture
density values.  For the standard well class we add a way to access
the StandardWellConnection's 'perf_densities_' values.  However,
since these are defined for open/flowing connections only, this
means we're not able to fully meet the requirements of the

  WELL/ALL

WPAVE depth correction procedure for standard wells.  The
multi-segmented well type, on the other hand, uses the fluid mixture
density in the associated well segment and is therefore well defined
for ALL connections.  OPEN well connections are supported for both
well types.
2023-07-10 13:42:46 +02:00
Bård Skaflestad
ff9e6ca18a
Merge pull request #4745 from akva2/filtercake_separate_class
FilterCake: put code in separate class
2023-07-07 16:51:23 +02:00
Arne Morten Kvarving
60b92d02eb WellFilterCake: make stateful 2023-07-07 16:08:42 +02:00
Arne Morten Kvarving
aaeedf4091 put updating of FilterCake multiplier in separate method 2023-07-07 16:08:20 +02:00
Stein Krogstad
2dcebd4bdd Rephrase explicit to prev(uous) 2023-07-07 13:13:43 +02:00
Stein Krogstad
5212d20a96 Add explicit rates to well state 2023-07-07 13:12:34 +02:00
Kai Bao
e264042c62 refining the function updateInjFCMult
for code improvements.
2023-07-07 09:32:03 +02:00
Kai Bao
cb74d26e85 WIP in storing the filtration_particle_volume in BlackoilWellModelGeneric
instead of PerfData to handle the situation that well can be SHUT and
OPEN again.
2023-07-05 13:25:03 +02:00
Kai Bao
274c431492 tracking filtration particle volume instead of water injection volume
for filter cake calculation. The main reason is that the injection
concentration may vary during the simulation, which makes the tracking
of water injection volume is not very helpful when used for filter cake
calculation.
2023-07-05 13:25:03 +02:00
Kai Bao
eb08e2e863 cleaning up implementation related to filter cake 2023-07-05 13:25:03 +02:00
Kai Bao
aa5062683d a draft version for the linear geomery WINJDAM 2023-07-05 13:25:03 +02:00
Kai Bao
49774186ab calculating the accumulative water injection volume
for each connection
2023-07-05 13:25:03 +02:00
Bård Skaflestad
9de535098f
Merge pull request #3764 from atgeirr/aspin
Add nonlinear solver based on domain decomposition method
2023-06-28 15:49:56 +02:00
Kai Bao
b50c404247 adjusting the implementation of WINJMULT support
addn relaxed the absolute tolearnce of the parallel running test for
WINJMUT_MSW
2023-06-27 12:49:25 +02:00
Kai Bao
b1fad4bb10 store the inj_multiper in PerfData in WellState 2023-06-27 12:49:25 +02:00
Kai Bao
cc9ee9c059 support WINJMULT 2023-06-27 12:49:25 +02:00
Atgeirr Flø Rasmussen
15c1e38533 Silence unused variable/parameter warnings. 2023-06-23 16:24:18 +02:00
Arne Morten Kvarving
e7738e70dc BlackoilWellModel: move numLocalNonshutWells to generic class 2023-06-22 08:27:05 +02:00
Arne Morten Kvarving
aaa1006e2b BlackoilWellModel: move numLocalWellsEnd to generic class 2023-06-22 08:26:01 +02:00
Arne Morten Kvarving
dd9a2835fe BlackoilWellModel: move getMaxWellConnections to generic class 2023-06-22 08:26:01 +02:00
Arne Morten Kvarving
7ab8d94215 BlackoilWellModel: move assignWellTracerRates to generic class 2023-06-22 08:26:00 +02:00
Arne Morten Kvarving
2327768db6 anonymize unused parameter 2023-06-21 08:55:11 +02:00
Arne Morten Kvarving
f88bf57388 use temporary helper variable 2023-06-21 08:54:53 +02:00
Vegard Kippe
d6d4b94b25 Parameterized iteration limits in network solver 2023-06-16 12:15:06 +02:00
Atgeirr Flø Rasmussen
654df6fd59 Well additions for local solves.
Also, remove uneeded function updatePerforationIntensiveQuantities().
2023-06-15 16:49:12 +02:00
Atgeirr Flø Rasmussen
bc9cfc8cd5 Add methods for getting and setting primary variables.
These can be used to manage state in the well models, and will
be used in the NLDD solver option. Also added the setupDomains()
method, as the getters and setters are working on a domain basis.
2023-06-13 15:31:30 +02:00
Tor Harald Sandve
7cf3f69cf9 Add gaswater solvent
Fix some places that assumed 3p + solvent
2023-05-26 16:24:38 +02:00
Kai Bao
d30e1f7a2a adding comment to address reviewing comments for PR#4598 2023-05-08 13:55:30 +02:00
Kai Bao
926228401a moving function needRebalanceNetwork to BlackoilWellModelGeneric 2023-05-08 13:26:23 +02:00
Kai Bao
fa39f1f183 adding max_iter and relaxation_iter for updateWellControlsAndNetwork
to avoid getting stuck during the iteration.
2023-05-08 10:43:49 +02:00
Kai Bao
b9348ee435 try to honor the network balance tolerance
without considering the iteration number. Because of the different
implementaion from other simulators, it is difficult to honour
procedure-dependent parameters.
2023-05-08 10:43:49 +02:00
Kai Bao
6148e97771 we dampen the nodal pressure update for each iteration
to improve the network update convergence. The current network update is
somehow explicit.
2023-05-08 10:43:49 +02:00
Kai Bao
bb7ed4d78e making sure to update the pressure when needing network balance 2023-05-08 10:43:49 +02:00
Kai Bao
5536b24a84 fixing the comilation from the reverted commit
the interface has changed.
2023-05-08 10:43:49 +02:00
Kai Bao
8644801ac8 adding function balanceNetwork
not compiling yet due to the change in the master branch
2023-05-08 10:43:49 +02:00
Kai Bao
b3a6009b1b network pressure needs to be updated even without wells open
mostly to make the comparison plot against reference results easier for
the network nodal pressures.
2023-05-08 10:43:49 +02:00
Kai Bao
0f4da07aaf when a well is in a network node with nodal pressure
setting the dynamic thp limit with the the nodal pressure.
2023-05-08 10:43:49 +02:00
Kai Bao
79eeeae16e addressing the reviewing comments for PR #4596 2023-04-20 15:47:31 +02:00
Kai Bao
1542f2c087 refactor the network update
moving the well controls and network update out of assembleImpl to avoid
call assmebleImpl in a recursive manner
2023-04-20 14:59:50 +02:00
Kai Bao
ceba5c468b
Merge pull request #4572 from GitPaean/tightenging_tolerance_for_zero_rate_wells
stricter tolerance for wells with zero rate target
2023-04-14 11:19:35 +02:00
Bård Skaflestad
c52ab4ccd5
Merge pull request #4347 from atgeirr/afr_well_assemble_separate
Implement functionality to add well source terms to the residual separately
2023-03-31 11:10:01 +02:00
Kai Bao
7c06ec38a3 stricter tolerance for wells with zero rate target
for StandardWell only at this moment.
2023-03-30 15:49:27 +02:00
Bård Skaflestad
9524348401
Merge pull request #4549 from totto82/resv_undersat
fix RESV for undersaturated wells
2023-03-29 10:35:33 +02:00
Tor Harald Sandve
a2ae7d5bed Fix resv for groups 2023-03-27 16:03:40 +02:00
Kai Bao
2c5a4398c9 make sure zero production rates are obtained for the following wells
1. stopped production wells
2. production wells under zero rate control

We guarantee the objective through enforce zero values for the WQTotal
primary variable during the initialization and update process during the
Newton solution.
2023-03-27 13:24:08 +02:00
hnil
aa40d2f0f3 -- prepared for possibliy of not using cached intentensive quantities 2023-03-24 19:57:31 +01:00
hnil
122a478341 added more timing macros 2023-03-21 22:44:14 +01:00
Atgeirr Flø Rasmussen
2964bd409e Use diagonal matrix block pointers for well source terms. 2023-03-08 16:41:36 +01:00
hnil
e705dc41c2 modification to to well assembly form well side to avoid asking for wells on all cells 2023-03-08 16:41:36 +01:00
Arne Morten Kvarving
a72a9e55a0 BlackoilWellModel: prefer std::make_unique 2023-02-13 16:04:03 +01:00
Markus Blatt
d2f55c59fc
Merge pull request #4359 from totto82/fixGPMAINT2
Fix GPMAINT for groups without control
2023-01-23 14:12:00 +01:00
Arne Morten Kvarving
7a1cf45ed5 BlackoilWellModel: move code using WellTestConfig to compile unit 2023-01-17 07:22:17 +01:00
Arne Morten Kvarving
cc4fd831a8 add missing WellTestConfig.hpp includes 2023-01-17 06:04:56 +01:00
Arne Morten Kvarving
c0f809e640 BlackoilWellModel: mode code using WellConnections to compile unit 2023-01-12 13:06:25 +01:00
Arne Morten Kvarving
93e59e73ac use Well::hasConnections 2023-01-12 12:54:23 +01:00
Tor Harald Sandve
f2ea6ce844 Add support for FIP* 2023-01-11 14:39:23 +01:00
Arne Morten Kvarving
bba9c2a297 move Balance usage to BlackoilWellModelGeneric
now we do not need to include Balance.hpp in simulator objects
2023-01-11 11:26:25 +01:00
Arne Morten Kvarving
09dc3d9449 add missing Balance.hpp includes 2023-01-11 11:26:25 +01:00
Arne Morten Kvarving
469b38c321 remove unnecessary <Runspec.hpp> includes 2023-01-05 13:18:32 +01:00
Arne Morten Kvarving
e7f921825c BlackoilWellModel: use {fmt} to format error message 2022-12-22 08:35:27 +01:00
Tor Harald Sandve
60d0116080 we now use group_info in stage 2 and need to make sure its communicated 2022-12-07 15:43:25 +01:00
Arne Morten Kvarving
4a2fcd5f09 added: MultisegmentWellEquations::extract(WellContributions&)
this adds the well matrices to a WellContributions object.
use the new method in the implementation.
2022-12-05 10:13:55 +01:00
Arne Morten Kvarving
b24f22312e added: StandardWellEquations::getNumBlocks()
this returns the number of blocks in in B/C matrices.
use the new method in the well implementation.
2022-11-22 10:37:40 +01:00
Arne Morten Kvarving
65efe8e1fc added: StandardWellEquations::extract(WellContributions&)
this adds the well matrices to a WellContributions object.
this is the core of StandardWellEval::addWellContributions.
use the new method in the implementation.
2022-11-22 10:36:54 +01:00
Tor Harald Sandve
9c8f778495 Compute the group rates that takes into account limitation on the sublevels 2022-11-21 08:58:49 +01:00
Håkon Hægland
43244c2132 Change condition under which stage 2 is done.
It only makes sense to try to optimize the distribution of lift gas if
the amount of lift gas is constrained either by the maximum allowed
gaslift or total gas or the group is under individual control.
2022-11-21 08:58:49 +01:00
Arne Morten Kvarving
f367e4fb7b changed: use return value
no reason to pass a reference here, just use return
2022-10-31 10:35:52 +01:00
Arne Morten Kvarving
9f78e0454d move guideRateUpdateIsNeeded into BlackoilWellModelGuideRates 2022-10-28 23:33:05 +02:00