Commit Graph

102 Commits

Author SHA1 Message Date
Erik Hide Saeternes
d78cf2e32e Implemented general third order controller for adaptive time stepping 2025-02-11 18:10:06 +01:00
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
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
f027262ec4 remove files 2018-11-16 14:53:37 +01:00
Tor Harald Sandve
7c9dab1a64 Add reportStep method in SimulatorReport and use it 2018-03-12 14:48:34 +01:00
Atgeirr Flø Rasmussen
cf9b7c39b9 Adapt to moved opm-grid headers. 2018-02-10 08:33:33 +01:00
Andreas Lauser
7f3a9f1f43 catch NumericalIssue instead of NumericalProblem
the underlying problem is that the OPM build system does not define a
HAVE_OPM_COMMON macro in config.h.
2018-02-08 12:02:25 +01:00
Tor Harald Sandve
b38430ea2e Output TCPU for every substep. 2018-01-29 08:56:55 +01:00
Tor Harald Sandve
a1dbeec4d4 Use 1 day as default initial time step 2017-11-28 15:12:48 +01:00
Alf B. Rustad
7dba2c4d70 Format fix-up 2017-11-17 08:25:22 +01:00
Alf B. Rustad
ad68c05982 Change substep to time step in logging 2017-11-17 08:25:21 +01:00
Andreas Lauser
64d7366de2 mark the non-template methods of the adaptive time stepper as inline
this is needed to avoid linker errors if this class ought to be used
in multiple compile units. IMO the main problem here is the use of an
_impl.hpp file.
2017-10-06 15:34:59 +02:00
Rohith Nair
7500d3eb0c edit 2017-06-26 12:46:09 +02:00
Rohith Nair
84ca3cd9b9 Removes multiple problem logging for linear solver convergence failure 2017-06-26 12:21:44 +02:00
Rohith Nair
2976b62d75 Add cause_of_failure for NumericalProblem 2017-06-12 10:48:07 +02:00
Rohith Nair
073e4ce839 Add cause_of_failure for LinearSolverProblem 2017-06-12 10:28:38 +02:00
Rohith Nair
18dfe1783b remove debug info from terminal output for convergence failure 2017-06-11 22:32:46 +02:00
Rohith Nair
c1e76d6b51 edit 2017-06-07 14:49:00 +02:00
Rohith Nair
deaf90f211 edit 2017-06-07 14:47:45 +02:00
Rohith Nair
58285bb8f8 edit 2017-06-07 14:46:04 +02:00
Rohith Nair
348cb5e5a4 Changes made as requested 2017-06-07 14:40:18 +02:00
Rohith Nair
c12665e04f -Added exception TooManyIterations
-Combined log messages from NonLinearSolver_impl.hpp and AdaptiveTimeStepping_impl.hpp
2017-06-07 10:37:25 +02:00
Tor Harald Sandve
434f96db0a FIX output the correct next timestep after convergece failure 2017-05-29 09:48:34 +02:00
Arne Morten Kvarving
3c0cb9e950 adjust for changed ParameterGroup namespacing 2017-04-28 15:36:25 +02:00
Andreas Lauser
ef2a560fb3 flow_ebos: print statistics about failed time steps
the performance summary at the end of a Norne run which are printed by
`flow_ebos` now looks like this on my machine:

```
Total time (seconds):         773.757
Solver time (seconds):        753.349
 Assembly time (seconds):     377.218 (Failed: 23.537; 6.23965%)
 Linear solve time (seconds): 352.022 (Failed: 23.2757; 6.61201%)
 Update time (seconds):       16.3658 (Failed: 1.13149; 6.91375%)
 Output write time (seconds): 22.5991
Overall Well Iterations:      870 (Failed: 35; 4.02299%)
Overall Linearizations:       2098 (Failed: 136; 6.48236%)
Overall Newton Iterations:    1756 (Failed: 136; 7.74487%)
Overall Linear Iterations:    26572 (Failed: 1786; 6.72136%)
```

for the flow_legacy family, nothing changes.
2017-04-11 11:12:11 +02:00
Atgeirr Flø Rasmussen
98debed741 Fix minor output bug and refine output.
Previously the substep summary reports were cumulative, misleading the user.
Also, made output a little more compact and readable, ensuring numbers line up
unless unusually many digits are needed for times and iteration counts.
2017-04-06 14:54:08 +02:00
Tor Harald Sandve
19a16ceeca Set timesteps after events
The time step after an event can either be set using
timestep_in_days_after_event or using the TUNING keyword in the deck.
2017-03-09 08:54:44 +01:00
Atgeirr Flø Rasmussen
27c0430932 Change include paths for moved headers. 2017-02-10 16:07:25 +01:00
Arne Morten Kvarving
86fbb36fd2 adjustments for imported files
- adjust include paths
- add new test to build system
- add new example to build system
2017-02-10 13:02:00 +01:00
Arne Morten Kvarving
1cb81c12e8 changed: pass fipnum array into adaptive time stepping loop
needed as substep summary reports requires FIP data to be available.
add calculation of this data if output is requested and summary
config holds relevant keywords.
2017-02-09 09:33:32 +01:00
Tor Harald Sandve
f65f5d2c3b Store whether timestep failed or not
Used in flow ebos to tell the simulator to recalculate the cached
quantities for failed timesteps.
2016-12-19 10:52:59 +01:00
Andreas Lauser
676af2b00b AdaptiveTimeStepping: fix stupid (but harmless) mistake in the sub-step info message
that was a copy-and-pasto: newton iterations = linearizations - 1
2016-12-03 15:04:32 +01:00
Andreas Lauser
6720eb7a75 clean up and extend the SimulationReport class
it now also accounts for assembly, linear solve, update and output
write time and indicates if an operation has converged.
2016-11-30 11:27:49 +01:00
Tor Harald Sandve
a083f46d44 Make it possible to set initial timestep
Default is kept at -1.0. I.e. this PR does not change the current
behaviour.
2016-10-28 09:03:29 +02:00
Atgeirr Flø Rasmussen
08b7db6c7f Classify convergence failure as a "problem" not "error". 2016-10-20 22:36:20 +02:00
Atgeirr Flø Rasmussen
83b3d8a149 Ensure logging only on first rank. 2016-10-20 22:36:20 +02:00