GooseFEM 1.4.1.dev2+g78f16df
|
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 <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. | |
const Eigen::SparseMatrix< double > & | data_uu () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_up () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_pu () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_pp () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_ud () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_pd () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_du () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_dp () const |
Pointer to data. | |
const Eigen::SparseMatrix< double > & | data_dd () const |
Pointer to data. | |
![]() | |
size_t | nni () const |
Number of independent DOFs. | |
size_t | nnd () const |
Number of dependent DOFs. | |
const array_type::tensor< size_t, 1 > & | iii () const |
Independent DOFs. | |
const array_type::tensor< size_t, 1 > & | iid () const |
Dependent DOFs. | |
![]() | |
size_t | nnu () const |
Number of unknown DOFs. | |
size_t | nnp () const |
Number of prescribed DOFs. | |
const array_type::tensor< size_t, 1 > & | iiu () const |
Unknown DOFs. | |
const array_type::tensor< size_t, 1 > & | iip () const |
Prescribed DOFs. | |
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: | |
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. | |
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. | |
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. | |
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. | |
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. | |
![]() | |
size_t | nelem () const |
Number of elements. | |
size_t | nne () const |
Number of nodes per element. | |
size_t | nnode () const |
Number of nodes. | |
size_t | ndim () const |
Number of dimensions. | |
size_t | ndof () const |
Number of DOFs. | |
const array_type::tensor< size_t, 2 > & | dofs () const |
DOFs per node. | |
const array_type::tensor< size_t, 2 > & | conn () const |
Connectivity. | |
std::array< size_t, 1 > | shape_dofval () const |
Shape of "dofval". | |
std::array< size_t, 2 > | shape_nodevec () const |
Shape of "nodevec". | |
std::array< size_t, 3 > | shape_elemmat () const |
Shape of "elemmat". | |
template<class T > | |
void | assemble (const T &elemmat) |
Assemble from "elemmat". | |
array_type::tensor< double, 2 > | Todense () const |
Copy as dense matrix. | |
template<class T > | |
void | todense (T &ret) const |
Copy to dense matrix. | |
array_type::tensor< double, 2 > | Dot (const array_type::tensor< double, 2 > &x) const |
Dot-product \( b_i = A_{ij} x_j \). | |
array_type::tensor< double, 1 > | Dot (const array_type::tensor< double, 1 > &x) const |
Dot-product \( b_i = A_{ij} x_j \). | |
void | dot (const array_type::tensor< double, 2 > &x, array_type::tensor< double, 2 > &b) const |
Dot-product \( b_i = A_{ij} x_j \). | |
void | dot (const array_type::tensor< double, 1 > &x, array_type::tensor< double, 1 > &b) const |
Dot-product \( b_i = A_{ij} x_j \). | |
Protected Attributes | |
Eigen::SparseMatrix< double > | m_Auu |
The matrix. | |
Eigen::SparseMatrix< double > | m_Aup |
The matrix. | |
Eigen::SparseMatrix< double > | m_Apu |
The matrix. | |
Eigen::SparseMatrix< double > | m_App |
The matrix. | |
Eigen::SparseMatrix< double > | m_Aud |
The matrix. | |
Eigen::SparseMatrix< double > | m_Apd |
The matrix. | |
Eigen::SparseMatrix< double > | m_Adu |
The matrix. | |
Eigen::SparseMatrix< double > | m_Adp |
The matrix. | |
Eigen::SparseMatrix< double > | m_Add |
The matrix. | |
Eigen::SparseMatrix< double > | m_ACuu |
// The matrix for which the tyings have been applied. | |
Eigen::SparseMatrix< double > | m_ACup |
// The matrix for which the tyings have been applied. | |
Eigen::SparseMatrix< double > | m_ACpu |
// The matrix for which the tyings have been applied. | |
Eigen::SparseMatrix< double > | m_ACpp |
// The matrix for which the tyings have been applied. | |
std::vector< Eigen::Triplet< double > > | m_Tuu |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tup |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tpu |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tpp |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tud |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tpd |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tdu |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tdp |
Matrix entries. | |
std::vector< Eigen::Triplet< double > > | m_Tdd |
Matrix entries. | |
Eigen::SparseMatrix< double > | m_Cdu |
Tying matrix, see Tyings::Periodic::Cdu(). | |
Eigen::SparseMatrix< double > | m_Cdp |
Tying matrix, see Tyings::Periodic::Cdp(). | |
Eigen::SparseMatrix< double > | m_Cud |
Transpose of "m_Cdu". | |
Eigen::SparseMatrix< double > | m_Cpd |
Transpose of "m_Cdp". | |
![]() | |
array_type::tensor< size_t, 1 > | m_iii |
See iii() | |
array_type::tensor< size_t, 1 > | m_iid |
See iid() | |
size_t | m_nni |
See nni. | |
size_t | m_nnd |
See nnd. | |
![]() | |
array_type::tensor< size_t, 1 > | m_iiu |
See iiu() | |
array_type::tensor< size_t, 1 > | m_iip |
See iip() | |
size_t | m_nnu |
See nnu. | |
size_t | m_nnp |
See nnp. | |
![]() | |
array_type::tensor< size_t, 2 > | m_conn |
Connectivity [nelem, nne]. | |
array_type::tensor< size_t, 2 > | m_dofs |
DOF-numbers per node [nnode, ndim]. | |
size_t | m_nelem |
See nelem(). | |
size_t | m_nne |
See nne(). | |
size_t | m_nnode |
See nnode(). | |
size_t | m_ndim |
See ndim(). | |
size_t | m_ndof |
See ndof(). | |
bool | m_changed = true |
Signal changes to data. | |
Friends | |
template<class > | |
class | MatrixPartitionedTyingsSolver |
Additional Inherited Members | |
![]() | |
using | derived_type |
Underlying type. | |
![]() | |
using | derived_type = D |
Underlying type. | |
![]() | |
using | derived_type = D |
Underlying type. | |
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.
Pointer to data.
Definition at line 204 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 196 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 188 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 180 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 164 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 156 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 172 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 148 of file MatrixPartitionedTyings.h.
Pointer to data.
Definition at line 140 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.