With my student, Pablo Ibañez, we implemented a new catenary cable element in OpenSees. This element is based on the work by Salehi et al[1].

The stiffness of this element is obtained using a flexibility formulation. Basically the shape of the cable is determined by the integral:

$$
\newcommand{\pare}[1]{\left( #1 \right)}
\newcommand{\brak}[1]{\left[ #1 \right]}
\newcommand{\brac}[1]{\left\lbrace #1 \right\rbrace}
\newcommand{\vect}[1]{\boldsymbol{#1}}
\newcommand{\uv}[1]{\hat{\boldsymbol{#1}}}
\newcommand{\ud}{\,\mathrm{d}}
\begin{align*}
\vect{x}(s) = \vect{x}_1 - \int_0^s \dfrac{\vect{w}s + \vect{f}}{\Vert \vect{w}s + \vect{f} \Vert^2}\pare{\dfrac{\Vert \vect{w}s + \vect{f} \Vert}{EA} + \pare{1 + \alpha \Delta T}} \ud s \\
\vect{w} = \brak{w_1,\, w_2,\, w_3}^T \qquad
\vect{f} = \brak{f_1,\, f_2,\, f_3}^T
\end{align*}
$$

Where \(\vect{x_1}\) is the position of the first node of the cable, \(\vect{w}\) is the weight vector in each direction, \(EA\) is the stiffness, \(\alpha \Delta T\) is the change in strain due to temperature and \(\vect{f}\) is the force vector at the start node. This equation is iterated (with the forces as variable) upon until the the shape of the cable matches the nodal postiions imposed by the finite element program (trial displacements). Then it is used to derive a stiffness matrix.

The element, as is, passes all our static verification tests. With the additional assumption of a lumped-mass matrix, we're currently working on a dynamic verification suite as well as some validation experiments.

The animation above was created using OpenSees to simulate the cable and Blender to render it.

Reference

[1] Salehi Ahmad Abad, M., Shooshtari, A., Esmaeili, V., & Naghavi Riabi, A. (2013). *Nonlinear analysis of cable structures under general loadings.* Finite Elements in Analysis and Design, 73, 11–19. https://doi.org/10.1016/j.finel.2013.05.002