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
ffaa48295a
Add restart I/O of suggested timestep length.
2017-03-01 08:45:34 +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
Jørgen Kvalsvik
ad6b77cc15
Update to shared_ptr-less parser interface.
2016-10-20 10:14:41 +02:00
Andreas Lauser
144318b567
consolidate the unit system to opm-parser
...
since the unit code within opm-parser is now a drop-in replacement,
this simplifies things and make them less error-prone.
unfortunately, this requires quite a few PRs. (most are pretty
trivial, though.)
2016-10-10 17:50:26 +02:00
Markus Blatt
66f0b71fc1
Log the message of exceptions in the catch clause of adaptive time stepper.
2016-10-04 10:33:56 +02:00
Tor Harald Sandve
e034bbc7ad
Add initalizer for adaptiveTimeStepper that uses values from TUNING
...
Some of the tuning values from the TUNING keywords is used to tune the
timestepping.
2016-09-30 10:36:30 +02:00
Markus Blatt
815480d052
Only call writeTimeStep for real sub steps.
...
Previously, we also called it when the full time step was done.
As the simulator writes that information anyway and we cannot call
it a sub step, we omit the final write in the adaptive time stepper.
2016-09-26 11:51:17 +02:00
Tor Harald Sandve
4c4b5233c0
Guard against non-existing file
2016-09-21 13:46:31 +02:00
Tor Harald Sandve
1bde4f4a22
Small fixes hardcodedTimestepControl
...
-- avoid using eof()
-- add comments
-- no longer assumes two lines of comments.
-- revert change to default value for timestep.initial_step_length
-- make contructer explicit
-- pass reference
2016-09-21 09:39:36 +02:00
Tor Harald Sandve
380fe6e2fd
Timestepper based on userInput
...
A new timestepper that reads timesteps from a file generated using
ecl_summary "DECK" TIME
and applies it to the simulator
Also a parameter timestep.initial_step_length (default 1 day) is added
to controll the frist timestep.
2016-09-21 09:39:36 +02:00
babrodtk
63da817852
Initial version for outputting cell data
2016-09-01 14:37:41 +02:00
Atgeirr Flø Rasmussen
d31081992b
Merge pull request #1052 from andlaus/pass_timer_instead_of_dt
...
pass the timer object instead of the time step size to the simulators
2016-08-02 11:05:33 +02:00
Liu Ming
61889dafbd
fix indentation.
2016-07-14 10:30:20 +08:00
Liu Ming
62134b4a0f
drop useage of std::numeric_limits
2016-07-14 10:27:13 +08:00
Andreas Lauser
0dda8d49c5
pass the timer object instead of the time step size to the simulators
2016-07-05 12:23:55 +02:00
Kai Bao
02a3ba39b5
adding a initialStep() function to SimulatorTimer
...
to indicate if the current step is the inital step.
2016-07-04 11:12:53 +02:00
Liu Ming
b8ef9cb630
output well iterations if it is a valid number.
2016-06-30 09:03:30 +08:00
Liu Ming
30d9c34481
Add space.
2016-06-28 15:26:06 +08:00
Liu Ming
b1b464535a
output well iterations and non-linear iterations.
2016-06-28 13:40:32 +08:00
Liu Ming
6097a14b0e
get current date time.
2016-06-21 11:25:05 +08:00
Liu Ming
63f244a36d
mark time stepping messages type as OpmLog::note
2016-06-21 08:44:32 +08:00
Jørgen Kvalsvik
18fda2d7f0
WellState::report() to make opm-output Well data
2016-06-06 12:40:44 +02:00
Liu Ming
248ea780b3
add missing braces.
2016-05-16 09:04:54 +08:00
Liu Ming
a4dc135045
use OpmLog only for error messages.
2016-05-10 14:13:33 +08:00
Liu Ming
40dbcc496a
output timer messages for terminal and log file.
2016-05-09 13:31:04 +08:00
Liu Ming
cabfffe25d
use ostream not std::cout directly.
2016-05-09 13:30:28 +08:00
Joakim Hove
e843461b37
Merge pull request #962 from joakim-hove/remove-simulator-state
...
Replaced SimulatorState -> SimulationDatacontainer
2016-03-29 13:16:19 +02:00
Joakim Hove
b42700c6a8
Replaced SimulatorState -> SimulationDatacontainer
...
Have removed the SimulatorState base class, and instead replaced with
the SimulationDatacontainer class from opm-common. The SimulatorState
objects were typcially created with a default constructor, and then
explicitly initialized with a SimulatorState::init() method. For the
SimulationDataContainer RAII is employed; the init( ) has been removed -
and there is no default constructor.
2016-03-29 10:44:49 +02:00
Robert Kloefkorn
65d4127f4e
SimulatorTimerInterface: include missing header for unique_ptr.
2016-03-29 10:42:03 +02:00
Robert Kloefkorn
f9f13143a2
SimulatorTimers: added method clone to allow for copying of the objects.
2016-03-29 10:34:16 +02:00
Atgeirr Flø Rasmussen
cb41a45687
Remove unused 'restart' parameter from SimulatorTimer::init().
2016-02-29 11:03:08 +01:00
chflo
d43f109770
OPM-251: Support for restart
2016-01-04 16:11:21 +01:00
Atgeirr Flø Rasmussen
0de2cff986
Follow class renaming.
2015-11-13 11:37:53 +01:00
Robert Kloefkorn
d3af817ff2
timeError --> relativeChange.
2015-11-10 09:53:40 -07:00
Robert Kloefkorn
005a0c2930
AdaptiveTimeStepping: pass object to compute time error to time step control. This
...
allows us to shift the computation of the error to the physical model.
2015-11-10 09:45:07 -07:00
Andreas Lauser
2399629ebc
use the error macros from opm-common
2015-10-08 11:42:15 +02:00
Robert Kloefkorn
4f8906c5fc
AdaptiveTimeStepping: also apply terminal output to solver_verbose.
2015-09-16 15:19:19 +02:00
Robert Kloefkorn
8c93936fd5
AdaptiveTimeStepping: pass variable terminal output to avoid multiple outputs in
...
parallel.
2015-09-16 14:33:35 +02:00
Tor Harald Sandve
6d28f19009
Change default values
...
- use time stepping algorithm pid instead of pid + iter
Adjusting the time-steps on the number of linear iterations does
currently not give any improvents on the time-stepping.
- Change the pid tolerance. The time-stepper will take longer time-steps
and thus reduce the simulation time significantly. The Norne and the SPE
results does not degrade
- Less aggressive reduction of time-steps after convergence problems
2015-09-08 10:56:58 +02:00
Tor Harald Sandve
dbce88aa2c
Limit the timestep growth for all timestepping algorithm
...
The time step restriction is moved to AdaptiveTimeStepping_impl.hpp to
make it apply to all time-stepping algorithms.
2015-09-03 12:52:47 +02:00
Markus Blatt
4c0189f917
[bugfix] Allow querying the current time step even if we are done.
...
Previously there was an assertion whether the time stepping is still
running when querying the time step. After commit 5af794cfd588b this
triggered an assertion for Norne. As there is no reason to limit querying
the current time step in this way. This commit simply removes the assertion
in AdaptiveSimulatorTimer::currentStepLength.
This closes OPM/opm-autodiff#446
2015-09-01 19:34:30 +02:00
Tor Harald Sandve
0227165bd5
Rename last_timestep_ to suggested_next_timestep_
2015-08-25 11:16:36 +02:00
Tor Harald Sandve
81b8b631a6
Use estimated time-step instead of average in next report step
2015-08-25 06:32:39 +02:00
Atgeirr Flø Rasmussen
42464cbcb7
Match init order to member order.
...
In a constructor initialisation list, the order should be the same
as the order in which the variables actually are initialised, which
is given by the order they are declared in the class and not by the
order in the initialisation list.
2015-08-19 11:33:29 +02:00
Kai Bao
a7f177e35e
adding command line option full_timestep_initially_
...
when the option is true, for each report step, the size of the adaptive
time step always beginning with the size of the report step.
2015-08-17 15:56:31 +02:00
Atgeirr Flø Rasmussen
2dfbb4ed82
Correct comment.
2015-08-17 13:02:37 +02:00
Atgeirr Flø Rasmussen
e41b766780
Catch MatrixBlockError in the adaptive time stepper.
...
This can be thrown by the ILU0 preconditioner when using the
interleaved solver approach.
2015-08-17 12:59:31 +02:00
chflo
b3b0b427ab
Reverse changes that should not have been merged into master
2015-08-10 14:17:59 +02:00
chflo
bfa1d476e3
OPM-218: Write restart files at same interval as eclipse
2015-08-05 13:38:52 +02:00
chflo
84934d0c1f
OPM-218: Fix Flow vs Eclipse restart interval write differences: Override method from SimulatorTimerInterface
2015-07-27 13:26:28 +02:00
chflo
d0af851f8e
OPM-218: Fix Flow vs Eclipse restart interval write differences: Added new method to SimulatorTimerInterface
2015-07-27 13:25:33 +02:00
Atgeirr Flø Rasmussen
9f721bbe9a
Silence multiple warnings.
...
Also add more warnings to the disabling list of disable_warnings.h.
2015-05-28 14:05:09 +02:00
Atgeirr Flø Rasmussen
fcd637896c
Suppress a warning in serial mode.
2015-05-27 11:41:52 +02:00
Markus Blatt
845de266ee
Update copyright
2015-05-27 11:07:16 +02:00
Markus Blatt
384ef84556
Makes the time step control parallel.
...
The only stage where parallelism changes the adaptive time
stepping is when some inner products on the saturation and
pressure are computed.
This commit makes this part parallel by added an additonal boost::any
parameter to the time stepping and the controller. Per default this
is empty. In a parallel run it contains a ParallelIstlInformation object
encapsulating the information about the parallelisation. This then used
to compute the parallel inner product.
2015-05-27 11:07:16 +02:00
Atgeirr Flø Rasmussen
b6d5a3cad5
Adjust parameters after testing.
2015-04-22 13:03:19 +02:00
Atgeirr Flø Rasmussen
2dc02043e2
Modify default parameters to be suitable for the Norne case.
2015-04-21 11:41:45 +02:00
Tor Harald Sandve
9272f2d8bf
Add dune/istl/istlexception.hh to header
...
Fix to make it compile with dune-istl 2.2
2015-04-10 14:03:27 +02:00
Robert Kloefkorn
7f6008a80e
AdaptiveTimeStepping: also catch ISTLError casued in AMG when time step is to large.
2015-03-30 11:07:08 +02:00
Atgeirr Flø Rasmussen
4cc0f7ef6d
Suppress unused argument warning.
2015-02-17 10:27:44 +01:00
Robert K
4a885989dd
AdaptiveTimeStepping: remove initial_fraction (use restart factor instead) and use
...
average of previously used time steps to suggest next time step.
2015-02-10 13:10:39 +01:00
Robert K
26f113b649
AdaptiveSimulatorTimer: -improvement in time step adjustment near end of time interval
...
-max time step parameter
PIDTimeStepControl --> TimeStepControl:
- added simple iteration count time step control
- bug fix in PIDAndIterationCountTimeStepControl
AdaptiveTimeStepping: apply the above changes.
2015-02-06 13:59:50 +01:00
Robert K
e84325a0a7
make documentation equal for all three classes.
2015-01-28 15:46:11 +01:00
Robert K
f771becf25
SimulatorTimer...: added method advance which is the new interface for previously used
...
operator++.
2015-01-28 15:25:11 +01:00
Robert K
ae683efcfc
AdaptiveTimeStepping: make output more easy to read.
2015-01-16 16:08:59 +01:00
Robert K
15c2e91730
AdaptiveTimeStepping: Switch suggested time step to max of the previous taken substeps.
2015-01-16 16:08:59 +01:00
Robert K
04e8533cee
AdaptiveSimulatorTimer: initialization of first time step size follows the same rule as
...
for later steps.
PIDTimeStepControl: added maxgrowth factor which indicates the maximum allow groth of
the time step from one to the next value.
2015-01-16 16:08:59 +01:00
Robert K
aa66a4304f
EclipseWriter: remove leftovers of WriterTimer.
...
AdaptiveSimulatorTimer: use back instead of rbegin.
2015-01-15 11:34:59 +01:00
Robert K
757bc67b80
cleanup: reportStepIdx --> writeStepIdx.
...
startDate --> startDateTime
removal of debug output.
2015-01-09 16:22:03 +01:00
Robert K
25af9e0033
- adjust OutputWriter to SimulatorTimerInterface
...
- remove WriterTimer from EclipseWriter and use SimulatorTimerInterface
- adjust to the above in AdaptiveTimeStepping.
2015-01-09 16:22:03 +01:00
Robert K
be69c4c10e
Introduce an interface for SimulatorTimer and AdaptiveSimulatorTimer.
...
currentDateTime and currentPosixTime are default implementations.
2015-01-09 16:21:20 +01:00
Robert K
aa9fe2a631
EclipseWriter: allow for writing of substeps in addition to report steps.
2015-01-09 16:21:03 +01:00
Atgeirr Flø Rasmussen
1c5e4e9ef3
Suppress unused argument warning.
2014-11-05 07:51:21 +01:00
Robert K
f16f4a2e98
fix problem with solver reastart, variable was not reset.
...
Also, the time step does only grow moderately after a solver restart.
2014-10-24 12:32:00 +02:00
Robert Kloefkorn
16624f6f4e
address Atgeirs comments.
2014-10-20 12:32:11 +02:00
Robert Kloefkorn
40d851e89f
also catch std::runtime_error, i.e. convergence of linear solver failed.
2014-10-14 15:18:36 +02:00
Robert Kloefkorn
1bda36b251
added initial fraction to initialize last_timestep.
2014-10-13 11:17:37 +02:00
Robert Kloefkorn
3b58ad9aa4
Two small adjustments that came up when running in debug mode.
2014-10-10 13:55:28 +02:00
Robert Kloefkorn
246acea765
use unit::convert::to instead of hard coded 86400 factor.
2014-10-07 09:48:57 +02:00
Robert K
0e133f2cca
move implementation to .cpp files.
2014-10-06 14:26:23 +02:00
Robert K
294b899ee8
the adaptive time stepping utility classes.
2014-10-06 14:06:07 +02:00
Robert K
8a17e5e5d6
move protected area to the bottom and remove unused lines as well as halfTimeStep method.
2014-10-03 15:53:18 +02:00
Robert K
67b42fd4f4
remove white spaces.
2014-10-03 14:14:01 +02:00
Robert K
e99158faa9
reset to old state.
2014-10-03 14:10:56 +02:00
Robert K
bfbd488e3e
renamed and split advance method.
2014-10-03 13:44:05 +02:00
Robert K
0a03aea874
class for handling adaptive time steps.
2014-10-03 13:33:13 +02:00