dune-pdelab
2.5-dev
|
Backend using (possibly nested) ISTL BCRSMatrices. More...
#include <dune/pdelab/backend/istl/bcrsmatrixbackend.hh>
Classes | |
struct | MatrixHelper |
Public Types | |
typedef std::size_t | size_type |
The size type of the BCRSMatrix. More... | |
typedef PatternStatistics< size_type > | Statistics |
The type of the object holding the statistics generated during pattern construction. More... | |
template<typename Matrix , typename GFSV , typename GFSU > | |
using | Pattern = typename build_bcrs_pattern_type< typename Matrix::Container, GFSV, GFSU, typename GFSV::Ordering::ContainerAllocationTag >::type |
The type of the pattern object passed to the GridOperator for pattern construction. More... | |
Public Member Functions | |
template<typename GridOperator , typename Matrix > | |
std::vector< Statistics > | buildPattern (const GridOperator &grid_operator, Matrix &matrix) const |
Builds the matrix pattern associated with grid_operator and initializes matrix with it. More... | |
BCRSMatrixBackend (const EntriesPerRow &entries_per_row) | |
Constructs a BCRSMatrixBackend. More... | |
Backend using (possibly nested) ISTL BCRSMatrices.
BCRSMatrixBackend is a matrix backend descriptor for ISTL matrices. It expects that both the ansatz and the test function space use ISTL vectors and automatically deduces the correct matrix type from those two vector backends.
The backend uses an accelerated pattern construction scheme, which requires the average number of non-zero entries per matrix row as a priori information. In constrast to the older construction scheme, the improved version never requires more memory than the matrix does after pattern construction and runs a lot faster, as long as it is provided with a reasonable estimate for the number of non-zero entries per row.
using Dune::PDELab::ISTL::BCRSMatrixBackend< EntriesPerRow >::Pattern = typename build_bcrs_pattern_type< typename Matrix::Container, GFSV, GFSU, typename GFSV::Ordering::ContainerAllocationTag >::type |
The type of the pattern object passed to the GridOperator for pattern construction.
typedef std::size_t Dune::PDELab::ISTL::BCRSMatrixBackend< EntriesPerRow >::size_type |
The size type of the BCRSMatrix.
typedef PatternStatistics<size_type> Dune::PDELab::ISTL::BCRSMatrixBackend< EntriesPerRow >::Statistics |
The type of the object holding the statistics generated during pattern construction.
|
inline |
Constructs a BCRSMatrixBackend.
TODO: Document and flesh out the way this should work for nested matrices (use a nested array as entries_per_row).
entries_per_row | The average number of nonzero entries per row in matrices created with this backend. |
|
inline |
Builds the matrix pattern associated with grid_operator and initializes matrix with it.