FrictionQPotFEM 0.23.3
|
Sparse matrix from with dependent DOFs are eliminated, and the remaining (small) independent system is partitioned in an unknown and a prescribed part. More...
#include <include/GooseFEM/MatrixPartitionedTyings.h>
Public Member Functions | |
MatrixPartitionedTyings (const array_type::tensor< size_t, 2 > &conn, const array_type::tensor< size_t, 2 > &dofs, const Eigen::SparseMatrix< double > &Cdu, const Eigen::SparseMatrix< double > &Cdp) | |
Constructor. More... | |
const Eigen::SparseMatrix< double > & | data_uu () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_up () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_pu () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_pp () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_ud () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_pd () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_du () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_dp () const |
Pointer to data. More... | |
const Eigen::SparseMatrix< double > & | data_dd () const |
Pointer to data. More... | |
![]() | |
size_t | nni () const |
Number of independent DOFs. More... | |
size_t | nnd () const |
Number of dependent DOFs. More... | |
const array_type::tensor< size_t, 1 > & | iii () const |
Independent DOFs. More... | |
const array_type::tensor< size_t, 1 > & | iid () const |
Dependent DOFs. More... | |
![]() | |
size_t | nnu () const |
Number of unknown DOFs. More... | |
size_t | nnp () const |
Number of prescribed DOFs. More... | |
const array_type::tensor< size_t, 1 > & | iiu () const |
Unknown DOFs. More... | |
const array_type::tensor< size_t, 1 > & | iip () const |
Prescribed DOFs. More... | |
array_type::tensor< double, 2 > | Reaction (const array_type::tensor< double, 2 > &x, const array_type::tensor< double, 2 > &b) const |
Right-hand-size for corresponding to the prescribed DOFs: More... | |
array_type::tensor< double, 1 > | Reaction (const array_type::tensor< double, 1 > &x, const array_type::tensor< double, 1 > &b) const |
Same as Reaction(const array_type::tensor<double, 2>&, const array_type::tensor<double, 2>&), but of "dofval" input and output. More... | |
void | reaction (const array_type::tensor< double, 2 > &x, array_type::tensor< double, 2 > &b) const |
Same as Reaction(const array_type::tensor<double, 2>&, const array_type::tensor<double, 2>&), but inserting in-place. More... | |
void | reaction (const array_type::tensor< double, 1 > &x, array_type::tensor< double, 1 > &b) const |
Same as Reaction(const array_type::tensor<double, 1>&, const array_type::tensor<double, 1>&), but inserting in-place. More... | |
array_type::tensor< double, 1 > | Reaction_p (const array_type::tensor< double, 1 > &x_u, const array_type::tensor< double, 1 > &x_p) const |
Same as Reaction(const array_type::tensor<double, 1>&, const array_type::tensor<double, 1>&), but with partitioned input and output. More... | |
void | reaction_p (const array_type::tensor< double, 1 > &x_u, const array_type::tensor< double, 1 > &x_p, array_type::tensor< double, 1 > &b_p) const |
Same as Reaction_p(const array_type::tensor<double, 1>&, const array_type::tensor<double,
1>&), but writing to preallocated output. More... | |
![]() | |
size_t | nelem () const |
Number of elements. More... | |
size_t | nne () const |
Number of nodes per element. More... | |
size_t | nnode () const |
Number of nodes. More... | |
size_t | ndim () const |
Number of dimensions. More... | |
size_t | ndof () const |
Number of DOFs. More... | |
const array_type::tensor< size_t, 2 > & | dofs () const |
DOFs per node. More... | |
const array_type::tensor< size_t, 2 > & | conn () const |
Connectivity. More... | |
std::array< size_t, 1 > | shape_dofval () const |
Shape of "dofval". More... | |
std::array< size_t, 2 > | shape_nodevec () const |
Shape of "nodevec". More... | |
std::array< size_t, 3 > | shape_elemmat () const |
Shape of "elemmat". More... | |
template<class T > | |
void | assemble (const T &elemmat) |
Assemble from "elemmat". More... | |
array_type::tensor< double, 2 > | Todense () const |
Copy as dense matrix. More... | |
template<class T > | |
void | todense (T &ret) const |
Copy to dense matrix. More... | |
array_type::tensor< double, 2 > | Dot (const array_type::tensor< double, 2 > &x) const |
Dot-product \( b_i = A_{ij} x_j \). More... | |
array_type::tensor< double, 1 > | Dot (const array_type::tensor< double, 1 > &x) const |
Dot-product \( b_i = A_{ij} x_j \). More... | |
void | dot (const array_type::tensor< double, 2 > &x, array_type::tensor< double, 2 > &b) const |
Dot-product \( b_i = A_{ij} x_j \). More... | |
void | dot (const array_type::tensor< double, 1 > &x, array_type::tensor< double, 1 > &b) const |
Dot-product \( b_i = A_{ij} x_j \). More... | |
Protected Attributes | |
Eigen::SparseMatrix< double > | m_Auu |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Aup |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Apu |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_App |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Aud |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Apd |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Adu |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Adp |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_Add |
The matrix. More... | |
Eigen::SparseMatrix< double > | m_ACuu |
// The matrix for which the tyings have been applied. More... | |
Eigen::SparseMatrix< double > | m_ACup |
// The matrix for which the tyings have been applied. More... | |
Eigen::SparseMatrix< double > | m_ACpu |
// The matrix for which the tyings have been applied. More... | |
Eigen::SparseMatrix< double > | m_ACpp |
// The matrix for which the tyings have been applied. More... | |
std::vector< Eigen::Triplet< double > > | m_Tuu |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tup |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tpu |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tpp |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tud |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tpd |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tdu |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tdp |
Matrix entries. More... | |
std::vector< Eigen::Triplet< double > > | m_Tdd |
Matrix entries. More... | |
Eigen::SparseMatrix< double > | m_Cdu |
Tying matrix, see Tyings::Periodic::Cdu(). More... | |
Eigen::SparseMatrix< double > | m_Cdp |
Tying matrix, see Tyings::Periodic::Cdp(). More... | |
Eigen::SparseMatrix< double > | m_Cud |
Transpose of "m_Cdu". More... | |
Eigen::SparseMatrix< double > | m_Cpd |
Transpose of "m_Cdp". More... | |
![]() | |
array_type::tensor< size_t, 1 > | m_iii |
See iii() More... | |
array_type::tensor< size_t, 1 > | m_iid |
See iid() More... | |
size_t | m_nni |
See #nni. More... | |
size_t | m_nnd |
See #nnd. More... | |
![]() | |
array_type::tensor< size_t, 1 > | m_iiu |
See iiu() More... | |
array_type::tensor< size_t, 1 > | m_iip |
See iip() More... | |
size_t | m_nnu |
See nnu. More... | |
size_t | m_nnp |
See nnp. More... | |
![]() | |
array_type::tensor< size_t, 2 > | m_conn |
Connectivity [nelem, nne]. More... | |
array_type::tensor< size_t, 2 > | m_dofs |
DOF-numbers per node [nnode, ndim]. More... | |
size_t | m_nelem |
See nelem(). More... | |
size_t | m_nne |
See nne(). More... | |
size_t | m_nnode |
See nnode(). More... | |
size_t | m_ndim |
See ndim(). More... | |
size_t | m_ndof |
See ndof(). More... | |
bool | m_changed = true |
Signal changes to data. More... | |
Friends | |
template<class > | |
class | MatrixPartitionedTyingsSolver |
Additional Inherited Members | |
![]() | |
using | derived_type = MatrixPartitionedTyings |
Underlying type. More... | |
![]() | |
using | derived_type = D |
Underlying type. More... | |
![]() | |
using | derived_type = D |
Underlying type. More... | |
Sparse matrix from with dependent DOFs are eliminated, and the remaining (small) independent system is partitioned in an unknown and a prescribed part.
In particular:
\( A_{ii} = \begin{bmatrix} A_{uu} & A_{up} \\ A_{pu} & A_{pp} \end{bmatrix} \)
See VectorPartitionedTyings() for bookkeeping definitions.
Definition at line 37 of file MatrixPartitionedTyings.h.
|
inline |
Constructor.
conn | connectivity [nelem, nne]. |
dofs | DOFs per node [nnode, ndim]. |
Cdu | See Tyings::Periodic::Cdu(). |
Cdp | See Tyings::Periodic::Cdp(). |
Definition at line 86 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 203 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 195 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 187 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 179 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 163 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 155 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 171 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 147 of file MatrixPartitionedTyings.h.
|
inline |
Pointer to data.
Definition at line 139 of file MatrixPartitionedTyings.h.
|
friend |
Definition at line 73 of file MatrixPartitionedTyings.h.
|
protected |
// The matrix for which the tyings have been applied.
Definition at line 56 of file MatrixPartitionedTyings.h.
|
protected |
// The matrix for which the tyings have been applied.
Definition at line 55 of file MatrixPartitionedTyings.h.
|
protected |
// The matrix for which the tyings have been applied.
Definition at line 54 of file MatrixPartitionedTyings.h.
|
protected |
// The matrix for which the tyings have been applied.
Definition at line 53 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 52 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 51 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 50 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 49 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 47 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 46 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 48 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 45 of file MatrixPartitionedTyings.h.
|
protected |
The matrix.
Definition at line 44 of file MatrixPartitionedTyings.h.
|
protected |
Tying matrix, see Tyings::Periodic::Cdp().
Definition at line 67 of file MatrixPartitionedTyings.h.
|
protected |
Tying matrix, see Tyings::Periodic::Cdu().
Definition at line 66 of file MatrixPartitionedTyings.h.
|
protected |
Transpose of "m_Cdp".
Definition at line 69 of file MatrixPartitionedTyings.h.
|
protected |
Transpose of "m_Cdu".
Definition at line 68 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 65 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 64 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 63 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 62 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 60 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 59 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 61 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 58 of file MatrixPartitionedTyings.h.
|
protected |
Matrix entries.
Definition at line 57 of file MatrixPartitionedTyings.h.