Commit Graph

372 Commits

Author SHA1 Message Date
Atgeirr Flø Rasmussen
270018cfbb
Merge pull request #5900 from totto82/improve_well_shutting
Improve well shutting logic
2025-01-28 10:46:10 +01:00
Tor Harald Sandve
eabb2de362
Merge pull request #5902 from totto82/wcycle_chop
Dont reset subtimestep from tuning/wcycle if time step is chopped due  to convergence issues
2025-01-28 10:00:58 +01:00
Tor Harald Sandve
cfc2b03b5a Improve well shutting logic
In particular allow for failed wells to shut even though they haven't failed consitatantly in the last 3 attempts
if the timestep is reduce enhough already.
2025-01-28 09:55:36 +01:00
Atgeirr Flø Rasmussen
439a0a9847 Add template parameter needed for clang.
Not sure if this is a gcc-ism, a clang-ism or a c++20-ism,
but as written here it should compile for all.
2025-01-23 11:59:56 +01:00
Tor Harald Sandve
ecc3c5557d Dont reset subtimestep from tuning/wcycle if time step is chopped due to convergence issues 2025-01-22 12:54:24 +01:00
Arne Morten Kvarving
1c537632fc mark methods override 2025-01-21 14:41:57 +01:00
Arne Morten Kvarving
6d964c1370 mark constructors explicit 2025-01-21 14:41:17 +01:00
Håkon Hægland
18d35cb820 Explain the timestepping
Adds developer documentation about the timestepping procedure.
2025-01-20 23:07:10 +01:00
Håkon Hægland
f867f9a977 Cleanup after rebase on master
After rebasing on master some changes to AdaptiveTimeStepping.hpp and
AdaptiveTimeStepping_impl.hpp were missed
2025-01-17 22:06:22 +01:00
Håkon Hægland
48856f9f46 Timestepping for reservoir coupling
Implement adaptive time stepping for master and slave procesess
when using reservoir coupling. The original adaptive time stepping method
is refactored at the same time.
2025-01-17 22:04:17 +01:00
Arne Morten Kvarving
f7cfa7a04b FlowProblem: move some more code to FlowGenericProblem
typetag less parameter system now allows us to initialize these variables
in class that holds them.
2025-01-15 08:40:48 +01:00
Atgeirr Flø Rasmussen
9ba48c7464 Add missing include. 2025-01-06 10:32:27 +01:00
Arne Morten Kvarving
ca9ea2ccf1 AdaptiveTimeStepping: move controller creation to translation unit 2025-01-03 10:08:43 +01:00
Arne Morten Kvarving
c25a7480cd AdaptiveTimeStepping::init_: change from if nest to map of creators 2025-01-03 10:08:17 +01:00
Arne Morten Kvarving
0465d3f0af AdaptiveTimeStepping: use fmt for formatting 2025-01-03 09:30:14 +01:00
Arne Morten Kvarving
f0cb0595d1 remove unnecessary std::to_string
format can handle floating point numbers
2025-01-03 09:30:14 +01:00
Arne Morten Kvarving
1556169221 changed: do no assert for user provided data
instead throw an exception
2025-01-03 09:30:14 +01:00
Arne Morten Kvarving
a2bd8b5810 split AdaptiveTimeStepping to use an impl file 2025-01-03 09:30:14 +01:00
Arne Morten Kvarving
0470502027 added: support WCYCLE 2024-12-17 08:41:25 +01:00
Arne Morten Kvarving
410e19e807 remove unused fipnum argument
also allows to drop the default value for the tuningUpdater callback
2024-12-16 14:49:08 +01:00
Tor Harald Sandve
b7d3a57b0b
Merge pull request #2970 from totto82/remove16day
remove 16 days restriction for timestep in predicition mode
2024-12-10 11:43:38 +01:00
Arne Morten Kvarving
73c45c7282 bump minimum dune version to 2.9 2024-12-03 13:59:53 +01:00
Tor Harald Sandve
98b86e891a remove 16 days restriction for timestep in prediciton mode 2024-11-25 13:40:09 +01:00
Tor Harald Sandve
120416f358 dont shut well with GRUP control that struggles to converge 2024-11-22 11:05:08 +01:00
Arne Morten Kvarving
68a727aac8 fixed: mark comparison operator const 2024-11-06 10:38:50 +01:00
Kai Bao
4ba1cd53d7 add EclWriter to FlowProblemComp
so the FlowProblemComp can output ecl style output.
it duplicates the OutputBlackoilModule and GenericOutputBlackoilModule
for compositional related output for now.
2024-10-30 11:14:18 +01:00
jakobtorben
b830208573 PR review changes 2024-10-03 18:05:06 +02:00
jakobtorben
71a64fbd13 Ensure correct propagation of failed report 2024-10-03 08:56:39 +02:00
jakobtorben
6d53daaa42 Store report of failed step before cutting from convergence monitoring 2024-10-03 08:56:39 +02:00
jakobtorben
eef0ba50bf Change non-convergence monitor to checking if number of non-converged has increased 2024-10-03 08:56:39 +02:00
jakobtorben
5f17c9de6a Cut timestep if penlaty exceeds limit 2024-10-03 08:56:39 +02:00
jakobtorben
3e6f9c52bb Reset the total penalty card after each nonlinear iteration 2024-10-03 08:56:39 +02:00
jakobtorben
56da84517b Add well convergence metric 2024-10-03 08:56:39 +02:00
jakobtorben
988ca3aa60 Add object to keep track of penalty cards for convergence monitoring 2024-10-03 08:56:39 +02:00
Bård Skaflestad
02555ac504
Merge pull request #5626 from vkip/rptsched_wells
Support RPTSCHED WELLS=N
2024-09-25 09:27:58 +02:00
Vegard Kippe
5745f92b08 Avoid unused variable warning 2024-09-24 13:00:34 +02:00
Erik Hide Sæternes
6c556484b1 Added errors_[0] == 0 to conditional 2024-09-23 22:15:15 +02:00
Erik Hide Sæternes
37e96e211c Fixed indexing error in PID controller 2024-09-23 22:15:15 +02:00
Atgeirr Flø Rasmussen
8de619111b
Merge pull request #5476 from jakobtorben/remove_bug_in_simple_iteration_timestep_control
Set correct target iterations in SimpleIterationTimestepControl
2024-09-12 21:43:18 +02:00
Arne Morten Kvarving
05f01bf819 parametersystem.hh: rename to .hpp 2024-09-05 10:07:40 +02:00
Bård Skaflestad
0b40277e01 Revise Convergence Report Collection Procedure
This commit switches the parallel implemenation of function
Opm::gatherConvergenceReport() into using the general serialisation
framework (classes Opm::Serializer<> and Opm::Mpi::Packer).  In
particular, we add serializeOp() functions to each of the types

  - ConvergenceReport
  - ConvergenceReport::ReservoirFailure
  - ConvergenceReport::ReservoirConvergenceMetric
  - ConvergenceReport::WellFailure

and defer the job of converting the objects between in-memory and
byte stream representations to Opm::Serializer<>.  The new special
purpose class CollectConvReports inherits from the latter and uses
its pack() and unpack() member functions, along with its internal
m_buffer data member, to distribute each rank's convergence report
object to all ranks.  We add this feature here, in a very narrowly
scoped use case, to enable testing and experimentation before we
consider adding this distribution mechanism as a general feature in
Opm::MpiSerializer.
2024-08-27 10:50:06 +02:00
Bård Skaflestad
68cc5d917e Output CNV Histogram to INFOITER File
This commit tracks the number of cells and their associate fraction
of the model's "eligible" pore volume (total pore volume in
numerical aquifers subtracted from the model's total pore volume) in
three distinct categories as a function of the non-linear iteration
number:

  - 0: MAX_p { CNV_p } <= strict CNV tolerance
  - 1: MAX_p { CNV_p } \in (strict, relaxed]
  - 2: MAX_p { CNV_p } > relaxed CNV tolerance

We then output these cell counts and pore volume fractions as new
items in the INFOITER file to enable more targeted analysis of the
non-linear convergence behaviour.

To this end, introduce a type alias CnvPvSplit in the
ConvergenceReport and aggregate these across the MPI ranks before we
collect them in the ConvergenceReport objects.

While here, also reduce the amount of repeated logic in
gatherConvergenceReport.cpp through a few local lambdas.
2024-08-27 10:50:06 +02:00
Arne Morten Kvarving
05b997dc0f EclTimeSteppingParams: optionally instantiate for float 2024-08-19 13:18:55 +02:00
Arne Morten Kvarving
1716f8627e AdaptiveTimeStepping: move parameter registration to .cpp file 2024-08-16 17:15:53 +02:00
Arne Morten Kvarving
51b9d891a1 EclTimesteppingParams: introduce translation unit 2024-08-16 16:58:30 +02:00
Arne Morten Kvarving
280704e2e0 move AdaptiveTimeStepping parameters to TypeTag-free parameter system 2024-08-16 13:22:17 +02:00
Arne Morten Kvarving
e2b8715b42 move EclTimeStepping parameters to TypeTag-free parameter system 2024-08-16 13:22:17 +02:00
Arne Morten Kvarving
5f5697ff91 changed: AdaptiveTimeStepping parameters moved to Opm::Parameters namespace 2024-08-06 07:11:45 +02:00
Arne Morten Kvarving
6f7fcb5872 changed: EclTimeStepping parameters moved to Opm::Parameters namespace 2024-08-06 07:05:08 +02:00
Jakob Torben
174c359d62
Set correct target iterations in SimpleIterationTimestepControl 2024-07-11 13:06:06 +02:00