FrictionQPotFEM 0.23.3
Loading...
Searching...
No Matches
GooseFEM::Tyings::Periodic Class Reference

Nodal tyings per periodic boundary conditions. More...

#include <include/GooseFEM/TyingsPeriodic.h>

Public Member Functions

template<class C , class D , class S , class T >
 Periodic (const C &coor, const D &dofs, const S &control_dofs, const T &nodal_tyings)
 Constructor. More...
 
template<class C , class D , class S , class T , class U >
 Periodic (const C &coor, const D &dofs, const S &control_dofs, const T &nodal_tyings, const U &iip)
 Constructor. More...
 
size_t nnd () const
 
size_t nni () const
 
size_t nnu () const
 
size_t nnp () const
 
const array_type::tensor< size_t, 2 > & dofs () const
 
const array_type::tensor< size_t, 2 > & control () const
 
const array_type::tensor< size_t, 2 > & nodal_tyings () const
 Return the applied nodal tyings. More...
 
array_type::tensor< size_t, 1 > iid () const
 Dependent DOFs. More...
 
array_type::tensor< size_t, 1 > iii () const
 Independent DOFs. More...
 
array_type::tensor< size_t, 1 > iiu () const
 Independent unknown DOFs. More...
 
array_type::tensor< size_t, 1 > iip () const
 Independent prescribed DOFs. More...
 
Eigen::SparseMatrix< double > Cdi () const
 Return tying matrix such as to get the dependent DOFs \( u_d \) from the independent DOFs \( u_i \) as follows. More...
 
Eigen::SparseMatrix< double > Cdu () const
 Unknown part of the partitioned tying matrix, see Cdi(). More...
 
Eigen::SparseMatrix< double > Cdp () const
 Prescribed part of the partitioned tying matrix, see Cdi(). More...
 

Detailed Description

Nodal tyings per periodic boundary conditions.

The idea is that the displacement of all DOFs of a node are tied to another node and to the average displacement gradient. The latter is applied/measured using 'virtual' control nodes.

Consider the DOF list \( u \) renumbered such that it is split up in independent and dependent DOFs as follows

\( u = \begin{bmatrix} u_i \\ u_d \end{bmatrix}\)

whereby the independent DOFs are furthermore split up in unknown and prescribed nodes as follows

\( u_i = \begin{bmatrix} u_u \\ u_p \end{bmatrix}\)

such that

\( u = \begin{bmatrix} u_u \\ u_p \\ u_d \end{bmatrix}\)

Todo:
Document how the DOFs are tied to the control nodes, and what the has to do with the mean.

Definition at line 46 of file TyingsPeriodic.h.

Constructor & Destructor Documentation

◆ Periodic() [1/2]

template<class C , class D , class S , class T >
GooseFEM::Tyings::Periodic::Periodic ( const C &  coor,
const D &  dofs,
const S &  control_dofs,
const T &  nodal_tyings 
)
inline

Constructor.

Template Parameters
Carray_type::tensor<double, 2>
Darray_type::tensor<size_t, 2>
Sarray_type::tensor<size_t, 2>
Tarray_type::tensor<size_t, 2>
Parameters
coorNodal coordinates [nnode, ndim].
dofsDOF-numbers per node [nnode, ndim].
control_dofsDOF-numbers per control node [ndim, ndim].
nodal_tyingsList of nodal tyings, see nodal_tyings(). [ntyings, 2].

Definition at line 63 of file TyingsPeriodic.h.

◆ Periodic() [2/2]

template<class C , class D , class S , class T , class U >
GooseFEM::Tyings::Periodic::Periodic ( const C &  coor,
const D &  dofs,
const S &  control_dofs,
const T &  nodal_tyings,
const U &  iip 
)
inline

Constructor.

Template Parameters
Carray_type::tensor<double, 2>
Darray_type::tensor<size_t, 2>
Sarray_type::tensor<size_t, 2>
Tarray_type::tensor<size_t, 2>
Uarray_type::tensor<size_t, 1>
Parameters
coorNodal coordinates [nnode, ndim].
dofsDOF-numbers per node [nnode, ndim].
control_dofsDOF-numbers per control node [ndim, ndim].
nodal_tyingsList of nodal tyings, see nodal_tyings(). [ntyings, 2].
iipList of prescribed DOF-numbers.

Definition at line 83 of file TyingsPeriodic.h.

Member Function Documentation

◆ Cdi()

Eigen::SparseMatrix< double > GooseFEM::Tyings::Periodic::Cdi ( ) const
inline

Return tying matrix such as to get the dependent DOFs \( u_d \) from the independent DOFs \( u_i \) as follows.

\( u_d = C_{di} u_i \)

Note that this can be further partitioned in

\( u_d = C_{du} u_u + C_{dp} u_p \)

See Cdu() and Cdp().

Returns
Sparse matrix.

Definition at line 237 of file TyingsPeriodic.h.

◆ Cdp()

Eigen::SparseMatrix< double > GooseFEM::Tyings::Periodic::Cdp ( ) const
inline

Prescribed part of the partitioned tying matrix, see Cdi().

Returns
Sparse matrix.

Definition at line 307 of file TyingsPeriodic.h.

◆ Cdu()

Eigen::SparseMatrix< double > GooseFEM::Tyings::Periodic::Cdu ( ) const
inline

Unknown part of the partitioned tying matrix, see Cdi().

Returns
Sparse matrix.

Definition at line 270 of file TyingsPeriodic.h.

◆ control()

const array_type::tensor< size_t, 2 > & GooseFEM::Tyings::Periodic::control ( ) const
inline
Returns
DOF-numbers for each control node, as used internally (after renumbering), [ndim, ndim].

Definition at line 166 of file TyingsPeriodic.h.

◆ dofs()

const array_type::tensor< size_t, 2 > & GooseFEM::Tyings::Periodic::dofs ( ) const
inline
Returns
DOF-numbers per node, as used internally (after renumbering), [nnode, ndim].

Definition at line 157 of file TyingsPeriodic.h.

◆ iid()

array_type::tensor< size_t, 1 > GooseFEM::Tyings::Periodic::iid ( ) const
inline

Dependent DOFs.

Returns
List of DOF numbers.

Definition at line 188 of file TyingsPeriodic.h.

◆ iii()

array_type::tensor< size_t, 1 > GooseFEM::Tyings::Periodic::iii ( ) const
inline

Independent DOFs.

Returns
List of DOF numbers.

Definition at line 198 of file TyingsPeriodic.h.

◆ iip()

array_type::tensor< size_t, 1 > GooseFEM::Tyings::Periodic::iip ( ) const
inline

Independent prescribed DOFs.

Returns
List of DOF numbers.

Definition at line 218 of file TyingsPeriodic.h.

◆ iiu()

array_type::tensor< size_t, 1 > GooseFEM::Tyings::Periodic::iiu ( ) const
inline

Independent unknown DOFs.

Returns
List of DOF numbers.

Definition at line 208 of file TyingsPeriodic.h.

◆ nnd()

size_t GooseFEM::Tyings::Periodic::nnd ( ) const
inline
Returns
Number of dependent DOFs.

Definition at line 125 of file TyingsPeriodic.h.

◆ nni()

size_t GooseFEM::Tyings::Periodic::nni ( ) const
inline
Returns
Number of independent DOFs.

Definition at line 133 of file TyingsPeriodic.h.

◆ nnp()

size_t GooseFEM::Tyings::Periodic::nnp ( ) const
inline
Returns
Number of independent prescribed DOFs.

Definition at line 149 of file TyingsPeriodic.h.

◆ nnu()

size_t GooseFEM::Tyings::Periodic::nnu ( ) const
inline
Returns
Number of independent unknown DOFs.

Definition at line 141 of file TyingsPeriodic.h.

◆ nodal_tyings()

const array_type::tensor< size_t, 2 > & GooseFEM::Tyings::Periodic::nodal_tyings ( ) const
inline

Return the applied nodal tyings.

Per tying (row) two node numbers are specified, according to the convention (independent, dependent).

Returns
[ntyings, 2].

Definition at line 178 of file TyingsPeriodic.h.


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