17 #ifndef __deal2__precondition_selector_h 18 #define __deal2__precondition_selector_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/base/smartpointer.h> 27 template <
class number>
class Vector;
96 template <
class MATRIX = SparseMatrix<
double>,
97 class VECTOR = ::Vector<
double> >
108 const typename VECTOR::value_type &
omega=1.);
128 virtual void vmult (VECTOR &dst,
const VECTOR &src)
const;
166 const typename VECTOR::value_type
omega;
173 template <
class MATRIX,
class VECTOR>
176 const typename VECTOR::value_type &
omega) :
177 preconditioning(preconditioning),
181 template <
class MATRIX,
class VECTOR>
189 template <
class MATRIX,
class VECTOR>
195 template <
class MATRIX,
class VECTOR>
197 const VECTOR &src)
const 205 Assert(
A!=0, ExcNoMatrixGivenToUse());
209 A->precondition_Jacobi(dst,src,
omega);
213 A->precondition_SOR(dst,src,
omega);
217 A->precondition_SSOR(dst,src,
omega);
225 template <
class MATRIX,
class VECTOR>
228 return "none|jacobi|sor|ssor";
232 DEAL_II_NAMESPACE_CLOSE
PreconditionSelector(const std::string &preconditioning, const typename VECTOR::value_type &omega=1.)
std::string preconditioning
SmartPointer< const MATRIX, PreconditionSelector< MATRIX, VECTOR > > A
static std::string get_precondition_names()
#define Assert(cond, exc)
DeclException0(ExcNoMatrixGivenToUse)
virtual ~PreconditionSelector()
void use_matrix(const MATRIX &M)
const VECTOR::value_type omega
virtual void vmult(VECTOR &dst, const VECTOR &src) const
::ExceptionBase & ExcNotImplemented()