Discontinuous Galerkin Library
#include "dg/algorithm.h"
dg::KroneckerTriDiagonal2d< Container > Struct Template Reference

Fast tridiagonal sparse matrix in 2d \( T_y\otimes T_x\). More...

Public Types

using value_type = dg::get_value_type< Container >
 

Public Member Functions

 KroneckerTriDiagonal2d ()=default
 
 KroneckerTriDiagonal2d (TriDiagonal< Container > my, TriDiagonal< Container > mx)
 
 KroneckerTriDiagonal2d (unsigned nz, TriDiagonal< Container > my, TriDiagonal< Container > mx)
 
unsigned & nz ()
 
unsigned nz () const
 
template<class Container2 >
 KroneckerTriDiagonal2d (const KroneckerTriDiagonal2d< Container2 > &other)
 
const TriDiagonal< Container > & x () const
 
const TriDiagonal< Container > & y () const
 
template<class ContainerType0 , class ContainerType1 >
void operator() (const ContainerType0 &x, ContainerType1 &y) const
 

Detailed Description

template<class Container>
struct dg::KroneckerTriDiagonal2d< Container >

Fast tridiagonal sparse matrix in 2d \( T_y\otimes T_x\).

Consists of Two TriDiagonal matrices \( T_x\) and \( T_y\)

Note
It is fast to apply using dg::blas2::parallel_for (which only works on shared memory vectors though)
Template Parameters
ContainerOne of the shared memory containers

Member Typedef Documentation

◆ value_type

template<class Container >
using dg::KroneckerTriDiagonal2d< Container >::value_type = dg::get_value_type<Container>

Constructor & Destructor Documentation

◆ KroneckerTriDiagonal2d() [1/4]

template<class Container >
dg::KroneckerTriDiagonal2d< Container >::KroneckerTriDiagonal2d ( )
default

◆ KroneckerTriDiagonal2d() [2/4]

template<class Container >
dg::KroneckerTriDiagonal2d< Container >::KroneckerTriDiagonal2d ( TriDiagonal< Container >  my,
TriDiagonal< Container >  mx 
)
inline

◆ KroneckerTriDiagonal2d() [3/4]

template<class Container >
dg::KroneckerTriDiagonal2d< Container >::KroneckerTriDiagonal2d ( unsigned  nz,
TriDiagonal< Container >  my,
TriDiagonal< Container >  mx 
)
inline

◆ KroneckerTriDiagonal2d() [4/4]

template<class Container >
template<class Container2 >
dg::KroneckerTriDiagonal2d< Container >::KroneckerTriDiagonal2d ( const KroneckerTriDiagonal2d< Container2 > &  other)
inline

Member Function Documentation

◆ nz() [1/2]

template<class Container >
unsigned & dg::KroneckerTriDiagonal2d< Container >::nz ( )
inline

◆ nz() [2/2]

template<class Container >
unsigned dg::KroneckerTriDiagonal2d< Container >::nz ( ) const
inline

◆ operator()()

template<class Container >
template<class ContainerType0 , class ContainerType1 >
void dg::KroneckerTriDiagonal2d< Container >::operator() ( const ContainerType0 &  x,
ContainerType1 &  y 
) const
inline

◆ x()

template<class Container >
const TriDiagonal< Container > & dg::KroneckerTriDiagonal2d< Container >::x ( ) const
inline

◆ y()

template<class Container >
const TriDiagonal< Container > & dg::KroneckerTriDiagonal2d< Container >::y ( ) const
inline

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