dune-pdelab 2.7-git
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I > Class Template Reference

#include <dune/pdelab/backend/simple/sparse.hh>

Inheritance diagram for Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >:
Inheritance graph

Public Types

typedef SparseMatrixData< C, ET, I > Container
 
typedef ET ElementType
 
typedef ElementType field_type
 
typedef Container::size_type size_type
 
typedef I index_type
 
typedef GFSU TrialGridFunctionSpace
 
typedef GFSV TestGridFunctionSpace
 
typedef GFSV::Ordering::Traits::ContainerIndex RowIndex
 
typedef GFSU::Ordering::Traits::ContainerIndex ColIndex
 
template<typename RowCache , typename ColCache >
using LocalView = UncachedMatrixView< SparseMatrixContainer, RowCache, ColCache >
 
template<typename RowCache , typename ColCache >
using ConstLocalView = ConstUncachedMatrixView< const SparseMatrixContainer, RowCache, ColCache >
 
typedef SparseMatrixPattern Pattern
 

Public Member Functions

template<typename GO >
 SparseMatrixContainer (const GO &go)
 
template<typename GO >
 SparseMatrixContainer (const GO &go, const ElementType &e)
 
 SparseMatrixContainer (Backend::unattached_container=Backend::unattached_container())
 Creates an SparseMatrixContainer without allocating an underlying ISTL matrix.
 
 SparseMatrixContainer (Backend::attached_container)
 Creates an SparseMatrixContainer with an empty underlying ISTL matrix.
 
 SparseMatrixContainer (const SparseMatrixContainer &rhs)
 
SparseMatrixContaineroperator= (const SparseMatrixContainer &rhs)
 
void detach ()
 
void attach (std::shared_ptr< Container > container)
 
bool attached () const
 
const std::shared_ptr< Container > & storage () const
 
size_type N () const
 
size_type M () const
 
SparseMatrixContaineroperator= (const ElementType &e)
 
SparseMatrixContaineroperator*= (const ElementType &e)
 
template<typename V >
void mv (const V &x, V &y) const
 
template<typename V >
void usmv (const ElementType alpha, const V &x, V &y) const
 
ElementTypeoperator() (const RowIndex &ri, const ColIndex &ci)
 
const ElementTypeoperator() (const RowIndex &ri, const ColIndex &ci) const
 
const Containerbase () const
 
Containerbase ()
 
void flush ()
 
void finalize ()
 
void clear_row (const RowIndex &ri, const ElementType &diagonal_entry)
 
void clear_row_block (const RowIndex &ri, const ElementType &diagonal_entry)
 

Protected Member Functions

template<typename V >
ElementType sparse_inner_product (std::size_t row, const V &x) const
 

Static Protected Member Functions

template<typename GO >
static void allocate_matrix (std::shared_ptr< Container > &c, const GO &go, const ElementType &e)
 

Protected Attributes

std::shared_ptr< Container_container
 

Member Typedef Documentation

◆ ColIndex

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef GFSU::Ordering::Traits::ContainerIndex Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::ColIndex

◆ ConstLocalView

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename RowCache , typename ColCache >
using Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::ConstLocalView = ConstUncachedMatrixView<const SparseMatrixContainer,RowCache,ColCache>

◆ Container

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef SparseMatrixData<C,ET,I> Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::Container

◆ ElementType

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef ET Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::ElementType

◆ field_type

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef ElementType Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::field_type

◆ index_type

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef I Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::index_type

◆ LocalView

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename RowCache , typename ColCache >
using Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::LocalView = UncachedMatrixView<SparseMatrixContainer,RowCache,ColCache>

◆ Pattern

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef SparseMatrixPattern Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::Pattern

◆ RowIndex

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef GFSV::Ordering::Traits::ContainerIndex Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::RowIndex

◆ size_type

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef Container::size_type Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::size_type

◆ TestGridFunctionSpace

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef GFSV Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::TestGridFunctionSpace

◆ TrialGridFunctionSpace

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
typedef GFSU Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::TrialGridFunctionSpace

Constructor & Destructor Documentation

◆ SparseMatrixContainer() [1/5]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename GO >
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::SparseMatrixContainer ( const GO &  go)
inline

◆ SparseMatrixContainer() [2/5]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename GO >
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::SparseMatrixContainer ( const GO &  go,
const ElementType e 
)
inline

◆ SparseMatrixContainer() [3/5]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::SparseMatrixContainer ( Backend::unattached_container  = Backend::unattached_container())
inlineexplicit

Creates an SparseMatrixContainer without allocating an underlying ISTL matrix.

◆ SparseMatrixContainer() [4/5]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::SparseMatrixContainer ( Backend::attached_container  )
inlineexplicit

Creates an SparseMatrixContainer with an empty underlying ISTL matrix.

◆ SparseMatrixContainer() [5/5]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::SparseMatrixContainer ( const SparseMatrixContainer< GFSV, GFSU, C, ET, I > &  rhs)
inline

Member Function Documentation

◆ allocate_matrix()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename GO >
static void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::allocate_matrix ( std::shared_ptr< Container > &  c,
const GO &  go,
const ElementType e 
)
inlinestaticprotected

◆ attach()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::attach ( std::shared_ptr< Container container)
inline

◆ attached()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
bool Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::attached ( ) const
inline

◆ base() [1/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
Container & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::base ( )
inline

◆ base() [2/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
const Container & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::base ( ) const
inline

◆ clear_row()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::clear_row ( const RowIndex ri,
const ElementType diagonal_entry 
)
inline

◆ clear_row_block()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::clear_row_block ( const RowIndex ri,
const ElementType diagonal_entry 
)
inline

◆ detach()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::detach ( )
inline

◆ finalize()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::finalize ( )
inline

◆ flush()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::flush ( )
inline

◆ M()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
size_type Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::M ( ) const
inline

◆ mv()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename V >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::mv ( const V &  x,
V &  y 
) const
inline

◆ N()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
size_type Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::N ( ) const
inline

◆ operator()() [1/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
ElementType & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::operator() ( const RowIndex ri,
const ColIndex ci 
)
inline

◆ operator()() [2/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
const ElementType & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::operator() ( const RowIndex ri,
const ColIndex ci 
) const
inline

◆ operator*=()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
SparseMatrixContainer & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::operator*= ( const ElementType e)
inline

◆ operator=() [1/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
SparseMatrixContainer & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::operator= ( const ElementType e)
inline

◆ operator=() [2/2]

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
SparseMatrixContainer & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::operator= ( const SparseMatrixContainer< GFSV, GFSU, C, ET, I > &  rhs)
inline

◆ sparse_inner_product()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename V >
ElementType Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::sparse_inner_product ( std::size_t  row,
const V &  x 
) const
inlineprotected

◆ storage()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
const std::shared_ptr< Container > & Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::storage ( ) const
inline

◆ usmv()

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
template<typename V >
void Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::usmv ( const ElementType  alpha,
const V &  x,
V &  y 
) const
inline

Member Data Documentation

◆ _container

template<typename GFSV , typename GFSU , template< typename > class C, typename ET , typename I >
std::shared_ptr< Container > Dune::PDELab::Simple::SparseMatrixContainer< GFSV, GFSU, C, ET, I >::_container
protected

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