}
// 3) specialized implementation for inverse-diagonal preconditioner
- template <typename MatrixType,
- typename VectorType,
- std::enable_if_t<!IsBlockVector<VectorType>::value &&
- !has_vmult_with_std_functions<
- MatrixType,
- VectorType,
- dealii::DiagonalMatrix<VectorType>>,
- VectorType> * = nullptr>
+ template <
+ typename MatrixType,
+ typename VectorType,
+ std::enable_if_t<
+ !IsBlockVector<VectorType>::value &&
+ !std::is_same_v<
+ VectorType,
+ LinearAlgebra::distributed::Vector<typename VectorType::value_type,
+ MemorySpace::Default>> &&
+ !has_vmult_with_std_functions<MatrixType,
+ VectorType,
+ dealii::DiagonalMatrix<VectorType>>,
+ VectorType> * = nullptr>
void
step_operations(const MatrixType &A,
const dealii::DiagonalMatrix<VectorType> &preconditioner,