class PreconditionIdentity : public Subscriptor
{
public:
+
+ /**
+ * This function is only
+ * present to
+ * provide the interface of
+ * a precondtioner to be
+ * handed to a smoother.
+ * This does nothing.
+ */
+ struct AdditionalData
+ {
+ /**
+ * Constructor.
+ */
+ AdditionalData (){}
+ };
+
+ /**
+ * The matrix
+ * argument is ignored and here
+ * just for compatibility with
+ * more complex preconditioners.
+ */
+ template <class MATRIX>
+ void initialize (const MATRIX &matrix,
+ const AdditionalData &additional_data = AdditionalData());
+
/**
* Apply preconditioner.
*/
*/
template<class VECTOR>
void Tvmult_add (VECTOR&, const VECTOR&) const;
+
+ /**
+ * This function is only
+ * present to
+ * provide the interface of
+ * a precondtioner to be
+ * handed to a smoother.
+ * This does nothing.
+ */
+ void clear (){}
};
#ifndef DOXYGEN
+template <class MATRIX>
+inline void
+PreconditionIdentity::initialize (
+ const MATRIX&,
+ const PreconditionIdentity::AdditionalData&)
+{}
+
template<class VECTOR>
inline void