Frequently asked questions
Answers to recurring questions about CableDyn settings and results. For a rejected deck, a non-zero exit code, or a named error message, see Troubleshooting.
Modelling and inputs
Do I need a water depth?
No. WtrDpth is optional — omit it for a suspended or taut line with no bottom contact.
Supply it (or a bathymetryFile) only when the line touches the seabed. Deck waves do
require WtrDpth.
Do I have to rewrite a MoorDyn deck’s LINES into SECTIONS?
No. The stock 7-column MoorDyn row ID LineType AttachA AttachB UnstrLen NumSegs Outputs is
accepted as a one-section line, and anchor-first lines are turned fairlead-first
automatically. Use SECTIONS when one line object is built from several line types. See
Deck format reference (.dat).
Which solver path is my line on?
It is decided per line by its sections’ line-type EI: a line whose sections all have
EI = 0 uses the cable path; a line with any EI > 0 section uses the finite-EI
cubic-Hermite path. A mixed deck can carry both kinds of line. See Key concepts.
Can I set the solver tolerance?
The dynamic Newton controls, yes: dynamic_solver rel abs max_iter backtracks [rhoInf]
sets the relative and absolute tolerances, the iteration budget, and the line-search
backtracks (see OPTIONS reference and defaults for which controls each route uses). The static-solver
tolerances are built in, and keys like staticRelTol are rejected as unknown; this keeps
every static initial condition reproducible.
Results
Why are my velocities and accelerations zero?
L<L>N<J>v… / …a… channels are zero on a static-only run — there is no motion at the static
IC. Add dtM/TMax (and, for a driven end, a motionFile) to march dynamics.
Why is AnchAngle about 90 degrees?
FairAngle / AnchAngle are aliases of the declinations from +GZ (as OrcaFlex defines
them), so a horizontal anchor segment is 90 degrees and a downward fairlead tangent exceeds 90
degrees. Request FairIncl / AnchIncl for signed inclination below horizontal: zero is
horizontal and positive is downward. FairDecl / AnchDecl provide explicitly named
declinations.
Why does static tension differ slightly from MoorDyn?
CableDyn’s static IC is a Newton equilibrium; MoorDyn reaches its initial state by drag-scaled dynamic relaxation. The two agree within the validated band (0.13–1.59 % on the validated chain cases); a small offset between the two approaches is expected. See CableDyn verification and validation.
What should I do when the tensile monitor reports compression?
Treat the reported force, location, and time as an engineering validity check. warn allows a
long run to finish and counts every accepted integration step outside the declared strain
band; it does not make a compressive cable state physical. Small, localised excursions at a
grounded tail may justify a documented tolerance study. Large or fatigue-region excursions require
inspection of the motion convention, spatial and temporal convergence, contact state, and cable
configuration before the response is used. Select True when any out-of-band compression must
reject the step.
OpenFAST coupling
Why do CableDyn channels look stepped in an OpenFAST plot?
CableDyn solves on dtM (0.1 s by default) and holds its committed loads/channels between
solves on the faster glue clock of OpenFAST (maintained by NLR, the National Laboratory of the
Rockies, formerly NREL). A smaller DT_Out records more copies of the held
value; it does not add physical bandwidth. Plot <OpenFASTRoot>.CD.out for the solver-native
record containing one row per genuine CableDyn solve. Set deck dtM = DT only when glue-rate
solves are required, and demonstrate damage/range convergence by reducing dtM.
Why did dtM = 0.025 s make my coupled run much slower?
Equal dtM and OpenFAST DT intentionally request a nonlinear CableDyn solve on every glue
step, four times as many as the 0.1 s default. The release executables are serial; the
threading advice in this answer applies only to source builds configured with OpenMP. On such
builds an EI = 0 line evaluates its elements in parallel only from 8192 elements and a
finite-EI cable from 32 elements, while separate lines can still run concurrently; nested
OpenMP teams are suppressed automatically. Keep the linear-algebra library to one thread when
OpenMP parallelism is enabled (for example OPENBLAS_NUM_THREADS=1), then time the complete
OpenFAST model. A fast isolated mooring
benchmark does not imply a fast coupled run: OpenFAST may call CalcOutput several times
per physical step with different trial kinematics. Set the environment variable
CABLEDYN_PROFILE=1 before running openfast.exe to separate CableDyn solve, SeaState
sampling, output-probe, and native-I/O time. Keep ModCoupling fixed while
comparing configurations. Do not switch to loose coupling merely to meet a wall-clock target; on
the IEA-15MW reference model it materially changed platform and tension responses. Test
OMP_NUM_THREADS=1 as well as the intended threaded setting: three short lines can be too
little work to amortise OpenMP overhead.
Finally, require normal OpenFAST termination, and compare the Time Ratio that OpenFAST
reports with the default solver settings (see OpenFAST with CompMooring = 5).
A finite-bending interval that converges algebraically but exceeds the mesh-aware temporal
increment check is retried internally with generalised-alpha substeps. A stalled tension-only
standalone step uses the same bounded subdivision policy. Prescribed position, velocity, and
acceleration remain one kinematically consistent C2 trajectory. The default recovery ceiling is
1024 and recovery_max_substeps can adjust it without changing the committed host grid. A
final failure reports the simulated interval, ceiling, and maximum prescribed displacement
increment. The profiler reports the recovery count. Use a checkpoint (ChkptTime in the
.fst file) to replay any event without rerunning the full transient.