From 9ce909aef2460809850429434c42dfcb329a54f1 Mon Sep 17 00:00:00 2001
From: schrage SolverControl
in order to
control the iterative solvers, i.e. to determine whether the iteration
-should be continued.
+should be continued and a class named
+PreconditionSelector
that allows
+you to select a preconditioner.
We will begin with the discussion of the SolverControl
-class and preconditioners, then discuss the solvers in more detail.
+and the PreconditionSelector
classes, then discuss the solvers
+in more detail.
+Before firing up the solver of your choice you will need some kind of
+preconditioning. This is easiest selected by creating an instance of
+the PreconditionSelect
class with an appropriate choice of
+parameters. This can be done using PreconditionSelector(const string
+preconditioning, const typename Vector::value_type &omega=1.)
+where preconditioning
denotes the preconditioning method used
+and omega
is the damping parameter.
+
+The preconditioning methods currently available using this class are +
+
+You can obtain a list of available methods by calling
+string PreconditionSelector::get_precondition_names()
.
+
+After having selected a preconditioner you will need to select a
+matrix used for preconditioning. Usually this will be the problem matrix
+A
of the problem Au=f
.
+The method to be called is void PreconditionSelector::use_matrix(const
+Matrix &M)
.
+
+Example:We initialize a Jacobi preconditioner
+with a damping parameter of 1. The matrix used for preconditioning
+is the matrix A
+of the problem Au=f
.
+
+
+#include <lac/precondition_selector.h>
+#include <grid/dof.h>
+#include <lac/fullmatrix.h>
+
+FullMatrix<double> A(100,50);
+
+PreconditionSelector preconditioning("jacobi",1.);
+preconditioning.use_matrix(A);
+
+
+
+
+
-- 2.39.5