Shell element P-Delta forces are computed in a similar manner to frames, but along each edge of the shell element.

First, the nodal forces from the preceding analysis are computed. This is done by retrieving the global nodal displacements and converting them into the element local coordinate system.

$\overrightarrow{u_l}=\overline{R} \overrightarrow{u_g}$

where:

$\overrightarrow{u_g}$ is the global displacement vector, in column form

$\overline{R}$ is the global-to-local rotation matrix.

Fenix assembles the full element nodal displacement vector, meaning $\overrightarrow{u_g}$ has either 18 or 24 components, depending on whether the element is triangular or quadrilateral (6 degrees-of-freedom per node).

Next, the local nodal forces are computed by multiplying the local displacement vector by the local stiffness matrix.

$\overrightarrow{f_l}=\overline{K_l} \overrightarrow{u_l}$

Only the membrane forces are used in the computation of P-Delta forces, as the out-of-plane plate-bending forces do not lead to P-Delta moments. Thus, the force vector described above contains a local X & Y force component along with a moment component about the local Z. The moment about the local Z is ignored, as it does not contribute to P-Delta forces. The local nodal forces used are shown below (for a triangular element).

P-Delta_6.png

Once the local nodal forces are determined, we create a 2-D force vector that contains the local X & Y components of the nodal forces:

$\overrightarrow{f_1}=[f_{1,x}, f_{1,y}]$

$\overrightarrow{f_2}=[f_{2,x}, f_{2,y}]$

$\overrightarrow{f_3}=[f_{3,x}, f_{3,y}]$

Then, we loop through each edge and compute the P-Delta force along that edge. For example, along edge $a$ the start is node 1 while the end is node 2. The force vector, $f_1$, at node 1, is projected onto the unit vector of edge $a$ using a dot product.

$f_{1,proj}=\overrightarrow{f_1} \cdot \overrightarrow{uv_a}$