From 6236fc58e9645e868b4bdf25b8057fe5eef7ea5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Ospina=20De=20Los=20R=C3=ADos?= <sospinar@gmail.com> Date: Thu, 19 Oct 2023 14:41:37 +0000 Subject: [PATCH] Add comment on allocator rebind --- dune/istl/umfpack.hh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dune/istl/umfpack.hh b/dune/istl/umfpack.hh index 50fa5337c..981fca166 100644 --- a/dune/istl/umfpack.hh +++ b/dune/istl/umfpack.hh @@ -202,6 +202,9 @@ namespace Dune { struct UMFPackVectorChooser<BCRSMatrix<T,A>, std::void_t<UMFPackDomainType<T>, UMFPackRangeType<T>>> { + // In case of recursive deduction (e.g., BCRSMatrix<FieldMatrix<...>, Allocator<FieldMatrix<...>>>) + // the allocator needs to be converted to the sub-block allocator type too (e.g., Allocator<FieldVector<...>>). + // Note that matrix allocator is assumed to be the same as the domain/range type of allocators /** @brief The type of the domain of the solver */ using domain_type = BlockVector<UMFPackDomainType<T>, typename std::allocator_traits<A>::template rebind_alloc<UMFPackDomainType<T>>>; /** @brief The type of the range of the solver */ -- GitLab