FrictionQPotFEM 0.23.3
Loading...
Searching...
No Matches
GooseFEM::MatrixDiagonalPartitioned Class Reference

Diagonal and partitioned matrix. More...

#include <include/GooseFEM/MatrixDiagonalPartitioned.h>

Inheritance diagram for GooseFEM::MatrixDiagonalPartitioned:
Collaboration diagram for GooseFEM::MatrixDiagonalPartitioned:

Public Member Functions

 MatrixDiagonalPartitioned (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. More...
 
void set (const array_type::tensor< double, 1 > &A)
 Set all (diagonal) matrix components. More...
 
array_type::tensor< double, 1 > data () const
 Assemble to diagonal matrix (involves copies). More...
 
const array_type::tensor< double, 1 > & data_uu () const
 Pointer to data. More...
 
const array_type::tensor< double, 1 > & data_pp () const
 Pointer to data. More...
 
array_type::tensor< double, 1 > Todiagonal () const
 Pointer to data. More...
 
array_type::tensor< double, 1 > Dot_u (const array_type::tensor< double, 1 > &x_u, const array_type::tensor< double, 1 > &x_p) const
 
void dot_u (const array_type::tensor< double, 1 > &x_u, const array_type::tensor< double, 1 > &x_p, array_type::tensor< double, 1 > &b_u) const
 
array_type::tensor< double, 1 > Dot_p (const array_type::tensor< double, 1 > &x_u, const array_type::tensor< double, 1 > &x_p) const
 
void dot_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
 
array_type::tensor< double, 1 > Solve_u (const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &x_p)
 
void solve_u (const array_type::tensor< double, 1 > &b_u, const array_type::tensor< double, 1 > &x_p, array_type::tensor< double, 1 > &x_u)
 
- Public Member Functions inherited from GooseFEM::MatrixPartitionedBase< MatrixDiagonalPartitioned >
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...
 
- Public Member Functions inherited from GooseFEM::MatrixBase< D >
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...
 
- Public Member Functions inherited from GooseFEM::MatrixDiagonalBase< MatrixDiagonalPartitioned >
array_type::tensor< double, 2 > Solve (const array_type::tensor< double, 2 > &b)
 Solve \( x = A^{-1} b \). More...
 
array_type::tensor< double, 1 > Solve (const array_type::tensor< double, 1 > &b)
 Solve \( x = A^{-1} b \). More...
 
void solve (const array_type::tensor< double, 2 > &b, array_type::tensor< double, 2 > &x)
 Solve \( x = A^{-1} b \). More...
 
void solve (const array_type::tensor< double, 1 > &b, array_type::tensor< double, 1 > &x)
 Solve \( x = A^{-1} b \). More...
 

Additional Inherited Members

- Public Types inherited from GooseFEM::MatrixPartitionedBase< MatrixDiagonalPartitioned >
using derived_type = MatrixDiagonalPartitioned
 Underlying type. More...
 
- Public Types inherited from GooseFEM::MatrixBase< D >
using derived_type = D
 Underlying type. More...
 
- Public Types inherited from GooseFEM::MatrixDiagonalBase< MatrixDiagonalPartitioned >
using derived_type = MatrixDiagonalPartitioned
 Underlying type. More...
 
- Protected Attributes inherited from GooseFEM::MatrixPartitionedBase< MatrixDiagonalPartitioned >
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...
 
- Protected Attributes inherited from GooseFEM::MatrixBase< D >
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...
 

Detailed Description

Diagonal and partitioned matrix.

See Vector() for bookkeeping definitions.

Definition at line 25 of file MatrixDiagonalPartitioned.h.

Constructor & Destructor Documentation

◆ MatrixDiagonalPartitioned()

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

Constructor.

Parameters
connconnectivity [nelem, nne].
dofsDOFs per node [nnode, ndim].
iipprescribed DOFs [nnp].

Definition at line 42 of file MatrixDiagonalPartitioned.h.

Member Function Documentation

◆ data()

array_type::tensor< double, 1 > GooseFEM::MatrixDiagonalPartitioned::data ( ) const
inline

Assemble to diagonal matrix (involves copies).

Returns
[ndof].

Definition at line 141 of file MatrixDiagonalPartitioned.h.

◆ data_pp()

const array_type::tensor< double, 1 > & GooseFEM::MatrixDiagonalPartitioned::data_pp ( ) const
inline

Pointer to data.

Returns
[nnu].

Definition at line 171 of file MatrixDiagonalPartitioned.h.

◆ data_uu()

const array_type::tensor< double, 1 > & GooseFEM::MatrixDiagonalPartitioned::data_uu ( ) const
inline

Pointer to data.

Returns
[nnu].

Definition at line 162 of file MatrixDiagonalPartitioned.h.

◆ Dot_p()

array_type::tensor< double, 1 > GooseFEM::MatrixDiagonalPartitioned::Dot_p ( const array_type::tensor< double, 1 > &  x_u,
const array_type::tensor< double, 1 > &  x_p 
) const
inline
Todo:
Decide if this function should be kept.
Parameters
x_udofval [nnu].
x_pdofval [nnp].
Returns
b_p dofval [nnp].

Definition at line 270 of file MatrixDiagonalPartitioned.h.

◆ dot_p()

void GooseFEM::MatrixDiagonalPartitioned::dot_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
inline
Todo:
Decide if this function should be kept.
Parameters
x_udofval [nnu].
x_pdofval [nnp].
b_p(overwritten) dofval [nnp].

Definition at line 283 of file MatrixDiagonalPartitioned.h.

◆ Dot_u()

array_type::tensor< double, 1 > GooseFEM::MatrixDiagonalPartitioned::Dot_u ( const array_type::tensor< double, 1 > &  x_u,
const array_type::tensor< double, 1 > &  x_p 
) const
inline
Todo:
Decide if this function should be kept.
Parameters
x_udofval [nnu].
x_pdofval [nnp].
Returns
b_u dofval [nnu].

Definition at line 233 of file MatrixDiagonalPartitioned.h.

◆ dot_u()

void GooseFEM::MatrixDiagonalPartitioned::dot_u ( const array_type::tensor< double, 1 > &  x_u,
const array_type::tensor< double, 1 > &  x_p,
array_type::tensor< double, 1 > &  b_u 
) const
inline
Todo:
Decide if this function should be kept.
Parameters
x_udofval [nnu].
x_pdofval [nnp].
b_u(overwritten) dofval [nnu].

Definition at line 246 of file MatrixDiagonalPartitioned.h.

◆ set()

void GooseFEM::MatrixDiagonalPartitioned::set ( const array_type::tensor< double, 1 > &  A)
inline

Set all (diagonal) matrix components.

Parameters
AThe matrix [ndof].

Definition at line 120 of file MatrixDiagonalPartitioned.h.

◆ Solve_u()

array_type::tensor< double, 1 > GooseFEM::MatrixDiagonalPartitioned::Solve_u ( const array_type::tensor< double, 1 > &  b_u,
const array_type::tensor< double, 1 > &  x_p 
)
inline
Parameters
b_udofval [nnu].
x_pdofval [nnp].
Returns
x_u dofval [nnu].

Definition at line 340 of file MatrixDiagonalPartitioned.h.

◆ solve_u()

void GooseFEM::MatrixDiagonalPartitioned::solve_u ( const array_type::tensor< double, 1 > &  b_u,
const array_type::tensor< double, 1 > &  x_p,
array_type::tensor< double, 1 > &  x_u 
)
inline
Parameters
b_udofval [nnu].
x_pdofval [nnp].
x_u(overwritten) dofval [nnu].

Definition at line 352 of file MatrixDiagonalPartitioned.h.

◆ Todiagonal()

array_type::tensor< double, 1 > GooseFEM::MatrixDiagonalPartitioned::Todiagonal ( ) const
inline

Pointer to data.

Returns
[nnu].

Definition at line 180 of file MatrixDiagonalPartitioned.h.


The documentation for this class was generated from the following file: