Cleanup ISTL backend
This is a major cleanup of the ISTL backend infrastructure.
- Move vector wrapper into
istl
namespace and rename it toistl::BlockVector
. The file is also renamed tovector.hh
. - Move matrix wrapper into
istl
namespace and rename it toistl::BCRSMatrix
. The file is also renamed tobcrsmatrix.hh
. - Move the tags for attached and unattached containers into the
Backend
namespace. Provide deprecated compatibility typedefs in thetags
namespace. - Deprecate the old
ISTLMatrixBackend
using the inefficient pattern construction. - Port all occurences of the old
ISTLMatrixBackend
toistl::BCRSMatrixBackend
. In particular, this involves changes to the DGAMG backends and the boilerplate header. - Rename
ISTLVectorBackend
toistl::VectorBackend
for consistency and deprecateISTLVectorBackend
. - Use the opportunity provided by moving the vector backend to also update the
ISTLParameters::Blocking
enum
to a newistl::Blocking
enum
. This newenum
is a C++11scoped enum
with (I think) better names for theenum
values. The oldenum
is also deprecated. - Deprecate
istl::raw
andistl::raw_type
which have been superseded byBackend::native
andBackend::Native
. - Deprecate
.base()
methods on vector and matrix wrappers.
These changes require all users to adapt their programs in the following way:
- Switch from
ISTLMatrixBackend
toistl::BCRSMatrixBackend
if you haven't already done so. - Replace
ISTLVectorBackend
withistl::VectorBackend
. While doing so, you will also have to update the block structure template parameter if you have picked a non-default value. Replace it like this:-
ISTLParameters::no_blocking
->istl::Blocking::none
-
ISTLParameters::dynamic_blocking
->istl::Blocking::bcrs
-
ISTLParameters::static_blocking
->istl::Blocking::fixed
-
This merge request closes #44 (closed).