diff --git a/dune/xt/la/container.hh b/dune/xt/la/container.hh index 873c3c1c202d897b55028d136120e6dd2f390525..f8e271bff165b55142f415bb5453c9b0ca5c6539 100644 --- a/dune/xt/la/container.hh +++ b/dune/xt/la/container.hh @@ -51,40 +51,6 @@ struct Container<ScalarType, ChooseBackend::istl_sparse> typedef IstlRowMajorSparseMatrix<ScalarType> MatrixType; }; // struct Container< ..., istl_sparse > -// template< class Traits, size_t domainDim, size_t rangeDim, size_t rangeDimCols > class SpaceInterface -template <class Space> -typename Space::RangeFieldType -communicated_dot(const Dune::Stuff::LA::IstlDenseVector<typename Space::RangeFieldType>& vector, - const Dune::Stuff::LA::IstlDenseVector<typename Space::RangeFieldType>& source, const Space& space) -{ - typename Space::RangeFieldType result = typename Space::RangeFieldType(0); - space.communicator().dot(vector.backend(), source.backend(), result); - return result; -} - -template <template <class> class VectorImp, class Space> -typename Space::RangeFieldType communicated_dot(const VectorImp<typename Space::RangeFieldType>& vector, - const VectorImp<typename Space::RangeFieldType>& source, - const Space& /*space*/) -{ - auto result = vector.dot(source); - DSC_LOG_DEBUG_0 << "communicated_dot does not account for overlapping dofs with non-ISTL vector types atm\n"; - return MPIHelper::getCollectiveCommunication().sum(result); -} - -template <class Space> -void ensure_parallel_dof_consistency(Dune::Stuff::LA::IstlDenseVector<typename Space::RangeFieldType>& vector, - const Space& space) -{ - space.communicator().copyOwnerToAll(vector.backend(), vector.backend()); -} - -template <template <class> class VectorImp, class Space> -void ensure_parallel_dof_consistency(VectorImp<typename Space::RangeFieldType>& /*vector*/, const Space& /*space*/) -{ - DSC_LOG_DEBUG_0 << "parallel dof consistency can only be ensured for ISTL vectors atm\n"; -} - } // namespace LA } // namespace XT } // namespace Dune