Commit Graph

2342 Commits

Author SHA1 Message Date
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
Markus Blatt
40fec324d5 Rename no_components to num_components. 2015-05-19 19:53:37 +02:00
Markus Blatt
3b359df534 Update copyright information. 2015-05-19 16:20:57 +02:00
Markus Blatt
e8ebf0840b Allow to create the correct communication information if there are several unknowns.
In this case the parallel index set might represent N entries (this might be the number of
cells of grid). Nevertheless, there several (n) equations/unknowns attached to each index.
In this case we construct a larger index set representing N*n unknows, where each unknown
is attached to an index.

This change only affects parallel runs.
2015-05-19 16:18:14 +02:00
Atgeirr Flø Rasmussen
99137ecf9b Merge pull request #800 from blattms/parallel-verbose-only-on-master
Allow to prevent printing to std::cout.
2015-05-13 14:42:37 +02:00
Markus Blatt
4c768eb177 Get rid of unclear continue; statement in favor of if-else 2015-05-12 15:30:20 +02:00
Markus Blatt
cc386ef3eb Switched from default constructing to explicit construction with false. 2015-05-08 19:44:50 +02:00
Markus Blatt
44f5ddd2c8 Adds possibility of having a well not stored on a grid partitioning.
In a parallel run each process only knows a part of the grid. Nevertheless
it does hold the complete well information. To resolve this the WellsManager
must be able to handle this case.

With this commit its constructor gets a flag indicating whether this is
a parallel run. If it is, then it does not throw if a well has cells that
are not present on the local part of the grid. Nevertheless it will check
that either all or none of the cells of a well are stored in the local part
of the grid.

Wells with no perforated cells on the local will still be present but set to SHUT.
2015-05-08 16:35:00 +02:00
Markus Blatt
52b40c9477 Allow to prevent ParameterGroup from printing to std::cout.
This commit adds a verbose flag to the constructor of
ParameterGroup to allow for deactivating any
output to std:cout. This is handy for parallel runs where we only
want to print statistics on one process.
2015-05-08 11:13:30 +02:00
Markus Blatt
973df44ea1 Allow to prevent SimulatorReport for printing to std::cout.
This commit adds a verbose flag to the constructor of
SimulatorReport to allow for deactivating any
output to std:cout. This is handy for parallel runs where we only
want to print statistics on one process.
2015-05-08 11:12:23 +02:00
Andreas Lauser
f66a43288f remove some unused classes
This is mostly infrastructural code (Opm::Spline,
Opm::TriDiagonalMatrix, property system and the cubic polynomial
inversion code) that is only used by opm-material and eWoms. The
original intention of bringing this code into opm-core was to allow
other modules to start to use this easily. Since nothing in this
direction happened during the last one and a half years, the code only
represents baggage in the opm-core context and should thus be moved to
their consumer modules to make the life of everyone involved simpler.
2015-04-28 12:46:59 +02:00
dr-robertk
ce88915466 Merge pull request #790 from atgeirr/new-default-parameters
Modify default parameters to be suitable for the Norne case. Please rerun Norne.
2015-04-22 14:37:47 +02:00
Atgeirr Flø Rasmussen
1845aa65f6 Adjust parameters after testing. 2015-04-22 13:03:19 +02:00
Joakim Hove
e2c5dba11e Ert function ecl_sum_add_tstep() expects seconds. 2015-04-22 09:30:32 +02:00
Atgeirr Flø Rasmussen
e70712f2d2 Modify default parameters to be suitable for the Norne case. 2015-04-21 11:41:45 +02:00
Atgeirr Flø Rasmussen
272b63e25d New method SimulatorReport::reportFullyImplicit().
It does not make sense to report transport and pressure separately
for fully implicit solvers. It still makes sense to separate solver
from init and output though.
2015-04-21 10:48:02 +02:00