Solver paths
CableDyn has two production finite-element paths, both formulated in positions (and, for
bending, material tangents) without rotation degrees of freedom. The governing equations are
in Theory; this page describes how each path is organised, how its static and dynamic
solutions proceed, and the secondary Cosserat path. A line section is routed by its line-type
bending stiffness: EI = 0 to the cable path, EI > 0 to the bending path. A deck may
mix both.
Avoiding rotation variables removes three limitations that some rotation-DOF finite-bending
formulations face: the rotation-vector chart \(|\boldsymbol\theta| < \pi\) that a large turn
through a buoyant arch approaches, the conditioning split between bending and axial blocks when
EI is tiny relative to EA, and the accuracy ceiling of linear interpolation for curvature.
The EI = 0 cable path
For chains, wire, and synthetic moorings, where bending stiffness is negligible.
Element — the two-node tension element (Theory), with consistent mass (
CableDyn_CableElem,CableDyn_Assemble).Loads — submerged weight, wetted-fraction Morison drag, added mass and fluid inertia, buoyancy recovery at the free surface, axial damping, seabed contact and friction (
CableDyn_Loads,CableDyn_Hydro,CableDyn_Damping).Constitutive models — linear, viscoelastic, and Syrope (
CableDyn_Viscoelastic,CableDyn_Syrope).Static solve — analytical catenary seed, then compression-capable and tension-only Newton with an Armijo line search, and load continuation as the fallback, on a banded system (
CableDyn_Catenary,CableDyn_Static).Dynamics — generalised-α with an Armijo line search and adaptive step subdivision (
CableDyn_Dynamic,CableDyn_Model).
The static seed is built from geometry, properties, and loads only; no other solver’s converged state enters the solve. Composite lines — several sections of different type, length, and mesh density between End A and End B — are one mesh with per-node seabed stiffness. The global tangent is banded; its bandwidth is computed from the element connectivity after removing prescribed DOFs (5 for a line numbered node by node).
The cubic-Hermite bending path
For dynamic power cables, where bending stiffness shapes the hang-off curvature, the sag and hog bends of a lazy-wave arch, and the touchdown region.
Each node carries a position and a material tangent, \([\mathbf{r},\ \mathbf{m}]\) with
\(\mathbf{m} = \partial\mathbf{r}/\partial s\), so each element has 12 DOFs and the global
tangent has half-bandwidth 11. The element energy, strain measures, quadrature, and curvature
recovery are in Theory. The internal force and tangent are formed in closed form
(CableDyn_HermiteCable); automatic differentiation of the same energy
(CableDyn_AD) is used only in the test suite as an independent check.
Formulation lineage
The cubic-Hermite Kirchhoff-rod element is established (Boyer et al., 2011; Meier, Popp & Wall, 2015). CableDyn applies it to offshore line systems with an automatic static solution, implicit dynamics, banded assembly, and the coupling interfaces.
Static solve
The static solve (CableDyn_HermiteCableStatic) works on a banded system with penalty
seabed contact. Its tolerance is \(\min(10^{-6},\ \text{tol}_\text{dyn})\) (Theory).
Default route (continuation cable_statics). The exact EI = 0 multi-segment catenary
through the endpoints is the seed. A continuation in EI then brings in the bending stiffness
at full load, each stage an energy-descent Newton iteration on a Cholesky-shifted tangent. The
state is polished on the deck mesh (refined if that mesh is too coarse for the bending length)
and audited for self-contact, folding, stability, and axial compression. A line too long for
its span to hang as a catenary is reached by walking the anchor into place. The details are in
Theory (Static equilibrium, Hermite path).
Mesh sequencing is the fallback of the default route, or runs first with sequenced
cable_statics. It uses EI and buoyancy continuation, the consistent Hermite self-weight, and a
dimensionless per-DOF convergence norm. The equilibrium of a buoyant arch is selected on a coarse
mesh, where the smooth branch is cheap to follow, then prolonged through the Hermite interpolant and
polished on each finer level and finally on the exact user mesh. The hierarchy accepts odd and prime
element counts, uses the true material coordinates of non-uniform rest lengths, and keeps every
EA/EI/weight/contact-diameter interface on its primary coarse meshes. Consecutive levels
grow by at most about 3:2; nested levels subdivide their parent elements; the first level apportions
elements across all homogeneous sections globally. For net-buoyant decks with at least 64 elements,
a suspended primary hierarchy keeps its longest actual coarse element within 3.2 local bending
lengths \(\lambda = (EI/|w|)^{1/3}\) and at least 24 elements. A flat-bed line whose anchor is
already supported continues its grounded tail by a scalar branch homotopy. If the primary path
fails, CableDyn tries one additional coarse level, then an independent binary hierarchy, then an
element-averaged coarse homotopy that conserves length, series compliance, and distributed load
before restoring all interfaces; a single direct cold solve on the exact mesh is the last attempt.
Every attempt uses the same physical inputs, tolerance, and acceptance checks. Nodes inserted on a
contact hierarchy are projected to the declared floor before polishing; this changes only the
prolonged seed, never the contact law or the final equations.
Acceptance checks. A residual-converged state is rejected when the sampled
\(\max(L_0\,\kappa)\) of any element exceeds 0.7 (an unresolved fold). With
adaptive_mesh = True, exhausting the refinement cap while curvature resolution or
mesh-scale contact chatter remains fragile is an error; several separate grounded runs are a
valid physical topology, and only an isolated interior contact or suspended node is treated as
chatter.
A constant structured bathymetry follows the same grounded seed and flat-plane initialisation
as the equivalent WtrDpth plane and keeps its grid for dynamic contact. Non-flat structured
bathymetry uses its contact-aware route, and its resolution diagnosis uses the same local floor
as the contact residual.
Dynamics
Generalised-α with the constant consistent Hermite mass, prescribed support motion, and a
backtracking Newton iteration from the constant-acceleration or Newmark predictor, reusing the
previous step’s factorised tangent on smooth standalone motion (CableDyn_HermiteCableDynamic).
The Morison set is integrated over the deformed element with the implicit drag velocity Jacobian,
consistent added mass held over each step, and regular (Airy or stream-function), spectral (single
or multi-train, optionally spread), component-table, or host-sampled wave fields driving both the
drag velocity and the Froude–Krylov plus fluid-inertia load. The step is protected by the
geometric increment check and adaptive subdivision described in Theory.
Performance
Both paths assemble directly into LAPACK band storage, apply Dirichlet conditions in-band, and
allocate their Newton workspace once, so a dynamic step performs no heap allocation. The
remaining cost is dominated by element and hydrodynamic evaluation rather than linear algebra.
OpenMP applies only to source builds configured with it (the release executables are serial).
On such builds, bending-path meshes of at least 32 elements evaluate element tangents in
parallel into per-element buffers and scatter them serially in element order, so results do
not depend on the thread count; the EI = 0 path parallelises its element loop only on
very long meshes (8192 elements or more).
Secondary path: Cosserat rod
A finite-bending Cosserat rod with rotation DOFs (CableDyn_Cosserat*) is retained as a
secondary, non-production path. It is not part of the validated product; its integration
regressions carry the cosserat CTest label (ctest -L cosserat). The standalone driver
uses it only for the uncommon
finite-EI topology in which both line ends move.
The element uses the geometrically exact rod strains of Simo (1985): the material strain \(\boldsymbol{\Gamma} = \Lambda^{\mathsf T}\mathbf{r}' - \Lambda_0^{\mathsf T}\mathbf{r}_0'\) and the material curvature vector \(\mathbf{K}\), with the orientation \(\Lambda \in SO(3)\) parametrised by the rotation vector on \(|\boldsymbol\theta| < \pi\). States at or beyond the chart boundary are rejected. Two-node linear interpolation is used, with reduced integration of the shear strains.
Energy-conserving integrator (opt-in, Cosserat path only)
An energy-conserving integrator of the discrete energy-momentum class
(Simo & Tarnow, 1992; CableDyn_CosseratEMC) is available through
the Fortran library configuration for Cosserat dynamics. It combines an implicit midpoint
rule for the nodal angular momentum with a discrete-gradient elastic force, and conserves the
scheme’s total mechanical energy to round-off at any step size, where generalised-α shows a
small, step-size-convergent drift. It is not selectable from a deck, does not apply to the
production paths, and generalised-α remains the integrator of every production route.