Markus Blatt
0e22cc1552
Merge pull request #5746 from lisajulia/feature/ms-wells-solving
...
Feature/ms wells - part 2: Solving, straightforward option
2024-12-06 09:16:20 +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
933d2949be
Also check group constrains for iter > nupcol
2024-12-03 09:21:38 +01:00
Tor Harald Sandve
73a28a7abb
Maximum allowed oscillation for groups part 1
2024-12-03 09:21:38 +01:00
Atgeirr Flø Rasmussen
b6f23f6fe5
Merge pull request #5773 from akva2/fix_msw_deadlock
...
fixed: well model could deadlock
2024-12-02 10:36:07 +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
Arne Morten Kvarving
67765a3f08
fixed: well model could deadlock
...
if umfpack encounters a singular matrix on any process,
the exception propagated up across communication boundaries
leading to deadlock as the other processes tried to do global
reductions
2024-11-29 14:17:43 +01:00
Tor Harald Sandve
8479655deb
Set 20 as number of sub-iterations for the network
2024-11-27 14:21:05 +01:00
Tor Harald Sandve
93206349c8
Add sub iterations for balancing the network
2024-11-27 14:21:05 +01:00
Tor Harald Sandve
b4fe429b35
Merge pull request #5748 from steink/Only-update-targets-for-relevant-controls
...
Only update target of group-controlled wells during updateAndCommunicate
2024-11-25 15:30:32 +01:00
Lisa Julia Nebel
6bdb80126f
Add parameter enableDistributedWells to the well state an when set to true, do not throw when initalizing distributed multi-segment wells in WellState.cpp
2024-11-22 15:16:00 +01:00
Svenn Tveit
48f9e90248
Use gas lift optimization to get ALQ for well test
2024-11-22 10:30:32 +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
Stein Krogstad
9b54245d9a
Only update target of group-controlled wells during updateAndCommunicate
2024-11-19 12:57:42 +01:00
Razvan Nane
baf94f76d2
Rename bda to gpu for classes
2024-11-04 12:31:34 +01:00
jakobtorben
60bd3f5514
Remove unused num_cells argument from well equations
2024-10-10 20:26:13 +02:00
Atgeirr Flø Rasmussen
a7efc0091d
Merge pull request #5341 from jakobtorben/NLDD_remove_need_for_addWellContrib
...
Remove the need for add well contributions to matrix for NLDD
2024-10-10 16:23:52 +02:00
jakobtorben
e790972201
PR review changes
2024-10-10 15:51:53 +02:00
jakobtorben
22af0bd2ae
Pre-calculate local perforated cell indexes in subdomains
2024-10-10 15:12:48 +02:00
jakobtorben
61d61541d6
Remove reallocatin of temporary local variables
2024-10-10 15:12:48 +02:00
jakobtorben
3ea5c5820e
Add well operator for NLDD domains
2024-10-10 15:12:48 +02:00
jakobtorben
e53a3fd3f4
Remove unused well apply
2024-10-08 19:36:34 +02:00
jakobtorben
08bbbbf9fb
Map well solution recovery vector to perforated well cells
2024-10-08 11:34:12 +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
jakobtorben
58a8d5ee41
Map global index to local subdomain index in well operator
2024-10-07 09:13:00 +02:00
jakobtorben
60ece76adf
Make well equations use only perforated cells
2024-10-07 09:12:59 +02:00
Atgeirr Flø Rasmussen
9c74c4d638
Merge pull request #5305 from hnil/shut_inj_temp
...
fixing some of output
2024-09-17 14:33:29 +02:00
hnil
c000678c0b
fixe merge error
2024-09-16 10:44:46 +02:00
hnil
1f78064b75
fixed errors in merging
2024-09-16 10:41:51 +02:00
hnil
eb1b2c6711
fixing some of output
2024-08-30 09:46:23 +02:00
Arne Morten Kvarving
b5bd290887
BlackoilModel: use appropriate Scalar type
2024-08-23 11:15:03 +02:00
Bård Skaflestad
fa199461b5
Varnish Parts of Well Implementation
...
In particular
* Split some long lines
* Reverse conditions to reduce nesting
* Mark potentially unused arguments as [[maybe_unused]]
* Try to remove redundant calculations
* Mark some objets 'const' where possible
2024-08-22 14:51:00 +02:00
Arne Morten Kvarving
3716ee664d
move BlackoilModel parameters to TypeTag-free parameter system
2024-08-16 13:20:04 +02:00
Arne Morten Kvarving
aab40a32e2
move EnableTerminalOutput parameter to TypeTag-free parameter system
2024-08-16 13:17:56 +02:00
Vegard Kippe
0320a14eed
Avoid expensive schedule.getWells() call and also update BlackoilWellModel_impl.hpp to use new signature of updateWellsDefaultALQ
2024-08-15 21:04:04 +02:00
Lisa Julia Nebel
87a46d7b01
Fix NLDD solver for parallel runs with the COMPDAT keyword inside an ACTIONX
2024-08-14 08:31:37 +02:00
Bård Skaflestad
ad595fed5e
Merge pull request #5506 from akva2/move_params_to_parameters
...
Move parameters to Opm::Parameters namespace
2024-08-09 09:16:10 +02:00
Lisa Julia Nebel
9a97a8d658
Make test on one process pass by taking the possible future connections into account when creating the sparsity pattern of the jacobian and when creating the partitions for the solver
2024-08-06 16:07:01 +02:00
Arne Morten Kvarving
a65ddff8f6
changed: BlackoilModel parameters moved to Opm::Parameters namespace
2024-08-06 09:50:02 +02:00
Arne Morten Kvarving
d75b91aaba
changed: SimulatorFullyImplicitBlackoil parameters moved to Opm::Parameters namespace
2024-08-06 09:50:02 +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
706fa281a1
Merge pull request #4935 from plgbrts/auto-choke
...
WIP: Enabling automatic choke to model a sub-sea manifold in an extended network
2024-07-03 21:29:50 +02:00
Paul
f9d82c6042
adressing several reviewers comments
2024-07-03 16:55:00 +02:00
Paul
6e76602e8f
changed assessing safe THP range
2024-07-03 16:54:24 +02:00
Paul
393c70a83e
clean up and improvements according reviewer comments
2024-07-03 16:54:05 +02:00
Paul
1ddf675cfd
moved common thp calculation to updateWellControls
2024-07-03 16:53:51 +02:00
Paul
6ddf5dd01b
allow individual well constraints
2024-07-03 16:53:29 +02:00
Paul
36dcf233c5
simplyfying code as some logic is moved to the parser
2024-07-03 16:52:11 +02:00
Paul
b2258dcf90
autochoke producers control mode set to THP
2024-07-02 12:13:56 +02:00
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