Commit Graph

10 Commits

Author SHA1 Message Date
Markus Blatt
c1a7a03987 Moved ISTL right and left hand side construction for ISTL to solveSystem
cherry-picked from add-scalarproduct and ported.
2014-03-25 09:58:07 +01:00
Markus Blatt
1e205adcf1 Added support for the parallel solvers of dune-istl.
To support this the solveSystem methods of the LinearSolverInterface gets
an optional additional template parameter of type boost::any. It can hold any
copy constructable object. In our case it is used to pass the information about
the parallelization into the solvers of dune-istl without the compiler needing to know
their type. Inside of LinearSolverIstl::solveSystem we check whether the type stored inside of
boost::any is the new ParallelIstlInformation. If this is the case we extract the information
and use the parallel solvers if available, otherwise we solve serial/sequential.

The new ParallelIstlInformation is needed as the OwnerOverlapCopyCommunication is not copy
constructable. This is indeed a design flaw that should and will fixed upstream, but for the
time being we need ParallelIstlInformation to transfer the ParallelIndexSet and RemoteIndices
objects.
2014-03-20 21:59:29 +01:00
Markus Blatt
5777547219 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 12:09:24 +01:00
Júlio Hoffimann
8385a9bcbb Remove trailing whitespaces 2013-07-28 08:34:13 -03:00
Markus Blatt
b5e6757038 Adapted the documentation. 2013-03-18 14:34:04 +01:00
Markus Blatt
0658b787b7 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
Xavier Raynaud
38562a5d7a Added possibility to set tolerance for linear solvers. 2012-06-06 15:14:46 +02:00
Atgeirr Flø Rasmussen
fe91b1ba70 Fixed class comments, LinearSolverUmfpack::solve() properly returns a report. 2012-02-21 21:54:46 +01:00
Atgeirr Flø Rasmussen
d9ed7cadad Made the solve() methods const. 2012-02-21 21:36:09 +01:00
Atgeirr Flø Rasmussen
af260d3d75 Added LinearSolverInterface and two subclasses, using Umfpack and Istl. 2012-02-21 21:27:15 +01:00