Skip to content

CableDyn 0.1.1

Latest

Choose a tag to compare

@SMI-Lab-Inha SMI-Lab-Inha released this 09 Oct 12:02

CableDyn 0.1.1 adds torsion to finite-EI (cubic-Hermite) cables in the standalone driver and makes the Windows builds more robust. Results of models without torsion are unchanged from 0.1.0: the clean-machine test kit reproduces every 0.1.0 reference value with the 0.1.1 executables.

Added

  • Torsion of finite-EI lines (standalone driver; condensed, quasi-static, uniform torque):

    • END CONNECTIONS columns TorsStiffness NxX NxY NxZ [Pretwist];
    • a roll column in motionFile;
    • the torque returned to Rigid6 bodies;
    • output channels Torq<L>N<J>, Twist<L>N<J> and Twist<L>, and range-graph columns;
    • DeckModel and channel support in the Python package;
    • the example torsion_lazy_wave_hangoff_twist.dat.

    The torsion results are checked against closed-form solutions, the Cosserat rod path and OrcaFlex 11.6d (VALIDATION.md, Torsion). Coupled OpenFAST runs with torsion, and other routes outside its scope, stop with a named error.

Changed

  • Python: NumPy arrays in the public functions have explicit element types. The package type-checks under mypy --strict on Python 3.10 and on current NumPy.

Fixed

  • The static solve of a taut, neutrally buoyant finite-EI line is now seeded as a straight, uniformly stretched line, so it no longer depends on the sign of the round-off weight.

  • Windows builds with gfortran:

    • large arrays are allocated on the heap;
    • executables reserve a 64 MiB stack;
    • new stack tests run the library on a 1 MiB thread stack.

    The static openfast.exe compiles the CableDyn adapter with heap arrays.

  • Python END CONNECTIONS messages name the line, the end and the offending value.

  • A static twist above 1000 turns (for example a Pretwist given in the wrong units) stops with a message naming the line and the value.

  • The standalone driver no longer ends without a word. An interrupt is reported as CableDyn_driver: stopped by <cause> and a fatal fault (for example a stack overflow) as CableDyn_driver: fatal error: <cause>, both with the simulated time of the last committed step. Every non-zero exit the driver makes itself ends stderr with CableDyn_driver: ended with exit code <n>, and the driver states this at start. CableDynDriver.run, cabledyn-run and cabledyn-study report a run ended from outside (taskkill /F, End task, kill -9) as ended early, with the time its output reached.

Known issues

  • An intermittent access violation in the modal analysis tests has been seen on some hosted CI runners with GNU builds that use OpenBLAS 0.3.34. The cause is under investigation. The released Windows driver uses reference LAPACK and is not affected.

The full list is in CHANGELOG.md. The build and test record is in validation/RELEASE_0_1_1.md.

Assets

Asset Contents SHA-256
CableDyn_driver.exe Standalone solver for Windows x64 (static, no runtime DLLs) f9102899dc2742ee699a4f30d9863ccd064437a1c22de994e3c3bc518131d0e4
openfast.exe OpenFAST v5.0.0 with CableDyn as CompMooring = 5 e969a70b50f90bd422d85b1ad37ebef7085eebde1cbb61255099fc9c43819e13
cabledyn-0.1.1-py3-none-any.whl Python package 05c0ad8c283af82ecf237493df4229fcd5db93cbdf75e67f9e2f7422b0455c4f
cabledyn-0.1.1.tar.gz Python source distribution 264c892d5b618588f1d81b712dbacc7f7401ed021c07a9a4a39a5aaf059e0f6b
SHA256SUMS.txt Checksums of the four files above

CableDyn builds on OpenFAST (NLR, formerly NREL) and reads MoorDyn-format decks thanks to the open format of MoorDyn (Hall et al.). We thank both communities.