# Offsets

Element offsets are defined as global vectors relative to the nodes. These locate pseudo nodes that define the flexible part of the element. Element stiffnesses are calculated for the flexible part and modified to give the required nodal stiffnesses. Release conditions are applied before the offsets (i.e. they are applied to the pseudo nodes). The element local axes are defined with respect to the flexible part of the element.

The offsets can then be considered as rigid links and a constraint equation set established linking pseudo nodes to actual nodes

$\boldsymbol{\varphi}_{pseudo} = \mathbf{T}\boldsymbol{\varphi}_{node}$

where the transformation is based on the location of the pseudo node $(x,y,z)$ relative to the actual node is

$T = \begin{bmatrix} 1 & 0 & 0 & 0 & z & - y \\ 0 & 1 & 0 & - z & 0 & x \\ 0 & 0 & 1 & y & - x & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix}$

The displacements at the pseudo nodes can then be related to the displacements at the actual nodes.

$\mathbf{u}_{pseudo} = \mathbf{T}\mathbf{u}_{node}$

The forces at the nodes can be related to the forces at the pseudo nodes.

$\mathbf{f}_{node} = \mathbf{T}^{T}\mathbf{f}_{pseudo}$

The element stiffness can then be modified on a node by node basis using

\begin{aligned}\mathbf{f}_{i,pseudo} &= \mathbf{K}_{ij}\mathbf{u}_{j,pseudo}\\ \mathbf{f}_{i,node} &= {\mathbf{T}_{i}}^{T}\mathbf{K}_{ij}\mathbf{T}_{j}\mathbf{u}_{j,node}\end{aligned}