Feel++
0.91.4
|
! More...
#include <matrixblock.hpp>
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 |
![]() | |
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 |
![]() | |
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) |
MatrixBlock & | operator= (matrix_ptrtype const &M) |
![]() | |
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_type & | operator= (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) |
![]() | |
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 | |
![]() | |
virtual void | _get_submatrix (MatrixSparse< T > &, const std::vector< size_type > &, const std::vector< size_type > &, const bool) const |
![]() | |
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 |
![]() |
!
block of matrices
auto myBlocks = Blocks<2,2,double>()<< A11 << A12 << A21 << A22;
auto A = backend->newBlockMatrix(myBlocks);