Commit Graph

143 Commits

Author SHA1 Message Date
Arne Morten Kvarving
f027262ec4 remove files 2018-11-16 14:53:37 +01:00
Atgeirr Flø Rasmussen
8d2bc0e449 Add missing include for std::vector. 2018-11-13 20:26:44 +01:00
Atgeirr Flø Rasmussen
cf9b7c39b9 Adapt to moved opm-grid headers. 2018-02-10 08:33:33 +01:00
Arne Morten Kvarving
141186ad1d changed: opm/[core -> common]/utility/parameters 2018-01-30 16:33:45 +01:00
Arne Morten Kvarving
83d4dae117 changed: do not ifdef the entire implementation
better to handle this in build system
2018-01-17 18:16:26 +01:00
Andreas Lauser
5bf53148c0 replace #if HAVE_CONFIG_H by #ifdef HAVE_CONFIG_H
it seems like most build systems pass a -DHAVE_CONFIG_H flag to the
compiler which still causes `#if HAVE_CONFIG_H` to be false while it
clearly is supposed to be triggered.

That said, I do not really see a good reason why the inclusion of the
`config.h` file should be guarded in the first place: the file is
guaranteed to always available by proper build systems, and if it was
not included the build either breaks at the linking stage or -- at the
very least -- the runtime behavior of the resulting libraries will be
very awkward.
2017-12-11 11:33:52 +01:00
Andreas Lauser
db1f257184 make call_umfpack.c compile even if UMFPACK is not available
That said, don't try to call any of its functions or you'll regret it
at runtime!
2017-12-11 11:33:52 +01:00
Andreas Lauser
503c7d1ca8 make the PETSc code compile even if PETSc is not available
if PETSc is not available, the .cpp file will compile fine because it
will be reduced to be empty, but trying to include
LinearSolverPetsc.hpp in this case will result in an error.
2017-12-11 11:33:52 +01:00
Markus Blatt
2bdafdb602 [cleanup] Removes unnecessary if clauses for unsupported DUNE versions.
We are targetting DUNE 2.4.* and 2.5.* currently. Therefore this commit removes
the if checks for lower versions to cleanup the code.
2017-10-11 21:25:18 +02:00
Kai Bao
bbb0c5a993 removing the unused parameter:: for LinearSolverPetsc
to fix the compilation when PETsc exists.
2017-06-06 11:00:51 +02:00
Arne Morten Kvarving
ca2288ac37 changed: remove embedded 'parameters' namespace in ParamGroup
inconsistent and unnecessary.

this is purely a cosmetic change, the only exception was a function with
the generic name 'split', which was renamed to splitParam to avoid confusion.
2017-04-28 15:34:11 +02:00
Andreas Lauser
6f257f0877 fix non-MPI builds
some headers must be included unconditionally.
2017-04-20 15:12:34 +02:00
Markus Blatt
0fc3a57d20 Added an accumulate method that allows to switch off overlap entries.
It does using a mask vector with entries 0 or 1. If that is not provided
it falls back to std::accumulate.
2017-01-11 12:18:39 +01:00
Kai Bao
d48255d198 warning fixed related to petsc 2016-11-16 15:35:35 +01:00
Arne Morten Kvarving
0728d503b6 update petsc code
- api changes in newer versions
- do not manually destroy the preconditioner. this is, and has always
  been, owned by the ksp object and dies with its destruction.
2016-09-29 14:19:48 +02:00
babrodtk
929cc619f6 Fixed warnings 2016-09-06 07:50:02 +02:00
Atgeirr Flø Rasmussen
010480a7de Merge pull request #1039 from atgeirr/fix-compile-maxabs-unsigned
Avoid ambiguous calls to abs with unsigned integers.
2016-06-17 08:02:20 +02:00
Atgeirr Flø Rasmussen
f5d1cbfb75 Make specialization for all unsigned integer types. 2016-06-16 08:47:21 +02:00
Bård Skaflestad
c5c5893591 Merge pull request #1040 from atgeirr/fix-linsolverfactory-default-solver
Set default solver depending on configuration.
2016-06-15 17:34:41 +02:00
Atgeirr Flø Rasmussen
854296d710 Address review comments. 2016-06-15 15:01:45 +02:00
Atgeirr Flø Rasmussen
22c2093426 Set default solver depending on configuration. 2016-06-15 14:32:00 +02:00
Atgeirr Flø Rasmussen
06ebdc9268 Avoid ambiguous calls to abs with unsigned integers. 2016-06-15 10:55:42 +02:00
Arne Morten Kvarving
33b29e9991 Revert "Check for HAVE_UMFPACK in LinearSolverFactory"
This reverts commit f54c74db0637640f5fb224fab243b294cd034f15.
2016-06-13 10:43:21 +02:00
Jørgen Kvalsvik
84b0c8bc59 Check for HAVE_UMFPACK in LinearSolverFactory
Check for the right preprocessor define to enable umfpack support.
Matches the directive set in config.h
2016-06-10 17:00:34 +02:00
Markus Blatt
7762974354 Make ParallelIstlInformation::ownerMask_ accessible.
This is needed in opm-simulator to calculate the parallel euclidian
product of the saturations.
2016-06-08 11:02:13 +02:00
Markus Blatt
008c5b7c8f Added utilities to compute a real L-infinity norm in parallel. 2016-06-07 15:00:57 +02:00
Markus Blatt
2c22cb68c8 Return a constant reference to the mask for ParallelISTLInformation::updateOwnerMask
Thus we can actually access the mask in external code. This is for
example needed when calculating averages in RateConverter of opm-autodiff.
2015-11-02 15:02:32 +01:00
Markus Blatt
559c91505d [bugfix] Fixes copyOwnerToAll.
Previously, we copied owner/overlap to all which is clearly wrong.
Now we copy from owner to all as the function name says.
2015-10-26 23:45:12 +01:00
Andreas Lauser
d41f989a78 use the error macros from opm-common 2015-10-08 11:42:15 +02:00
Joakim Hove
197dda9ee0 Relocated warning headers. 2015-10-06 11:39:14 +02:00
Atgeirr Flø Rasmussen
5216550cdf Suppress warnings. 2015-08-10 16:07:45 +02:00
Atgeirr Flø Rasmussen
b80a202287 Define the UF_long type if necessary.
The UF_long type is deprecated in UMFPack, and actually seems
to be removed from the latest versions.
2015-08-06 09:54:05 +02:00
Atgeirr Flø Rasmussen
a5da86a9ec Silence multiple warnings.
Also add more warnings to the disabling list of disable_warnings.h.
2015-05-28 14:05:09 +02:00
Markus Blatt
7f266458b5 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
Markus Blatt
a4e28119a3 Adds the possibility to compute a parallel inner product. 2015-05-27 11:07:15 +02:00
Markus Blatt
3fb7af1719 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
fa279d6b16 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
ca3bcb2662 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
e2df1e981c Add spaces around binaries and explicit braces. 2015-05-19 19:56:37 +02:00
Markus Blatt
be7abe0706 Rename no_components to num_components. 2015-05-19 19:53:37 +02:00
Markus Blatt
202a0ab827 Update copyright information. 2015-05-19 16:20:57 +02:00
Markus Blatt
104c75d575 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
Markus Blatt
16d05fcc93 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
236718cff9 Deactivate PETSc's KSPCHEBYSHEV (not available in 3.2!) 2015-04-13 11:01:24 +02:00
Markus Blatt
b791d0743b 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
Markus Blatt
a458aa7688 Prevents unsigned-signed-comparison warnings for container with signed size.
Well, you never know. There are containers that use a signed integer
for storing its size. This results in a warning about comparing signed with
unsigned integers. This commit prevents this by explicitly casting the size
to std::size_t.
2015-02-19 09:13:39 +01:00
Markus Blatt
a35b2f2b7c [fixup] Use the correct function.
This should have been in the las commit and should be added there before
merging.
2015-02-13 11:00:28 +01:00
Markus Blatt
50aba2c8f6 Makes right hand side passed to linear solver consistent.
Due to the size of the overlap layer and the discretization scheme
the rhs might not contain correct values for overlap cells. This
commit makes sure they are correct by an additional communication step.
2015-02-12 21:00:32 +01:00
Markus Blatt
2caaca4160 Do not rely on begin()/end() of the containers to compute reductions.
One would think that such an assumption is safe in any case,
wouldn't one? But foen Eigen'S container this does not hold.
They do not provide STL compliant iterators, and access to them.
With this patch make the even stricter assumption that the containers
are random access and use operator[] instead of iterators.
2015-01-30 16:10:41 +01:00
Markus Blatt
2a3adf7591 Constified the compute reduction functions.
These should and have to be used with a const object.
2015-01-28 21:55:35 +01:00