/**
* Declare type for container size.
*/
- typedef typename MATRIX::size_type size_type;
+ typedef types::global_dof_index size_type;
/**
* Standardized data struct to pipe additional parameters to the
inline void
PreconditionRichardson::vmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<size_type, typename VECTOR::size_type>::value,
+ "PreconditionRichardson and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
dst.equ(relaxation,src);
}
inline void
PreconditionRichardson::Tvmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<size_type, typename VECTOR::size_type>::value,
+ "PreconditionRichardson and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
dst.equ(relaxation,src);
}
inline void
PreconditionRichardson::vmult_add (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<size_type, typename VECTOR::size_type>::value,
+ "PreconditionRichardson and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
dst.add(relaxation,src);
}
inline void
PreconditionRichardson::Tvmult_add (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<size_type, typename VECTOR::size_type>::value,
+ "PreconditionRichardson and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
dst.add(relaxation,src);
}
inline void
PreconditionJacobi<MATRIX>::vmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionJacobi<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionJacobi and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_Jacobi (dst, src, this->relaxation);
}
inline void
PreconditionJacobi<MATRIX>::Tvmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionJacobi<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionJacobi and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_Jacobi (dst, src, this->relaxation);
}
inline void
PreconditionJacobi<MATRIX>::step (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionJacobi<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionJacobi and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->Jacobi_step (dst, src, this->relaxation);
}
inline void
PreconditionJacobi<MATRIX>::Tstep (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionJacobi<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionJacobi and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
step (dst, src);
}
inline void
PreconditionSOR<MATRIX>::vmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_SOR (dst, src, this->relaxation);
}
inline void
PreconditionSOR<MATRIX>::Tvmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_TSOR (dst, src, this->relaxation);
}
inline void
PreconditionSOR<MATRIX>::step (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->SOR_step (dst, src, this->relaxation);
}
inline void
PreconditionSOR<MATRIX>::Tstep (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->TSOR_step (dst, src, this->relaxation);
}
inline void
PreconditionSSOR<MATRIX>::vmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_SSOR (dst, src, this->relaxation, pos_right_of_diagonal);
}
inline void
PreconditionSSOR<MATRIX>::Tvmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->precondition_SSOR (dst, src, this->relaxation, pos_right_of_diagonal);
}
inline void
PreconditionSSOR<MATRIX>::step (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
this->A->SSOR_step (dst, src, this->relaxation);
}
inline void
PreconditionSSOR<MATRIX>::Tstep (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionSSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionSSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
step (dst, src);
}
inline void
PreconditionPSOR<MATRIX>::vmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionPSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionPSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
dst = src;
this->A->PSOR (dst, *permutation, *inverse_permutation, this->relaxation);
inline void
PreconditionPSOR<MATRIX>::Tvmult (VECTOR &dst, const VECTOR &src) const
{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<typename PreconditionPSOR<MATRIX>::size_type, typename VECTOR::size_type>::value,
+ "PreconditionPSOR and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+
Assert (this->A!=0, ExcNotInitialized());
dst = src;
this->A->TPSOR (dst, *permutation, *inverse_permutation, this->relaxation);
PreconditionChebyshev<MATRIX,VECTOR>::PreconditionChebyshev ()
:
is_initialized (false)
-{}
+{
+#ifdef DEAL_II_WITH_CXX11
+ static_assert(
+ std::is_same<size_type, typename VECTOR::size_type>::value,
+ "PreconditionChebyshev and VECTOR must have the same size_type.");
+#endif // DEAL_II_WITH_CXX11
+}