Skip to content

Cleanup ISTL backend

Steffen Müthing requested to merge feature/cleanup-istl-backend into master

This is a major cleanup of the ISTL backend infrastructure.

  • Move vector wrapper into istl namespace and rename it to istl::BlockVector. The file is also renamed to vector.hh.
  • Move matrix wrapper into istl namespace and rename it to istl::BCRSMatrix. The file is also renamed to bcrsmatrix.hh.
  • Move the tags for attached and unattached containers into the Backend namespace. Provide deprecated compatibility typedefs in the tags namespace.
  • Deprecate the old ISTLMatrixBackend using the inefficient pattern construction.
  • Port all occurences of the old ISTLMatrixBackend to istl::BCRSMatrixBackend. In particular, this involves changes to the DGAMG backends and the boilerplate header.
  • Rename ISTLVectorBackend to istl::VectorBackend for consistency and deprecate ISTLVectorBackend.
  • Use the opportunity provided by moving the vector backend to also update the ISTLParameters::Blocking enum to a new istl::Blocking enum. This new enum is a C++11 scoped enum with (I think) better names for the enum values. The old enum is also deprecated.
  • Deprecate istl::raw and istl::raw_type which have been superseded by Backend::native and Backend::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 to istl::BCRSMatrixBackend if you haven't already done so.
  • Replace ISTLVectorBackend with istl::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).

Merge request reports

Loading