Class GooseFEM::MatrixPartitioned#

class MatrixPartitioned : public GooseFEM::MatrixPartitionedBase<MatrixPartitioned>#

Sparse matrix partitioned in an unknown and a prescribed part.

In particular: \( \begin{bmatrix} A_{uu} & A_{up} \\ A_{pu} & A_{pp} \end{bmatrix} \)

See VectorPartitioned() for bookkeeping definitions.

Public Functions

inline MatrixPartitioned(const array_type::tensor<size_t, 2> &conn, const array_type::tensor<size_t, 2> &dofs, const array_type::tensor<size_t, 1> &iip)#

Constructor.

Parameters
  • conn – connectivity [nelem, nne].

  • dofs – DOFs per node [nnode, ndim].

  • iip – prescribed DOFs [nnp].

inline const Eigen::SparseMatrix<double> &data_uu() const#

Pointer to data.

inline const Eigen::SparseMatrix<double> &data_up() const#

Pointer to data.

inline const Eigen::SparseMatrix<double> &data_pu() const#

Pointer to data.

inline const Eigen::SparseMatrix<double> &data_pp() const#

Pointer to data.

inline void set(const array_type::tensor<size_t, 1> &rows, const array_type::tensor<size_t, 1> &cols, const array_type::tensor<double, 2> &matrix)#

Overwrite matrix.

Parameters
  • rows – Row numbers [m].

  • cols – Column numbers [n].

  • matrix – Data entries matrix(i, j) for rows(i), cols(j) [m, n].

inline void add(const array_type::tensor<size_t, 1> &rows, const array_type::tensor<size_t, 1> &cols, const array_type::tensor<double, 2> &matrix)#

Add matrix.

Parameters
  • rows – Row numbers [m].

  • cols – Column numbers [n].

  • matrix – Data entries matrix(i, j) for rows(i), cols(j) [m, n].