Commit Graph

2357 Commits

Author SHA1 Message Date
Joakim Hove
7b6172a1f8 Updated to use ParseMode. 2015-08-06 15:56:51 +02:00
chflo
a949d5a736 OPM-218: Write restart files at same interval as eclipse 2015-08-05 13:38:52 +02:00
chflo
5e9e472613 OPM-218: Fix Flow vs Eclipse restart interval write differences: Use new method for correct date in rsthead 2015-07-27 13:27:14 +02:00
chflo
338777f514 OPM-218: Fix Flow vs Eclipse restart interval write differences: Override method from SimulatorTimerInterface 2015-07-27 13:26:28 +02:00
chflo
0f064bea3e OPM-218: Fix Flow vs Eclipse restart interval write differences: Added new method to SimulatorTimerInterface 2015-07-27 13:25:33 +02:00
Robert Kloefkorn
ae740adaf3 SimulatorState: use register{Cell/Face}Data also in SimulatorState. 2015-07-08 16:30:51 +02:00
Robert Kloefkorn
0ad5146b1f make ids protected. 2015-07-08 13:24:19 +02:00
Robert Kloefkorn
034f163d88 SimulatorState: clear memory on init. 2015-07-08 13:23:36 +02:00
Robert Kloefkorn
5ca0a0f788 SimulatorState: added copyright
BlackoilState: added copyright

Also, small docu fix.
2015-07-08 13:23:36 +02:00
Robert Kloefkorn
3bc520eeb7 SimulatorState: store all data in a vector to allow for flexibility when used with
derived states.
BlackoilState: adjusted to SimulatorState changes.
2015-07-08 13:23:36 +02:00
Atgeirr Flø Rasmussen
7df516896d Fix unused argument warnings. 2015-07-08 12:37:11 +02:00
Andreas Lauser
4fe4bee158 fix SatFuncMultiplexer on old compilers
"old" == "gcc 4.4". the standard c++ library of this compiler seems to
invoke the copy operator when creating objects in a vector, whereas
newer versions of the library don't. The problem is that std::unique
pointer cannot be copied because it is -- err -- unique and thus the
implicit copy operator for the SatFuncMultiplexer class gets deleted
by the compiler.

the fix is to introduce a "fake" copy operator which does not do
anything but is present to make std::vector of stdlibc++-4.4
happy. this is obviously not very elegant, but I could not come up
with a better solution. (another fix would be to use raw pointers
instead of std::unique_ptr, but IMO this does not qualify as
"better".)
2015-07-02 11:47:32 +02:00
Andreas Lauser
8ccf1b3dbe multiplexer saturation function: get rid of the pesky union and the reinterpret_cast
basically, we now store a pointer to the base class and convert this
to the concrete incarnation of the saturation function. the only
disadvantage of this is that it requires to allocate the concrete
objects dynamically, i.e., there's another layer of indirection. On
the plus side it saves a few bytes per object and it makes things
quite a bit simpler, so it is a win IMO.

thanks to [at]atgeirr for suggesting this.
2015-06-29 15:28:30 +02:00
Andreas Lauser
388578f5ba use the multiplexer saturation function in SaturationPropsFromDeck
this makes it possible to switch to different saturation functions
again. So far the only supported function besides the default one is
the one which implements the "Stone 2" model.
2015-06-29 14:49:20 +02:00
Andreas Lauser
47521dca1d add a multiplexer saturation function 2015-06-29 14:49:20 +02:00
Andreas Lauser
e016b1ea37 convert the "Stone2" and "Simple" saturation functions to fluid states 2015-06-29 14:49:20 +02:00
Andreas Lauser
63075249a9 SaturationPropsFromDeck: make the jump to fluid states
this means the following changes:

- the "SatFuncGwseg" class is converted
- for now, Gwseg is the only saturation function supported by
  SaturationPropsFromDeck. (will be changed in later commits.)
- the funcForCell() method of SaturationPropsFromDeck is removed as it
  just occludes things
2015-06-29 14:49:20 +02:00
Andreas Lauser
4b5de05d15 SaturationPropsFromDeck: remove the 'SatFuncSet' template parameter
in any reasonable simulator which reads an ECL deck the deck is going
to decide which saturation function is to be used and not the outside
code. also, the table this which function will be using is not really the
calling code's business. (for any reasonable deck it is always going to
be a non-uniform table so it makes a lot of sense to avoid unnecessary
complexity IMO.)

this patch temporarily removes the ability to use anything except the
ECL default saturation function ("Gwseg"). this ability will be
restored later in this patch series.
2015-06-29 14:49:20 +02:00
Andreas Lauser
3c484e4c6f add some fluid state classes
namely BlackoilStateToFluidState which takes a BlackoilState object
and exposes it as a opm-material like fluid state object. Similar for
ExplicitArraysFluidState, which takes raw arrays.

since fluid states are a local API, the index of the cell to be used
for these two classes must be set externally. The advantage of this
concept is that it is possible to make "saturation functions" which
not only depend on saturations but also on arbitrary other quanties
(like temperature or phase composition) without having to change the
API of the "saturation" functions.
2015-06-29 14:49:20 +02:00
Andreas Lauser
6ff2cc287f remove obsolete and empty file SatFuncStone2.cpp 2015-06-26 13:01:30 +02:00
Andreas Lauser
4ee7c34970 remove obsolete and empty file SatFuncGwseg.cpp 2015-06-26 13:01:30 +02:00
Andreas Lauser
db615ae01f remove obsolete and empty file SaturationPropsFromDeck.cpp 2015-06-26 13:01:22 +02:00
Atgeirr Flø Rasmussen
590a4898b8 Add missing include statement. 2015-06-22 13:04:14 +02:00
Atgeirr Flø Rasmussen
ae378c691b Merge pull request #819 from edbru/OPM-188
Opm 188 Read and write of RESTART wellstate data
2015-06-22 12:34:31 +02:00
Atgeirr Flø Rasmussen
cd4bd4fe5a Merge pull request #820 from GitPaean/supress_warnings
Adding two more warnings to disable_warnings.h.
2015-06-17 11:07:49 +02:00
Kai Bao
64fe376ac5 Adding two more warnings to disable_warnings.h.
-Wpragmas and -Wunused-but-set-variable
2015-06-17 10:57:45 +02:00
Edvin Brudevoll
8e3d64a8cc OPM-188: Fixup after review comment, removed unnecessary include 2015-06-17 09:41:01 +02:00
Edvin Brudevoll
9ec438f0d1 OPM-188: Fixup after review 2015-06-17 09:41:00 +02:00
Edvin Brudevoll
7d9dbaf750 OPM-188: Updated EclipseWriter with write of Restart wellstate data 2015-06-17 09:40:59 +02:00
Edvin Brudevoll
6283a8621b OPM-188: Added EclipseReader class for read of Restart wellstate data 2015-06-17 09:40:59 +02:00
Atgeirr Flø Rasmussen
80dd0ef570 Merge pull request #813 from iLoop2/Add_WPIMULT
Add WPIMULT keyword support
2015-06-16 14:50:55 +02:00
chflo
3f06ddd400 Use the IOConfig object from EclipseState to decide whether:
* output is to be formatted or not (FMTOUT keyword, default if keyword not present is unformatted)
* Whether restart file should be written for a specified report step
* whether restart files are to be unified or not (UNIFOUT keyword, default if keyword not present is multiple)
* whether an EGRID file should be written (GRIDFILE, NOGGF keywords)
* whether an INIT file should be written (INIT keyword)

* Removed former setting for interval writes to disk (from params)
2015-06-15 12:04:53 +02:00
Joakim Hove
c52ac33dfa Added missing free( ) to malloc() memory. 2015-06-10 22:53:51 +02:00
Fredrik Gundersen
8cf9703d25 Added support for WPIMULT 2015-06-02 13:24:37 +02:00
Atgeirr Flø Rasmussen
901209a723 Merge pull request #811 from atgeirr/fix-warnings
Silence multiple warnings.
2015-05-29 15:39:47 +02:00
Joakim Hove
6af549dce0 Merge pull request #804 from iLoop2/OPM-203
Added suport for converting of Metric grid values
2015-05-29 09:21:43 +02:00
Atgeirr Flø Rasmussen
a645c82a00 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
e5e6a191f5 Merge pull request #809 from blattms/fix-mask-to-min
Fix mask to min (completes PR PR #805)
2015-05-27 17:45:40 +02:00
Markus Blatt
bc0e842ac8 Fix creation of initial value for computing the max (Fixes PR #805).
Bård spotet a bug after PR #805 was merged. Indead returning
-numeric_limits<type>::min() does not make sense for integral
values. This commit resorts to returning numeric_limits<type>::min().

Kudos to Bård for his attention.
2015-05-27 15:03:28 +02:00
Atgeirr Flø Rasmussen
06e7286443 Suppress a warning in serial mode. 2015-05-27 11:41:52 +02:00
Markus Blatt
494ab71924 Update copyright 2015-05-27 11:07:16 +02:00
Markus Blatt
347d1a8e23 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
Markus Blatt
95fa515a5a Adds the possibility to compute a parallel inner product. 2015-05-27 11:07:15 +02:00
Markus Blatt
3224450b5d Do not use the masked value of the first container entry as initial value.
This behaviour does not work for computing a global inner product.
Therfore this commit introduces a new function to the functor that
returns an appropriate initial value.
2015-05-27 11:07:15 +02:00
Markus Blatt
83798c9f3a Use correct type get the maximum value.
Previously we hardcoded float. Now we use the result_type of
the binary_function without any qualifiers. With any cv or reference
qualifiers std::numeric_limits uses a default implementation which
produces nonesense (e.g. numeric_limits<const int>::max() returns 0).
2015-05-27 11:07:15 +02:00
Markus Blatt
18f504344a Removes well debugging output. 2015-05-27 09:22:54 +02:00
Markus Blatt
9e20efc4be [bugfix,parallel] Deactivate non-existing wells in manager.
Previously, we used the setStatus method to set wells that do not
exist on the local grid to SHUT. Or at least this is what I thought
that ```well.setStatus(timestep, SHUT)```. Unfortunately, my
assumption was wrong. This was revealed while testing a parallel run
with SPE9 that threw an expeption about "Elements must be added in
weakly increasing order" in Opm::DynamicState::add(int, T). Seems like
the method name is a bit misleading.

As it turns out the WellManager has its own complete list of active
wells (shut wells are simply left out). Therefore we can use this
behaviour to our advantage: With this commit we not only exclude shut
wells from the list, but also the ones that do not exist on the local
grid. We even get rid of an ugly const_cast.

Currently, I have running a parallel SPE9 test that has not yet
aborted.
2015-05-26 21:01:16 +02:00
Fredrik Gundersen
01282a49f2 OPM-203 Added supoort for converting of Metric grid values 2015-05-21 12:32:44 +02:00
Markus Blatt
9da18a14e1 Use more accurate name for the size of the global components.
The new name is num_global_components, which actually is an upper bound
for the the number of global components (1 plus the maximum global index).
2015-05-19 19:58:05 +02:00
Markus Blatt
f0a71e8898 Add spaces around binaries and explicit braces. 2015-05-19 19:56:37 +02:00