Commit Graph

56 Commits

Author SHA1 Message Date
Markus Blatt
7495bfa6c4 [bugfix] Use the size of the vector for the copying.
The last patch did not compile as there was no size member
in scope. Therefore this patch resorts to using the size of
the vector.
2014-03-26 10:23:11 +01:00
Markus Blatt
909d3c9019 Moved ISTL right and left hand side construction for ISTL to solveSystem 2014-03-25 09:37:41 +01:00
Markus Blatt
e1d0995104 Explicitly construct the ScalarProduct, and SequentialInformation.
This patch refactors the calls to the dune-istl solvers.
The SeqScalarProduct, and SequentialInformation is now explicitly
constructed and later used to construct the smoothers
generically. Aditionally the linear operator (MatrixAdapter) is
constructed before calling the various solver dependent solve
routines.

While this does not change the behaviour of the code it is a
preparatory step to support parallel solvers. These parallel
solvers only differ in the type of the scalarproduct and
linear operator used from the sequential ones.
2014-03-20 10:39:48 +01:00
Markus Blatt
8f60175d04 Include fastamg.hh for dune-istl 2.3
For the inofficial 2.2 release this was included automatically with amg.hh.
2014-03-19 19:51:17 +01:00
Markus Blatt
d333f413d1 Complete cf7f07b PR #530 to support FastAMG with dune-istl 2.3
This fixes further occurences of DUNE_HAS_FASTAMG that were
missed in pull request #530.

Previously we relied on the define DUNE_HAS_FAST_AMG to detect
whether these preconditioners are available. This define is only
available in the 2.2 release with cmake support. Therfore we now
addtionally test whether we are using dune-istl 2.3 or newer.
2014-03-19 17:40:02 +01:00
Markus Blatt
8c8bb67aa0 Makes KAMG and FastAMG solver available with dune-istl 2.3
Previously we relied on the define DUNE_HAS_FAST_AMG to detect
whether these preconditioners are available. This define is only
available in the 2.2 release with cmake support. Therfore we now
addtionally test whether we are using dune-isl 2.3 or newer.
2014-03-19 11:19:25 +01:00
Atgeirr Flø Rasmussen
cb99938c62 Fix initialisation warning. 2014-02-05 13:05:33 +01:00
Roland Kaufmann
88a38a8e3f Fix LinearSolverIstl cleanup also for fast AMG branch
To avoid deprecation warnings the number of smoothing steps was passed
through the Criterion instead of directly to the constructor in commit
a7f32b934b.

However, due to an insufficient test matrix this was not tested using
the fast AMG variant of DUNE so it breaks the builds if
`-DHAS_DUNE_FAST_AMG` is defined.

This change should apply the same type of change to this branch as for
the others. The number of smoothing steps is put into a constant to
avoid the magic number 1 to appear in too many places (although I am
not sure the number for pre- and post-smoothing always should be the
same).
2013-09-20 10:00:21 +02:00
Roland Kaufmann
5f00467f02 Set linear solver steps in criterion instead of ctor
The constructor that takes the number of steps is deprecated; this
generates needless warnings.
2013-09-19 10:32:49 +02:00
Andreas Lauser
cb76a0fd7f convert THROW to OPM_THROW 2013-09-05 13:04:37 +02:00
Andreas Lauser
408d3389c3 include iostream in the files which use std::cerr or std::cout
for some of these files this is needed to make to keep it compiling
after the next patch because the new ErrorMacros.hpp file will no
longer implicitly includes <iostream>. for the remaining files it is
just good style.

While at it, the includes for most of these files have been ordered in
order of decreasing abstraction level.
2013-09-05 13:04:37 +02:00
Roland Kaufmann
440c7721ae Remove subdirectory from SuiteSparse include
SuiteSparse may or may not be installed in a suitesparse/ directory.

FindSuiteSparse will look in a suitesparse/ subdirectory when trying
to locate umfpack.h, but it will add the full directory to the compiler
command-line (e.g. `-I/usr/include/suitesparse`) and not that of the
parent. Since the parent is usually included too, it is not noticed
that it is advertedly using another include paths than its own.

However, if we have SuiteSparse installed in a non-system location,
using the subdirectory in the `#include` statement may now cause an
error, even though configuration actually found SuiteSparse!
2013-08-25 09:35:51 +02:00
Roland Kaufmann
76f3863780 Remove bindings to AGMG from library
AGMG is now under a closed-source license, meaning that results
obtained with this solver is not freely reproducible by others.
Its use is therefore discouraged.

As of version 2.3, the DUNE AMG parts are competitive, so there
is a free and open alternative.
2013-08-13 23:25:04 +02:00
Andreas Lauser
5cd622fbf7 use std::shared_ptr instead of boost::shared_ptr
our policy is that we only use boost if necessary, i.e., if the oldest
supported compiler does not support a given feature but boost
does. since we recently switched to GCC 4.4 or newer, std::shared_ptr
is available unconditionally.
2013-08-08 13:25:58 +02:00
Júlio Hoffimann
c077912466 Remove trailing whitespaces 2013-07-28 08:34:13 -03:00
Roland Kaufmann
baa9bf12e0 Zero-initialize structure to avoid returning undefined
The compiler will otherwise complain that we are returning undefined
data. There is no way for the client code to know whether this was
the case.
2013-07-05 10:59:52 +02:00
Bård Skaflestad
f99377ceec Merge pull request #274 from blattms/non-tr1
Changed std::tr1 occurences to boost.
2013-07-04 12:01:51 -07:00
Markus Blatt
b5db3e0713 Changed std::tr1 occurences to boost.
std::tr1 might not be supported by all compilers and will eventually
be dropped by others. Using boost instead makes this more
portable.
2013-07-04 16:04:35 +02:00
Atgeirr Flø Rasmussen
fb77fffdc8 Merge pull request #263 from bska/remove-redef-kluge
Disable build kluge that is no longer pertinent
2013-06-24 06:02:10 -07:00
Markus Blatt
eaf8e780c7 Fixed unused parameters and whitespace issues. 2013-06-21 12:49:35 +02:00
Bård Skaflestad
85a9a41264 Disable build kluge that is no longer pertinent
The <have_boost_redef.hpp> header was introduced (commit 82369f9) as
a work-around for a particular interaction in the Autotools-based
setup of OPM-Core and the Dune core modules.  Notably, Dune's
"Enable" trick for Boost failed on some older Autoconf systems.  Now
that we're using CMake, however, that kluge is no longer needed
because we (OPM-Core) always

  #define HAVE_BOOST 1

i.e., as an explict true/false value.

Therefore, we need no longer include <have_boost_redef.hpp> .  The
header will be removed at a later time.
2013-06-20 23:14:39 +02:00
Markus Blatt
9b0b60c3f8 Fixed spelling 2013-06-20 17:01:35 +02:00
Markus Blatt
2db889cd2b Unifies the way how AMG is called.
After this patch one can set the prolongation factor for all
AMG calls and the number of smoothing steps for all except
of FastAMG that currently only supports on step.
2013-06-20 16:55:07 +02:00
Markus Blatt
65a3780e2f Merge remote-tracking branch 'upstream/master'
Conflicts:
	opm/core/linalg/LinearSolverIstl.cpp
2013-06-19 14:55:50 +02:00
Andreas Lauser
40fe2abf04 make config.h the first header to be included in any compile unit
this is required for consistency amongst the compile units which are
linked into the same library and seems to be forgotten quite
frequently.
2013-04-10 12:56:14 +02:00
Markus Blatt
de22c11d91 Removed compile time warning. In verbose mode the warning will be issued during runtime. 2013-03-19 13:48:02 +01:00
Markus Blatt
71d86b7f08 Fixed compilation with official DUNE release. 2013-03-18 15:36:35 +01:00
Markus Blatt
26ab363783 Adapted the documentation. 2013-03-18 14:34:04 +01:00
Markus Blatt
2c4c4cbb2f Added a fast amg version of AMG (with one step of Gaus-Seidel smoothing) and AMG with Krylov-cycle.
The former is only available when using the inofficial 2.2.1 cmake release.
The latter is currently not optimized.
2013-03-18 14:34:03 +01:00
Markus Blatt
c48234c0e4 Finished customizability in terms of steps and prolongateFactor 2013-01-18 14:11:59 +01:00
Markus Blatt
de1e709476 Merge remote-tracking branch 'upstream/master' 2012-10-03 20:01:05 +02:00
Markus Blatt
1105c9b540 Make number of smoothing steps and scaling factor for prolongation of AMG adjustable 2012-10-03 20:01:00 +02:00
Roland Kaufmann
ab21d44c9a Disable warning for using DUNE's FieldVector::size
In DUNE 2.2 FieldVector::size changed from being a member to being a
method. A compatibility warning is issued if you include the relevant
headers.

This warning can be silenced for DUNE modules by using passing the
option --enable-fieldvector-size-is-method to ./configure. This patch
effectively does the same, but through a macro definition.
2012-09-24 00:21:06 +02:00
Bård Skaflestad
7cad95c6c7 Restore coding conventions.
Inadvertently lost in commit 064184b.
2012-08-14 11:05:09 +02:00
Halvor Møll Nilsen
1f7ec7fa39 Changed to extrapolation outside tables for pormult. Added facetags to the grid structure. Changed default fluid to Linear. 2012-08-14 09:36:19 +02:00
Bård Skaflestad
52a5aabf57 Use have_boost_redef.hpp rather than direct override. 2012-07-12 14:36:36 +02:00
Bård Skaflestad
0d3b2abc6a Anchor Doxygen comments to current line.
Existing mark-up (/** ... */) would erroneously apply the documentation
of one field to the one below.  Using /**< ... */ avoids this problem.

Found by reading the Doxygen manual more carefully...
2012-06-26 11:44:30 +02:00
Bård Skaflestad
dd67e0c717 Insert another <CODE></CODE> pair that was missing. 2012-06-22 15:44:39 +02:00
Bård Skaflestad
77cd800b0c Merge from upstream. 2012-06-22 15:41:37 +02:00
Bård Skaflestad
1256fb4389 Refine description of csrmatrix_new_elms_pushback()
While here, tighten the distinction between <CODE> and non-<CODE>
mark-up.
2012-06-22 15:37:50 +02:00
Bård Skaflestad
ff96f386dc Use canonical include path to reference header. 2012-06-22 10:17:34 +02:00
Bård Skaflestad
469ddb0468 Re-wrap Doxygen comments introduced in cset 6d9f8b35dd4e. 2012-06-22 02:07:02 +02:00
Bård Skaflestad
3659ca2d68 Document sparse matrix interface. 2012-06-22 02:03:41 +02:00
Bård Skaflestad
3864afe8e2 Constructor: Move common failure mode to end of if-else chain.
While here, add a failure mode pertaining to solvers that are
supported by the system but disabled at configure time.
2012-06-11 17:54:23 +02:00
Xavier Raynaud
c81a840382 Added possibility to set tolerance for linear solvers. 2012-06-06 15:14:46 +02:00
Bård Skaflestad
7970d426ef csc_deallocate(): Remove useless non-NULL checks. Free(NULL) is a no-op. 2012-05-24 13:23:38 +02:00
Atgeirr Flø Rasmussen
2313339844 Fix bug: mistakenly swapped macros. 2012-04-13 16:36:51 +02:00
Atgeirr Flø Rasmussen
8c58165862 Added LinearSolverFactory class. 2012-04-13 16:33:51 +02:00
Atgeirr Flø Rasmussen
709b8c0b82 Work around mismatch between our HAVE_BOOST and what dune-istl expects.
In our config.h, HAVE_BOOST is defined (empty).
In dune-istl it is expected to be defined to 0 or 1.
2012-04-13 15:37:11 +02:00
Atgeirr Flø Rasmussen
0e861d1845 Suppressed multiple warnings. 2012-03-28 16:39:04 +02:00