#include <deal.II/lac/exceptions.h>
#include <deal.II/lac/identity_matrix.h>
+#include <deal.II/lac/vector_operation.h>
#include <cstring>
#include <iomanip>
void
backward(Vector<number2> &dst, const Vector<number2> &src) const;
+ /**
+ * Dummy function for compatibility with distributed, parallel matrices.
+ */
+ void compress(VectorOperation::values);
+
/** @} */
/**
} // namespace AssemblerBoundary
-
-
-
- template <typename T>
- using compress_t = decltype(std::declval<T>().compress(
- std::declval<VectorOperation::values>()));
-
-
-
- template <typename T>
- constexpr bool has_compress =
- dealii::internal::is_supported_operation<compress_t, T>;
-
-
-
- template <
- typename MatrixType,
- std::enable_if_t<has_compress<MatrixType>, MatrixType> * = nullptr>
- void
- compress(MatrixType &A, const VectorOperation::values operation)
- {
- A.compress(operation);
- }
-
-
-
- template <
- typename MatrixType,
- std::enable_if_t<!has_compress<MatrixType>, MatrixType> * = nullptr>
- void
- compress(MatrixType &, const VectorOperation::values)
- {
- // nothing to do
- }
-
- } // namespace internal
+ } // namespace internal
} // namespace MatrixCreator
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}
assembler_data,
copy_data);
- internal::compress(matrix, VectorOperation::add);
+ matrix.compress(VectorOperation::add);
}