*/
template <class MATRIX2, class DATA>
void initialize (const MGLevelObject<MATRIX2>& matrices,
- const DATA& additional_data);
+ const DATA& additional_data = RELAX::AdditionalData());
/**
* Initialize for matrices. This
*
* @author Guido Kanschat, 2009
*/
-template<class MATRIX, class RELAX, class VECTOR>
+template<class MATRIX, class PRECONDITIONER, class VECTOR>
class MGSmootherPrecondition : public MGSmoother<VECTOR>
{
public:
*
* @p additional_data is an
* object of type
- * @p RELAX::AdditionalData and
+ * @p PRECONDITIONER::AdditionalData and
* is handed to the
* initialization function of the
* relaxation method.
*/
template <class MATRIX2, class DATA>
void initialize (const MGLevelObject<MATRIX2>& matrices,
- const DATA& additional_data);
+ const DATA& additional_data = PRECONDITIONER::AdditionalData());
/**
* Initialize for matrices. This
*
* @p additional_data is an
* object of type
- * @p RELAX::AdditionalData and
+ * @p PRECONDITIONER::AdditionalData and
* is handed to the
* initialization function of the
* relaxation method.
*
* @p additional_data is an
* object of type
- * @p RELAX::AdditionalData and
+ * @p PRECONDITIONER::AdditionalData and
* is handed to the
* initialization function of the
* relaxation method.
*
* @p additional_data is an
* object of type
- * @p RELAX::AdditionalData and
+ * @p PRECONDITIONER::AdditionalData and
* is handed to the
* initialization function of the
* relaxation method.
* Object containing relaxation
* methods.
*/
- MGLevelObject<RELAX> smoothers;
+ MGLevelObject<PRECONDITIONER> smoothers;
/**
* Memory used by this object.
//----------------------------------------------------------------------//
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
inline
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::MGSmootherPrecondition(
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::MGSmootherPrecondition(
VectorMemory<VECTOR>& mem,
const unsigned int steps,
const bool variable,
{}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::clear ()
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::clear ()
{
smoothers.clear();
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
template <class MATRIX2, class DATA>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::initialize (
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::initialize (
const MGLevelObject<MATRIX2>& m,
const DATA& data)
{
}
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
template <class MATRIX2, class DATA>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::initialize (
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::initialize (
const MGLevelObject<MATRIX2>& m,
const MGLevelObject<DATA>& data)
{
}
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
template <class MATRIX2, class DATA>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::initialize (
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::initialize (
const MGLevelObject<MATRIX2>& m,
const DATA& data,
const unsigned int row,
}
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
template <class MATRIX2, class DATA>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::initialize (
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::initialize (
const MGLevelObject<MATRIX2>& m,
const MGLevelObject<DATA>& data,
const unsigned int row,
}
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
inline void
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::smooth(
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::smooth(
const unsigned int level,
VECTOR& u,
const VECTOR& rhs) const
}
-template <class MATRIX, class RELAX, class VECTOR>
+template <class MATRIX, class PRECONDITIONER, class VECTOR>
inline unsigned int
-MGSmootherPrecondition<MATRIX, RELAX, VECTOR>::
+MGSmootherPrecondition<MATRIX, PRECONDITIONER, VECTOR>::
memory_consumption () const
{
return sizeof(*this)