*/
PreconditionRichardson(const AdditionalData = AdditionalData());
+ /**
+ * Change the relaxaton parameter.
+ */
+ void initialize (const AdditionalData parameters);
+
/**
* Change the relaxaton parameter
* in a way consistent with other
- * preconditioners.
+ * preconditioners. The matrix
+ * argument is ignored and here
+ * just for compatibility with
+ * more complex preconditioners.
*/
- void initialize (const AdditionalData parameters);
+ template <class MATRIX>
+ void initialize (const MATRIX&,
+ const AdditionalData parameters);
/**
* Apply preconditioner.
+template <class MATRIX>
+inline void
+PreconditionRichardson::initialize (
+ const MATRIX&,
+ const PreconditionRichardson::AdditionalData parameters)
+{
+ relaxation = parameters.relaxation;
+}
+
+
+
template<class VECTOR>
inline void
PreconditionRichardson::vmult (VECTOR &dst, const VECTOR &src) const