Cleanup ISTL backend
This is a major cleanup of the ISTL backend infrastructure.
- Move vector wrapper into
istlnamespace and rename it toistl::BlockVector. The file is also renamed tovector.hh. - Move matrix wrapper into
istlnamespace and rename it toistl::BCRSMatrix. The file is also renamed tobcrsmatrix.hh. - Move the tags for attached and unattached containers into the
Backendnamespace. Provide deprecated compatibility typedefs in thetagsnamespace. - Deprecate the old
ISTLMatrixBackendusing the inefficient pattern construction. - Port all occurences of the old
ISTLMatrixBackendtoistl::BCRSMatrixBackend. In particular, this involves changes to the DGAMG backends and the boilerplate header. - Rename
ISTLVectorBackendtoistl::VectorBackendfor consistency and deprecateISTLVectorBackend. - Use the opportunity provided by moving the vector backend to also update the
ISTLParameters::Blockingenumto a newistl::Blockingenum. This newenumis a C++11scoped enumwith (I think) better names for theenumvalues. The oldenumis also deprecated. - Deprecate
istl::rawandistl::raw_typewhich have been superseded byBackend::nativeandBackend::Native. - Deprecate
.base()methods on vector and matrix wrappers.
These changes require all users to adapt their programs in the following way:
- Switch from
ISTLMatrixBackendtoistl::BCRSMatrixBackendif you haven't already done so. - Replace
ISTLVectorBackendwithistl::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).