Feel++  0.91.4
Public Types | Public Member Functions | Static Public Attributes | List of all members
Feel::MatrixBlock< NR, NC, T > Class Template Reference

! More...

#include <matrixblock.hpp>

Inheritance diagram for Feel::MatrixBlock< NR, NC, T >:
Feel::MatrixBlockBase< T > Feel::MatrixSparse< T >

Public Types

typedef super_type::value_type value_type
 
typedef super_type::matrix_ptrtype matrix_ptrtype
 
typedef super_type::backend_type backend_type
 
typedef vf::Blocks< NBLOCKROWS,
NBLOCKCOLS, matrix_ptrtype > 
blocks_type
 
- Public Types inherited from Feel::MatrixBlockBase< T >
typedef MatrixBlockBase< T > self_type
 
typedef super::value_type value_type
 
typedef super::real_type real_type
 
typedef Backend< value_type > backend_type
 
typedef boost::shared_ptr
< backend_type
backend_ptrtype
 
typedef super matrix_type
 
typedef boost::shared_ptr
< matrix_type
matrix_ptrtype
 
typedef std::vector
< matrix_ptrtype > 
vector_matrix_ptrtype
 
typedef super::graph_type graph_type
 
typedef super::graph_ptrtype graph_ptrtype
 
- Public Types inherited from Feel::MatrixSparse< T >
typedef T value_type
 
typedef type_traits< T >::real_type real_type
 
typedef GraphCSR graph_type
 
typedef boost::shared_ptr
< graph_type
graph_ptrtype
 
typedef Vector< T > vector_type
 
typedef boost::shared_ptr
< Vector< T > > 
vector_ptrtype
 

Public Member Functions

 MatrixBlock (blocks_type const &blockSet, backend_type &backend, bool copy_values=true, bool diag_is_nonzero=true)
 
 MatrixBlock (MatrixBlock const &mb)
 
MatrixBlock operator= (MatrixBlock const &mb)
 
MatrixBlockoperator= (matrix_ptrtype const &M)
 
- Public Member Functions inherited from Feel::MatrixBlockBase< T >
 MatrixBlockBase (vf::BlocksBase< matrix_ptrtype > const &blockSet, backend_type &backend, bool copy_values=true, bool diag_is_nonzero=true)
 
void mergeBlockGraph (graph_ptrtype &globGraphb, matrix_ptrtype m, size_type start_i, size_type start_j)
 
 MatrixBlockBase (MatrixBlockBase const &mb)
 
 ~MatrixBlockBase ()
 
MatrixBlockBase operator= (MatrixBlockBase const &mb)
 
matrix_ptrtype getSparseMatrix ()
 
void init (const size_type m, const size_type n, const size_type m_l, const size_type n_l, const size_type nnz=30, const size_type noz=10)
 
void init (const size_type m, const size_type n, const size_type m_l, const size_type n_l, graph_ptrtype const &graph)
 
void clear ()
 
void zero ()
 
void zero (size_type start1, size_type size1, size_type start2, size_type size2)
 
void close () const
 
size_type size1 () const
 
size_type size2 () const
 
size_type rowStart () const
 
size_type rowStop () const
 
void set (const size_type i, const size_type j, const value_type &value)
 
void add (const size_type i, const size_type j, const value_type &value)
 
void addMatrix (const ublas::matrix< value_type > &dm, const std::vector< size_type > &rows, const std::vector< size_type > &cols)
 
void addMatrix (int *rows, int nrows, int *cols, int ncols, value_type *data)
 
void addMatrix (const ublas::matrix< value_type > &dm, const std::vector< size_type > &dof_indices)
 
void addMatrix (const value_type, MatrixSparse< value_type > &)
 
void scale (const value_type)
 
value_type operator() (const size_type i, const size_type j) const
 
self_typeoperator= (MatrixSparse< value_type > const &M)
 
void diagonal (Vector< value_type > &out) const
 
void transpose (MatrixSparse< value_type > &Mt) const
 
value_type energy (Vector< value_type > const &__v, Vector< value_type > const &__u, bool transpose=false) const
 
real_type l1Norm () const
 
real_type linftyNorm () const
 
bool closed () const
 
void print (std::ostream &os=std::cout) const
 
void printPersonal (std::ostream &=std::cout) const
 
void printMatlab (const std::string name="NULL") const
 
void createSubmatrix (MatrixSparse< value_type > &submatrix, const std::vector< size_type > &rows, const std::vector< size_type > &cols) const
 
void reinitSubmatrix (MatrixSparse< value_type > &submatrix, const std::vector< size_type > &rows, const std::vector< size_type > &cols) const
 
void zeroRows (std::vector< int > const &rows, std::vector< value_type > const &values, Vector< value_type > &rhs, Context const &on_context)
 
void updateBlockMat (boost::shared_ptr< MatrixSparse< value_type > > m, size_type start_i, size_type start_j)
 
- Public Member Functions inherited from Feel::MatrixSparse< T >
 MatrixSparse ()
 
 MatrixSparse (DataMap const &dmRow, DataMap const &dmCol, WorldComm const &worldComm=WorldComm())
 
virtual ~MatrixSparse ()
 
DataMap const & mapRow () const
 
DataMap const & mapCol () const
 
void setMapRow (DataMap const &d)
 
void setMapCol (DataMap const &d)
 
virtual bool isInitialized () const
 
virtual void updateSparsityPattern (const std::vector< std::vector< size_type > > &)
 
virtual void setIndexSplit (std::vector< std::vector< int > > const &_indexSplit)
 
std::vector< std::vector< int > > indexSplit () const
 
bool hasGraph () const
 
graph_ptrtype const & graph () const
 
void setGraph (graph_ptrtype const &graph)
 
void setMatrixProperties (size_type p)
 
bool isHermitian () const
 
bool isNonHermitian () const
 
bool isHermitianPositiveDefinite () const
 
bool isSingular () const
 
bool isPositiveDefinite () const
 
bool haveConsistentProperties () const
 
void checkProperties () const
 
WorldComm const & comm () const
 
void addMatrix (const T &s, boost::shared_ptr< MatrixSparse< T > > &m)
 
void multVector (const Vector< T > &arg, Vector< T > &dest) const
 
void multVector (const boost::shared_ptr< Vector< T > > &arg, boost::shared_ptr< Vector< T > > &dest) const
 
void multAddVector (const Vector< T > &arg, Vector< T > &dest) const
 
MatrixSparse< T > & operator= (boost::shared_ptr< MatrixSparse< value_type > > const &M)
 
void diagonal (boost::shared_ptr< Vector< T > > &dest) const
 
boost::shared_ptr
< MatrixSparse< T > > 
transpose () const
 
void transpose (boost::shared_ptr< MatrixSparse< value_type > > &Mt) const
 
virtual void symmetricPart (MatrixSparse< value_type > &Ms) const
 
void symmetricPart (boost::shared_ptr< MatrixSparse< value_type > > &Ms) const
 
real_type energy (vector_ptrtype const &v, vector_ptrtype const &u, bool _transpose=false) const
 
void print (std::ostream &os=std::cout) const
 
void setInitialized (bool _init)
 

Static Public Attributes

static const uint16_type NBLOCKROWS = NR
 
static const uint16_type NBLOCKCOLS = NC
 
static const uint16_type NBLOCKSIZE = NR * NC
 

Additional Inherited Members

- Protected Member Functions inherited from Feel::MatrixSparse< T >
virtual void _get_submatrix (MatrixSparse< T > &, const std::vector< size_type > &, const std::vector< size_type > &, const bool) const
 
- Protected Attributes inherited from Feel::MatrixSparse< T >
WorldComm M_worldComm
 mpi communicator
 
bool _M_is_initialized
 
graph_ptrtype _M_graph
 
Context M_mprop
 
std::vector< std::vector< int > > M_IndexSplit
 
DataMap M_mapRow
 
DataMap M_mapCol
 
- Friends inherited from Feel::MatrixBlockBase< T >

Detailed Description

template<int NR, int NC, typename T>
class Feel::MatrixBlock< NR, NC, T >

!

block of matrices

auto myBlocks = Blocks<2,2,double>()<< A11 << A12 << A21 << A22;

auto A = backend->newBlockMatrix(myBlocks);

Author
Vincent Chabannes