dune-istl  2.7.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::ColCompMatrixInitializer< M, I > Class Template Reference

Inititializer for the ColCompMatrix as needed by OverlappingSchwarz. More...

#include <dune/istl/colcompmatrix.hh>

Inheritance diagram for Dune::ColCompMatrixInitializer< M, I >:
Inheritance graph

Public Types

using Matrix = M
 
using Index = I
 
typedef Dune::ColCompMatrix< Matrix, IndexColCompMatrix
 
typedef Matrix::row_type::const_iterator CIter
 
typedef Matrix::size_type size_type
 

Public Member Functions

template<class Block = typename M::block_type>
 ColCompMatrixInitializer (ColCompMatrix &lum, typename std::enable_if_t< Dune::IsNumber< Block >::value > *sfinae=nullptr)
 Constructor for scalar-valued matrices. More...
 
template<class Block = typename M::block_type>
 ColCompMatrixInitializer (ColCompMatrix &lum, typename std::enable_if_t<!Dune::IsNumber< Block >::value > *sfinae=nullptr)
 Constructor for dense matrix-valued matrices. More...
 
 ColCompMatrixInitializer ()
 
virtual ~ColCompMatrixInitializer ()
 
template<typename Iter >
void addRowNnz (const Iter &row) const
 
template<typename Iter , typename FullMatrixIndex >
void addRowNnz (const Iter &row, const std::set< FullMatrixIndex > &indices) const
 
template<typename Iter , typename SubMatrixIndex >
void addRowNnz (const Iter &row, const std::vector< SubMatrixIndex > &indices) const
 
void allocate ()
 
template<typename Iter >
void countEntries (const Iter &row, const CIter &col) const
 
void countEntries (size_type colidx) const
 
void calcColstart () const
 
template<typename Iter >
void copyValue (const Iter &row, const CIter &col) const
 
void copyValue (const CIter &col, size_type rowindex, size_type colidx) const
 
virtual void createMatrix () const
 

Protected Member Functions

void allocateMatrixStorage () const
 
void allocateMarker ()
 

Protected Attributes

ColCompMatrixmat
 
size_type cols
 
size_type n
 
size_type m
 
std::vector< size_typemarker
 

Detailed Description

template<class M, class I>
class Dune::ColCompMatrixInitializer< M, I >

Inititializer for the ColCompMatrix as needed by OverlappingSchwarz.

Template Parameters
Mthe matrix type
Ithe internal index type

Member Typedef Documentation

◆ CIter

template<class M , class I >
typedef Matrix::row_type::const_iterator Dune::ColCompMatrixInitializer< M, I >::CIter

◆ ColCompMatrix

template<class M , class I >
typedef Dune::ColCompMatrix<Matrix, Index> Dune::ColCompMatrixInitializer< M, I >::ColCompMatrix

◆ Index

template<class M , class I >
using Dune::ColCompMatrixInitializer< M, I >::Index = I

◆ Matrix

template<class M , class I >
using Dune::ColCompMatrixInitializer< M, I >::Matrix = M

◆ size_type

template<class M , class I >
typedef Matrix::size_type Dune::ColCompMatrixInitializer< M, I >::size_type

Constructor & Destructor Documentation

◆ ColCompMatrixInitializer() [1/3]

template<class M , class I >
template<class Block >
Dune::ColCompMatrixInitializer< M, I >::ColCompMatrixInitializer ( ColCompMatrix lum,
typename std::enable_if_t< Dune::IsNumber< Block >::value > *  sfinae = nullptr 
)

Constructor for scalar-valued matrices.

Template Parameters
BlockDummy parameter to make SFINAE work

◆ ColCompMatrixInitializer() [2/3]

template<class M , class I >
template<class Block >
Dune::ColCompMatrixInitializer< M, I >::ColCompMatrixInitializer ( ColCompMatrix lum,
typename std::enable_if_t<!Dune::IsNumber< Block >::value > *  sfinae = nullptr 
)

Constructor for dense matrix-valued matrices.

Template Parameters
BlockDummy parameter to make SFINAE work

◆ ColCompMatrixInitializer() [3/3]

template<class M , class I >
Dune::ColCompMatrixInitializer< M, I >::ColCompMatrixInitializer

◆ ~ColCompMatrixInitializer()

template<class M , class I >
virtual Dune::ColCompMatrixInitializer< M, I >::~ColCompMatrixInitializer ( )
inlinevirtual

Member Function Documentation

◆ addRowNnz() [1/3]

template<class M , class I >
template<typename Iter >
void Dune::ColCompMatrixInitializer< M, I >::addRowNnz ( const Iter &  row) const

◆ addRowNnz() [2/3]

template<class M , class I >
template<typename Iter , typename FullMatrixIndex >
void Dune::ColCompMatrixInitializer< M, I >::addRowNnz ( const Iter &  row,
const std::set< FullMatrixIndex > &  indices 
) const

◆ addRowNnz() [3/3]

template<class M , class I >
template<typename Iter , typename SubMatrixIndex >
void Dune::ColCompMatrixInitializer< M, I >::addRowNnz ( const Iter &  row,
const std::vector< SubMatrixIndex > &  indices 
) const

◆ allocate()

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::allocate

◆ allocateMarker()

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::allocateMarker
protected

◆ allocateMatrixStorage()

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::allocateMatrixStorage
protected

◆ calcColstart()

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::calcColstart

◆ copyValue() [1/2]

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::copyValue ( const CIter col,
size_type  rowindex,
size_type  colidx 
) const

◆ copyValue() [2/2]

template<class M , class I >
template<typename Iter >
void Dune::ColCompMatrixInitializer< M, I >::copyValue ( const Iter &  row,
const CIter col 
) const

◆ countEntries() [1/2]

template<class M , class I >
template<typename Iter >
void Dune::ColCompMatrixInitializer< M, I >::countEntries ( const Iter &  row,
const CIter col 
) const

◆ countEntries() [2/2]

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::countEntries ( size_type  colidx) const

◆ createMatrix()

template<class M , class I >
void Dune::ColCompMatrixInitializer< M, I >::createMatrix
virtual

Member Data Documentation

◆ cols

template<class M , class I >
size_type Dune::ColCompMatrixInitializer< M, I >::cols
protected

◆ m

template<class M , class I >
size_type Dune::ColCompMatrixInitializer< M, I >::m
protected

◆ marker

template<class M , class I >
std::vector<size_type> Dune::ColCompMatrixInitializer< M, I >::marker
mutableprotected

◆ mat

template<class M , class I >
ColCompMatrix* Dune::ColCompMatrixInitializer< M, I >::mat
protected

◆ n

template<class M , class I >
size_type Dune::ColCompMatrixInitializer< M, I >::n
protected

The documentation for this class was generated from the following file: