GooseFEM 1.4.1.dev2+g78f16df
Loading...
Searching...
No Matches
GooseFEM::Tyings::Periodic Class Reference

Nodal tyings per periodic boundary conditions. More...

#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.
 
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.
 
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.
 
array_type::tensor< size_t, 1 > iid () const
 Dependent DOFs.
 
array_type::tensor< size_t, 1 > iii () const
 Independent DOFs.
 
array_type::tensor< size_t, 1 > iiu () const
 Independent unknown DOFs.
 
array_type::tensor< size_t, 1 > iip () const
 Independent prescribed DOFs.
 
Eigen::SparseMatrix< doubleCdi () const
 Return tying matrix such as to get the dependent DOFs \( u_d \) from the independent DOFs \( u_i \) as follows.
 
Eigen::SparseMatrix< doubleCdu () const
 Unknown part of the partitioned tying matrix, see Cdi().
 
Eigen::SparseMatrix< doubleCdp () const
 Prescribed part of the partitioned tying matrix, see Cdi().
 

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 238 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 310 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 272 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 167 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 158 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 189 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 199 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 219 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 209 of file TyingsPeriodic.h.

◆ nnd()

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

Definition at line 126 of file TyingsPeriodic.h.

◆ nni()

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

Definition at line 134 of file TyingsPeriodic.h.

◆ nnp()

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

Definition at line 150 of file TyingsPeriodic.h.

◆ nnu()

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

Definition at line 142 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 179 of file TyingsPeriodic.h.


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