16 #ifndef dealii_precondition_selector_h 17 #define dealii_precondition_selector_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/smartpointer.h> 26 DEAL_II_NAMESPACE_OPEN
28 template <
class number>
30 template <
class number>
97 template <
typename MatrixType = SparseMatrix<
double>,
98 typename VectorType = ::Vector<
double>>
112 const typename VectorType::value_type &
omega = 1.);
145 vmult(VectorType &dst,
const VectorType &src)
const;
152 Tvmult(VectorType &dst,
const VectorType &src)
const;
196 const typename VectorType::value_type
omega;
203 template <
typename MatrixType,
typename VectorType>
206 const typename VectorType::value_type &
omega)
207 : preconditioning(preconditioning)
212 template <
typename MatrixType,
typename VectorType>
220 template <
typename MatrixType,
typename VectorType>
228 template <
typename MatrixType,
typename VectorType>
237 template <
typename MatrixType,
typename VectorType>
247 template <
typename MatrixType,
typename VectorType>
250 const VectorType &src)
const 262 A->precondition_Jacobi(dst, src,
omega);
266 A->precondition_SOR(dst, src,
omega);
270 A->precondition_SSOR(dst, src,
omega);
278 template <
typename MatrixType,
typename VectorType>
282 const VectorType &src)
const 294 A->precondition_Jacobi(dst, src,
omega);
298 A->precondition_TSOR(dst, src,
omega);
302 A->precondition_SSOR(dst, src,
omega);
310 template <
typename MatrixType,
typename VectorType>
314 return "none|jacobi|sor|ssor";
318 DEAL_II_NAMESPACE_CLOSE
virtual void vmult(VectorType &dst, const VectorType &src) const
SmartPointer< const MatrixType, PreconditionSelector< MatrixType, VectorType > > A
void use_matrix(const MatrixType &M)
virtual void Tvmult(VectorType &dst, const VectorType &src) const
const VectorType::value_type omega
static::ExceptionBase & ExcNoMatrixGivenToUse()
#define Assert(cond, exc)
#define DeclException0(Exception0)
PreconditionSelector(const std::string &preconditioning, const typename VectorType::value_type &omega=1.)
virtual ~PreconditionSelector() override
static std::string get_precondition_names()
typename MatrixType::size_type size_type
static::ExceptionBase & ExcNotImplemented()
std::string preconditioning