Commit Graph

2326 Commits

Author SHA1 Message Date
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
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
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
Atgeirr Flø Rasmussen
1719e9f948 Silence PLT complaint spam.
While the warning is correct, it is not a good idea to spam
it for all wells and timesteps.
2015-04-21 10:47:55 +02:00
Joakim Hove
ea3fbcf317 Added bool time_in_days to ecl_sum constructor.
The ert ecl_sum class is avare of time units; for FIELD and METRIC units
the time in the summary files is stord in days, for LAB units it is
stored in hours. From EclipseWriter this is managed by a bool flag
'time_in_days'.
2015-04-16 18:33:12 +02:00
Bård Skaflestad
aea968877f Merge pull request #786 from atgeirr/unhandled-arguments
Store unhandled command-line arguments
2015-04-14 16:59:45 +02:00
Atgeirr Flø Rasmussen
f902b7e265 Modified behaviour for unhandled arguments.
Use constructor argument verify_syntax to decide course of action: if false,
store unhandled arguments, if true, write a message and throw.
2015-04-14 15:29:55 +02:00
Atgeirr Flø Rasmussen
dfe6e730eb Return const reference from unhandledArguments(). 2015-04-14 13:55:29 +02:00
Atgeirr Flø Rasmussen
1fb2bc651c Store unhandled command-line arguments.
A new method ParameterGroup::unhandledArguments() is available to
access the list of unhandled arguments. Before, when such arguments
were encountered they were ignored and a warning was printed to
standard out.

Apart from the lack of a (potentially misleading) warning, this
should not change the behaviour of existing clients of the class.
2015-04-14 13:39:43 +02:00
Markus Blatt
8ced45959f Correct documentation of why we use operator[] to initialize map.
This commit updates the source code comment about using operator[] to
initialize the unordered map. Thanks to Bard's persistence we found
out that the cause is not the construction of the key value of type
std::string from const char* but the mapped type being a (mutable)
char* (due to C?).

This completes the PR #784.
2015-04-14 09:36:47 +02:00
Markus Blatt
5347ac5aa3 Deactivate PETSc's KSPCHEBYSHEV (not available in 3.2!) 2015-04-13 11:01:24 +02:00
Markus Blatt
760cea8b44 Use operator[] to populize unordered_map with string as the key
g++-4.4 has problems converting const char* to char*
which it thinks is needed for constructing std::string.
Using operator[] circumvents this problem.

The compiler error fixed here was:
/usr/include/c++/4.4/bits/stl_pair.h: In constructor ‘std::pair<_T1, _T2>::pair(std::pair<_U1, _U2>&&) [with _U1 = const char*, _U2 = const char*, _T1 = const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _T2 = char*]’:
/home/mblatt/src/dune/opm/opm-core/opm/core/linalg/LinearSolverPetsc.cpp:40:   instantiated from here
/usr/include/c++/4.4/bits/stl_pair.h:107: error: invalid conversion from ‘const char*’ to ‘char*’
make[2]: *** [CMakeFiles/opmcore.dir/opm/core/linalg/LinearSolverPetsc.cpp.o] Fehler 1
2015-04-13 10:58:31 +02:00
Tor Harald Sandve
9b2ca4d1d3 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
Andreas Lauser
8eed770265 fix screw-up in the unit handling for the summary output
basically, the unit system was reversed for rates and a
UnitSystem::UnitType object was implicitly casted to bool for the
bottom hole pressure monitor. (if the BHP monitor worked, it was only
by accident...)
2015-04-08 13:36:43 +02:00
Atgeirr Flø Rasmussen
1d2849691f Merge pull request #775 from atgeirr/suppress-warnings
Suppress warnings
2015-04-07 09:13:14 +02:00
Andreas Lauser
28bde4290f do not pass the deck to the output writers anymore
I'd prefer to pass it for consistency reasons (because basically every
other class which takes an EclipseState object also requires a deck
object), but some people seem to have a very strong option about
this...
2015-03-31 12:12:02 +02:00
Andreas Lauser
db35b75975 summary output: use the EclipseState to determine the deck unit system
seems like the guy who added EclipseState::getDeckUnitSystem() suffers
from dementia...
2015-03-31 12:11:57 +02:00
Robert Kloefkorn
79f6bedf38 AdaptiveTimeStepping: also catch ISTLError casued in AMG when time step is to large. 2015-03-30 11:07:08 +02:00
Atgeirr Flø Rasmussen
81f7aaca68 Remove unused function argument. 2015-03-27 15:42:40 +01:00