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

block of matrices More...

#include <matrixblock.hpp>

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

List of all members.

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::real_type real_type
typedef boost::shared_ptr
< backend_type
backend_ptrtype
typedef super matrix_type
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 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
virtual real_type energy (vector_type const &v, vector_type const &u, bool transpose=false) const =0
real_type energy (vector_ptrtype const &v, vector_ptrtype const &u, bool _transpose=false) 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

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