[python] Adjust to changed block_vector_unmanaged interface
This piece of code is nasty for several reasons:
- It's a dependency on the downstream module dune-istl.
- It depends on implementation details.
- For the specific details it is very explicitly noted that they should not be used outside of dune-istl.
But maybe this is unavoidable for technical reasons here.
Merge request reports
Activity
mentioned in merge request dune-istl!560 (merged)
This is needed for dune-istl!560 (merged).
But this change is unrelated to dune-istl!560 (merged). Hence it should rather be done separately.
Why is this unrelated? Currently, the
base_array_unmanaged
expects as second template parameter something that has a::size_type
. So, merging this separately will probably break some code in the dune-istl python bindings, right? We should merge them along-side with dune-istl!560 (merged) I guess.Why is this unrelated?
This is a misunderstanding. I meant that the move of the bindings code is unrelated to dune-istl!560 (merged) - not the present MR.
The
IsBlockVector
type-trait is not used anywhere (at least in my local module collection). There is a similar-named type-trait in dune-fem, but it seems unrelated. Maybe we should merge this change if it is blocking dune-istl!560 (merged), but eventually we should just remove (or at least deprecate) this utility.Ok, this last comment was not quiet correct. The
IsBlockVector
is used inIsOneTensor
that is used inregisterOneTensorInterface
(to protect from instantiation with non-block-vector types) that is called indune/python/istl/bvecto.hh
to register a block vector to python. Thus, moving the type-trait to dune-istl is still fine.
It does not. The present code goes hand in hand with dune-istl!560 (merged). But the modified code is not tested in dune-common itself. Thus we should merge the present MR first. This will not break dune-common but downstream dune-istl until dune-istl!560 (merged) is merged.
mentioned in commit 43290c5e