cabledyn 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. cabledyn-0.3.0/.gitattributes +45 -0
  2. cabledyn-0.3.0/.gitignore +105 -0
  3. cabledyn-0.3.0/.pre-commit-config.yaml +54 -0
  4. cabledyn-0.3.0/.readthedocs.yaml +25 -0
  5. cabledyn-0.3.0/ARCHITECTURE.md +546 -0
  6. cabledyn-0.3.0/CHANGELOG.md +592 -0
  7. cabledyn-0.3.0/CITATION.cff +73 -0
  8. cabledyn-0.3.0/CMakeLists.txt +2827 -0
  9. cabledyn-0.3.0/CODE_OF_CONDUCT.md +137 -0
  10. cabledyn-0.3.0/CONTRIBUTING.md +124 -0
  11. cabledyn-0.3.0/DEVELOPMENT.md +264 -0
  12. cabledyn-0.3.0/LICENSE +201 -0
  13. cabledyn-0.3.0/NOTICE +117 -0
  14. cabledyn-0.3.0/PKG-INFO +138 -0
  15. cabledyn-0.3.0/README.md +206 -0
  16. cabledyn-0.3.0/RELEASE.md +207 -0
  17. cabledyn-0.3.0/SECURITY.md +29 -0
  18. cabledyn-0.3.0/SUPPORT.md +32 -0
  19. cabledyn-0.3.0/VALIDATION.md +1085 -0
  20. cabledyn-0.3.0/VALIDATION_SPEC.md +45 -0
  21. cabledyn-0.3.0/app/cabledyn.f90 +986 -0
  22. cabledyn-0.3.0/app/utf8_code_page.manifest +18 -0
  23. cabledyn-0.3.0/environment.yml +70 -0
  24. cabledyn-0.3.0/examples/README.md +105 -0
  25. cabledyn-0.3.0/examples/SYNTHETIC_ROPES.md +71 -0
  26. cabledyn-0.3.0/examples/airy_wave_shallow_chain.dat +47 -0
  27. cabledyn-0.3.0/examples/als_volturnus_line_break_tension.dat +84 -0
  28. cabledyn-0.3.0/examples/als_volturnus_line_break_time.dat +84 -0
  29. cabledyn-0.3.0/examples/buoy_clamped_cable.dat +81 -0
  30. cabledyn-0.3.0/examples/cabledyn_options_reference.dat +123 -0
  31. cabledyn-0.3.0/examples/chain_catenary_r3_100m.dat +43 -0
  32. cabledyn-0.3.0/examples/chain_catenary_shallow_30m.dat +43 -0
  33. cabledyn-0.3.0/examples/chain_modes.dat +45 -0
  34. cabledyn-0.3.0/examples/chain_range_tdp.dat +54 -0
  35. cabledyn-0.3.0/examples/chain_torsethaugen_spread.dat +53 -0
  36. cabledyn-0.3.0/examples/chain_two_train_sea.dat +53 -0
  37. cabledyn-0.3.0/examples/clump_weight_free_point.dat +53 -0
  38. cabledyn-0.3.0/examples/composite_chain_poly_chain.dat +49 -0
  39. cabledyn-0.3.0/examples/composite_chain_wire.dat +47 -0
  40. cabledyn-0.3.0/examples/connect_weighted_point.dat +56 -0
  41. cabledyn-0.3.0/examples/data/lozon/generate_gomex80_heave.py +65 -0
  42. cabledyn-0.3.0/examples/data/lozon/gomex80_heave_3m_12s_dt005.txt +725 -0
  43. cabledyn-0.3.0/examples/data/range_tdp/chain_surge_5m_30s_dt005.txt +2405 -0
  44. cabledyn-0.3.0/examples/data/range_tdp/generate_chain_surge.py +67 -0
  45. cabledyn-0.3.0/examples/data/syrope/syrope_owc.dat +32 -0
  46. cabledyn-0.3.0/examples/data/syrope/syrope_settings.dat +4 -0
  47. cabledyn-0.3.0/examples/data/torsion/generate_hangoff_roll.py +47 -0
  48. cabledyn-0.3.0/examples/data/torsion/hangoff_roll_2turns_60s_dt01.txt +905 -0
  49. cabledyn-0.3.0/examples/data/vessel/generate_vessel_motion.py +79 -0
  50. cabledyn-0.3.0/examples/data/vessel/sample_rao.txt +72 -0
  51. cabledyn-0.3.0/examples/data/vessel/vessel_surge_heave_pitch_12s_dt005.txt +726 -0
  52. cabledyn-0.3.0/examples/dynamic_chain_current.dat +46 -0
  53. cabledyn-0.3.0/examples/dynamic_chain_held.dat +46 -0
  54. cabledyn-0.3.0/examples/dynamic_chain_waves.dat +46 -0
  55. cabledyn-0.3.0/examples/iea15mw_umaine_mixed_cabledyn.dat +82 -0
  56. cabledyn-0.3.0/examples/iea15mw_umaine_openfast_cabledyn.dat +65 -0
  57. cabledyn-0.3.0/examples/iea15mw_volturnus_mooring.dat +47 -0
  58. cabledyn-0.3.0/examples/laid_cable_cross_current.dat +56 -0
  59. cabledyn-0.3.0/examples/lazy_wave_buoyancy_modules.dat +56 -0
  60. cabledyn-0.3.0/examples/lazy_wave_buoyancy_smeared.dat +56 -0
  61. cabledyn-0.3.0/examples/lazy_wave_modes.dat +54 -0
  62. cabledyn-0.3.0/examples/lazy_wave_vessel_motion.dat +63 -0
  63. cabledyn-0.3.0/examples/lazy_wave_vessel_rao.dat +65 -0
  64. cabledyn-0.3.0/examples/lozon_gomaine200_mooring.dat +45 -0
  65. cabledyn-0.3.0/examples/lozon_gomaine200_power_cable.dat +51 -0
  66. cabledyn-0.3.0/examples/lozon_gomex80_mooring.dat +41 -0
  67. cabledyn-0.3.0/examples/lozon_gomex80_power_cable.dat +51 -0
  68. cabledyn-0.3.0/examples/lozon_gomex80_power_cable_motion.dat +57 -0
  69. cabledyn-0.3.0/examples/lozon_humboldt800_mooring.dat +46 -0
  70. cabledyn-0.3.0/examples/lozon_humboldt800_power_cable.dat +49 -0
  71. cabledyn-0.3.0/examples/mixed_body_rods_points.dat +91 -0
  72. cabledyn-0.3.0/examples/moordynC_wavekin/chain_wavekin7_currents1.dat +52 -0
  73. cabledyn-0.3.0/examples/moordynC_wavekin/current_profile.txt +9 -0
  74. cabledyn-0.3.0/examples/moordynC_wavekin/wave_frequencies.txt +10 -0
  75. cabledyn-0.3.0/examples/nylon_taut_mooring.dat +43 -0
  76. cabledyn-0.3.0/examples/openfast/CableDyn_UMaine.dat +66 -0
  77. cabledyn-0.3.0/examples/openfast/CableDyn_UMaine_line_failure.dat +68 -0
  78. cabledyn-0.3.0/examples/openfast/CableDyn_UMaine_rod.dat +71 -0
  79. cabledyn-0.3.0/examples/openfast/IEA-15-UMaine_CompMooring3_MoorDyn.fst +81 -0
  80. cabledyn-0.3.0/examples/openfast/IEA-15-UMaine_CompMooring5_CableDyn.fst +81 -0
  81. cabledyn-0.3.0/examples/openfast/IEA-15-UMaine_CompMooring5_CableDyn_LineFailure.fst +81 -0
  82. cabledyn-0.3.0/examples/openfast/MoorDyn_UMaine.dat +40 -0
  83. cabledyn-0.3.0/examples/openfast/MoorDyn_UMaine_rod.dat +52 -0
  84. cabledyn-0.3.0/examples/openfast/README.md +157 -0
  85. cabledyn-0.3.0/examples/plot_range_envelope.py +61 -0
  86. cabledyn-0.3.0/examples/polyester_catenary_mooring.dat +44 -0
  87. cabledyn-0.3.0/examples/rigid6_buoy.dat +68 -0
  88. cabledyn-0.3.0/examples/rod_moored_spar.dat +70 -0
  89. cabledyn-0.3.0/examples/semitaut_chain_polyester.dat +48 -0
  90. cabledyn-0.3.0/examples/spar_pinned_rods.dat +83 -0
  91. cabledyn-0.3.0/examples/spread_3line_chain.dat +59 -0
  92. cabledyn-0.3.0/examples/spread_4line_chain.dat +67 -0
  93. cabledyn-0.3.0/examples/stream_wave_shallow_chain.dat +49 -0
  94. cabledyn-0.3.0/examples/syrope_polyester_mooring.dat +58 -0
  95. cabledyn-0.3.0/examples/taut_chain_steep.dat +43 -0
  96. cabledyn-0.3.0/examples/torsion_lazy_wave_hangoff_twist.dat +66 -0
  97. cabledyn-0.3.0/examples/ve_nylon_loaddependent_mooring.dat +46 -0
  98. cabledyn-0.3.0/examples/ve_polyester_catenary_mooring.dat +49 -0
  99. cabledyn-0.3.0/examples/ve_polyester_dynamic_waves.dat +48 -0
  100. cabledyn-0.3.0/examples/wd0050_chain.dat +43 -0
  101. cabledyn-0.3.0/examples/wire_catenary_mooring.dat +43 -0
  102. cabledyn-0.3.0/pyproject.toml +101 -0
  103. cabledyn-0.3.0/python/LICENSE +201 -0
  104. cabledyn-0.3.0/python/README.md +87 -0
  105. cabledyn-0.3.0/python/cabledyn/__init__.py +298 -0
  106. cabledyn-0.3.0/python/cabledyn/_csv.py +44 -0
  107. cabledyn-0.3.0/python/cabledyn/_discovery.py +163 -0
  108. cabledyn-0.3.0/python/cabledyn/_lib.py +250 -0
  109. cabledyn-0.3.0/python/cabledyn/_optional.py +15 -0
  110. cabledyn-0.3.0/python/cabledyn/_paths.py +57 -0
  111. cabledyn-0.3.0/python/cabledyn/animation.py +750 -0
  112. cabledyn-0.3.0/python/cabledyn/builder.py +3122 -0
  113. cabledyn-0.3.0/python/cabledyn/checks.py +602 -0
  114. cabledyn-0.3.0/python/cabledyn/clearance.py +1138 -0
  115. cabledyn-0.3.0/python/cabledyn/cli.py +37 -0
  116. cabledyn-0.3.0/python/cabledyn/compare.py +450 -0
  117. cabledyn-0.3.0/python/cabledyn/curves.py +566 -0
  118. cabledyn-0.3.0/python/cabledyn/damage.py +772 -0
  119. cabledyn-0.3.0/python/cabledyn/deck.py +518 -0
  120. cabledyn-0.3.0/python/cabledyn/deck_cli.py +146 -0
  121. cabledyn-0.3.0/python/cabledyn/deck_file.py +4804 -0
  122. cabledyn-0.3.0/python/cabledyn/driver.py +652 -0
  123. cabledyn-0.3.0/python/cabledyn/errors.py +157 -0
  124. cabledyn-0.3.0/python/cabledyn/extremes.py +484 -0
  125. cabledyn-0.3.0/python/cabledyn/fatigue.py +670 -0
  126. cabledyn-0.3.0/python/cabledyn/formats.py +698 -0
  127. cabledyn-0.3.0/python/cabledyn/geometry.py +358 -0
  128. cabledyn-0.3.0/python/cabledyn/model.py +614 -0
  129. cabledyn-0.3.0/python/cabledyn/objects.py +496 -0
  130. cabledyn-0.3.0/python/cabledyn/post_cli.py +509 -0
  131. cabledyn-0.3.0/python/cabledyn/processing.py +309 -0
  132. cabledyn-0.3.0/python/cabledyn/profiles.py +1350 -0
  133. cabledyn-0.3.0/python/cabledyn/py.typed +0 -0
  134. cabledyn-0.3.0/python/cabledyn/ranges.py +621 -0
  135. cabledyn-0.3.0/python/cabledyn/results.py +1732 -0
  136. cabledyn-0.3.0/python/cabledyn/spectra.py +1039 -0
  137. cabledyn-0.3.0/python/cabledyn/study.py +615 -0
  138. cabledyn-0.3.0/python/cabledyn/study_cli.py +59 -0
  139. cabledyn-0.3.0/python/cabledyn/summary.py +466 -0
  140. cabledyn-0.3.0/python/cabledyn/sweep.py +86 -0
  141. cabledyn-0.3.0/python/cabledyn/touchdown.py +443 -0
  142. cabledyn-0.3.0/python/pyproject.toml +114 -0
  143. cabledyn-0.3.0/python/tests/_design_data.py +82 -0
  144. cabledyn-0.3.0/python/tests/conftest.py +112 -0
  145. cabledyn-0.3.0/python/tests/test_animation.py +355 -0
  146. cabledyn-0.3.0/python/tests/test_builder.py +901 -0
  147. cabledyn-0.3.0/python/tests/test_cabledyn.py +222 -0
  148. cabledyn-0.3.0/python/tests/test_checks_ranges.py +382 -0
  149. cabledyn-0.3.0/python/tests/test_clearance.py +478 -0
  150. cabledyn-0.3.0/python/tests/test_cli.py +598 -0
  151. cabledyn-0.3.0/python/tests/test_curves.py +212 -0
  152. cabledyn-0.3.0/python/tests/test_damage.py +325 -0
  153. cabledyn-0.3.0/python/tests/test_deck_file.py +4545 -0
  154. cabledyn-0.3.0/python/tests/test_deck_native_parity.py +1308 -0
  155. cabledyn-0.3.0/python/tests/test_deck_writer.py +314 -0
  156. cabledyn-0.3.0/python/tests/test_discovery.py +155 -0
  157. cabledyn-0.3.0/python/tests/test_driver.py +484 -0
  158. cabledyn-0.3.0/python/tests/test_end_to_end.py +281 -0
  159. cabledyn-0.3.0/python/tests/test_fatigue.py +718 -0
  160. cabledyn-0.3.0/python/tests/test_formats.py +634 -0
  161. cabledyn-0.3.0/python/tests/test_host_coupling.py +210 -0
  162. cabledyn-0.3.0/python/tests/test_native_model.py +387 -0
  163. cabledyn-0.3.0/python/tests/test_objects.py +478 -0
  164. cabledyn-0.3.0/python/tests/test_paths.py +60 -0
  165. cabledyn-0.3.0/python/tests/test_post_cli.py +655 -0
  166. cabledyn-0.3.0/python/tests/test_postprocessing.py +591 -0
  167. cabledyn-0.3.0/python/tests/test_profiles.py +555 -0
  168. cabledyn-0.3.0/python/tests/test_results.py +884 -0
  169. cabledyn-0.3.0/python/tests/test_spectra.py +839 -0
  170. cabledyn-0.3.0/python/tests/test_study.py +306 -0
  171. cabledyn-0.3.0/python/tests/test_study_validation.py +202 -0
  172. cabledyn-0.3.0/python/tests/test_summary.py +190 -0
  173. cabledyn-0.3.0/python/tests/test_touchdown.py +314 -0
  174. cabledyn-0.3.0/src/CableDyn_AD.f90 +450 -0
  175. cabledyn-0.3.0/src/CableDyn_Assemble.f90 +634 -0
  176. cabledyn-0.3.0/src/CableDyn_Banner.f90 +61 -0
  177. cabledyn-0.3.0/src/CableDyn_Bathymetry.f90 +603 -0
  178. cabledyn-0.3.0/src/CableDyn_CAPI.f90 +2692 -0
  179. cabledyn-0.3.0/src/CableDyn_CAPI.h +225 -0
  180. cabledyn-0.3.0/src/CableDyn_CableElem.f90 +125 -0
  181. cabledyn-0.3.0/src/CableDyn_Catenary.f90 +791 -0
  182. cabledyn-0.3.0/src/CableDyn_Conventions.f90 +109 -0
  183. cabledyn-0.3.0/src/CableDyn_Cosserat.f90 +1157 -0
  184. cabledyn-0.3.0/src/CableDyn_CosseratAssemble.f90 +613 -0
  185. cabledyn-0.3.0/src/CableDyn_CosseratDynamic.f90 +1770 -0
  186. cabledyn-0.3.0/src/CableDyn_CosseratEMC.f90 +863 -0
  187. cabledyn-0.3.0/src/CableDyn_CosseratStatic.f90 +258 -0
  188. cabledyn-0.3.0/src/CableDyn_CoupledPlatform.f90 +449 -0
  189. cabledyn-0.3.0/src/CableDyn_Damping.f90 +465 -0
  190. cabledyn-0.3.0/src/CableDyn_DeckDriver.f90 +36614 -0
  191. cabledyn-0.3.0/src/CableDyn_Driver.f90 +859 -0
  192. cabledyn-0.3.0/src/CableDyn_Dynamic.f90 +3203 -0
  193. cabledyn-0.3.0/src/CableDyn_EndConnection.f90 +292 -0
  194. cabledyn-0.3.0/src/CableDyn_FatalReport.f90 +50 -0
  195. cabledyn-0.3.0/src/CableDyn_FiniteEIModel.f90 +615 -0
  196. cabledyn-0.3.0/src/CableDyn_FiniteEIStatic.f90 +633 -0
  197. cabledyn-0.3.0/src/CableDyn_HermiteArch.f90 +428 -0
  198. cabledyn-0.3.0/src/CableDyn_HermiteCable.f90 +1050 -0
  199. cabledyn-0.3.0/src/CableDyn_HermiteCableDynamic.f90 +8836 -0
  200. cabledyn-0.3.0/src/CableDyn_HermiteCableStatic.f90 +7923 -0
  201. cabledyn-0.3.0/src/CableDyn_HermiteTorsion.f90 +1524 -0
  202. cabledyn-0.3.0/src/CableDyn_Hydro.f90 +2924 -0
  203. cabledyn-0.3.0/src/CableDyn_Linalg.f90 +501 -0
  204. cabledyn-0.3.0/src/CableDyn_Line.f90 +226 -0
  205. cabledyn-0.3.0/src/CableDyn_LoadPredictor.f90 +45 -0
  206. cabledyn-0.3.0/src/CableDyn_Loads.f90 +318 -0
  207. cabledyn-0.3.0/src/CableDyn_Mesh.f90 +222 -0
  208. cabledyn-0.3.0/src/CableDyn_Modal.f90 +780 -0
  209. cabledyn-0.3.0/src/CableDyn_Model.f90 +8621 -0
  210. cabledyn-0.3.0/src/CableDyn_OpenFAST.f90 +541 -0
  211. cabledyn-0.3.0/src/CableDyn_OpenFAST_Aggregate.f90 +2689 -0
  212. cabledyn-0.3.0/src/CableDyn_OpenFAST_FMF.f90 +1033 -0
  213. cabledyn-0.3.0/src/CableDyn_OpenFAST_HermiteFMF.f90 +1768 -0
  214. cabledyn-0.3.0/src/CableDyn_OpenFAST_Mesh.f90 +407 -0
  215. cabledyn-0.3.0/src/CableDyn_OpenFAST_Types.f90 +458 -0
  216. cabledyn-0.3.0/src/CableDyn_PathIO.f90 +196 -0
  217. cabledyn-0.3.0/src/CableDyn_Precision.f90 +82 -0
  218. cabledyn-0.3.0/src/CableDyn_Profile.f90 +183 -0
  219. cabledyn-0.3.0/src/CableDyn_RangeOutput.f90 +619 -0
  220. cabledyn-0.3.0/src/CableDyn_Registry.txt +59 -0
  221. cabledyn-0.3.0/src/CableDyn_RigidKinematics.f90 +228 -0
  222. cabledyn-0.3.0/src/CableDyn_SO3.f90 +281 -0
  223. cabledyn-0.3.0/src/CableDyn_SeabedContact.f90 +320 -0
  224. cabledyn-0.3.0/src/CableDyn_Static.f90 +2639 -0
  225. cabledyn-0.3.0/src/CableDyn_StreamWave.f90 +340 -0
  226. cabledyn-0.3.0/src/CableDyn_Syrope.f90 +946 -0
  227. cabledyn-0.3.0/src/CableDyn_System.f90 +3451 -0
  228. cabledyn-0.3.0/src/CableDyn_Vessel.f90 +288 -0
  229. cabledyn-0.3.0/src/CableDyn_Viscoelastic.f90 +370 -0
  230. cabledyn-0.3.0/src/CableDyn_WaveSpectra.f90 +770 -0
  231. cabledyn-0.3.0/src/cabledyn.def +33 -0
  232. cabledyn-0.3.0/src/cabledyn.exp +32 -0
  233. cabledyn-0.3.0/src/cabledyn.map +38 -0
  234. cabledyn-0.3.0/src/cabledyn_blas.c +549 -0
  235. cabledyn-0.3.0/src/cabledyn_cpu_guard.c +165 -0
  236. cabledyn-0.3.0/src/cabledyn_crt_locale.c +177 -0
  237. cabledyn-0.3.0/src/cabledyn_fatal.c +641 -0
  238. cabledyn-0.3.0/src/cabledyn_mutex.c +79 -0
  239. cabledyn-0.3.0/src/cabledyn_path.c +477 -0
  240. cabledyn-0.3.0/src/openfast/CableDyn_OF.f90 +4541 -0
  241. cabledyn-0.3.0/src/openfast/CableDyn_OF_Driver.f90 +362 -0
  242. cabledyn-0.3.0/src/openfast/CableDyn_Registry.txt +515 -0
  243. cabledyn-0.3.0/src/openfast/CableDyn_Types.f90 +5638 -0
  244. cabledyn-0.3.0/tests/allocation_counter.c +38 -0
  245. cabledyn-0.3.0/tests/blas_config_probe.c +59 -0
  246. cabledyn-0.3.0/tests/check_blas_missing_runtime.cmake +133 -0
  247. cabledyn-0.3.0/tests/check_blas_runtime_imports.cmake +49 -0
  248. cabledyn-0.3.0/tests/check_driver_advisories.cmake +169 -0
  249. cabledyn-0.3.0/tests/check_driver_nonconvergence.cmake +55 -0
  250. cabledyn-0.3.0/tests/check_driver_output.cmake +54 -0
  251. cabledyn-0.3.0/tests/check_driver_paths.cmake +180 -0
  252. cabledyn-0.3.0/tests/check_driver_profile.cmake +89 -0
  253. cabledyn-0.3.0/tests/check_driver_profile_failure.cmake +31 -0
  254. cabledyn-0.3.0/tests/check_driver_repeat_exit.cmake +22 -0
  255. cabledyn-0.3.0/tests/check_fatal_report.cmake +46 -0
  256. cabledyn-0.3.0/tests/check_fold_layout.py +92 -0
  257. cabledyn-0.3.0/tests/check_stack_reserve.cmake +84 -0
  258. cabledyn-0.3.0/tests/check_touchdown_recovery.py +121 -0
  259. cabledyn-0.3.0/tests/check_windows_install_runtime.cmake +76 -0
  260. cabledyn-0.3.0/tests/crt_locale_guard_heap.c +24 -0
  261. cabledyn-0.3.0/tests/data/activetension_ab_reference.csv +22 -0
  262. cabledyn-0.3.0/tests/data/anchor_crease_between.dat +31 -0
  263. cabledyn-0.3.0/tests/data/anchor_crease_tabulated.dat +31 -0
  264. cabledyn-0.3.0/tests/data/bathy_v_valley.txt +103 -0
  265. cabledyn-0.3.0/tests/data/buoy_clamped_cable_pinned_rod.dat +83 -0
  266. cabledyn-0.3.0/tests/data/cable_statics_matrix.json +1616 -0
  267. cabledyn-0.3.0/tests/data/clamped_buoyant_cable_held.dat +58 -0
  268. cabledyn-0.3.0/tests/data/ei0_aslaid_behind_anchor.dat +34 -0
  269. cabledyn-0.3.0/tests/data/ei0_clump_no_fold.dat +35 -0
  270. cabledyn-0.3.0/tests/data/ei0_fold_slope.dat +29 -0
  271. cabledyn-0.3.0/tests/data/ei0_fold_slope_aslaid.dat +33 -0
  272. cabledyn-0.3.0/tests/data/ei0_fold_slope_bathy.txt +27 -0
  273. cabledyn-0.3.0/tests/data/ei0_fold_turn_current.dat +32 -0
  274. cabledyn-0.3.0/tests/data/ei0_hairpin_current.dat +32 -0
  275. cabledyn-0.3.0/tests/data/ei0_hairpin_current_friction.dat +33 -0
  276. cabledyn-0.3.0/tests/data/fei_hairpin_current.dat +37 -0
  277. cabledyn-0.3.0/tests/data/foam_esflowc_box_points.dat +41 -0
  278. cabledyn-0.3.0/tests/data/gomaine200_lazywave_seed.xyz +243 -0
  279. cabledyn-0.3.0/tests/data/gomex80_lazywave_seed.xyz +243 -0
  280. cabledyn-0.3.0/tests/data/held_start_gomex80_power_cable.dat +50 -0
  281. cabledyn-0.3.0/tests/data/held_start_humboldt800_power_cable.dat +50 -0
  282. cabledyn-0.3.0/tests/data/host_coupling_chain_cable.dat +35 -0
  283. cabledyn-0.3.0/tests/data/humboldt_lazywave_seed.xyz +243 -0
  284. cabledyn-0.3.0/tests/data/l2_2_dynamic_refs/orcaflex_summary.txt +16 -0
  285. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0050_A1.txt +209 -0
  286. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0050_A2.txt +209 -0
  287. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0200_A1.txt +209 -0
  288. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0200_A2.txt +209 -0
  289. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0600_A1.txt +209 -0
  290. cabledyn-0.3.0/tests/data/l2_2_external_refs/EXT_WD0600_A2.txt +209 -0
  291. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_planar_coarse.dat +44 -0
  292. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_planar_coarse_att.dat +48 -0
  293. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_planar_refined.dat +41 -0
  294. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_planar_refined_att.dat +45 -0
  295. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_torsion_coarse.dat +47 -0
  296. cabledyn-0.3.0/tests/data/lazy_wave_touchdown_torsion_coarse_sequenced.dat +44 -0
  297. cabledyn-0.3.0/tests/data/lfig_800m_curvature_summary.csv +16 -0
  298. cabledyn-0.3.0/tests/data/lozon_coupled_harmonics.dat +21 -0
  299. cabledyn-0.3.0/tests/data/mixed_nmodes.dat +78 -0
  300. cabledyn-0.3.0/tests/data/msg_anchor_below_seabed.dat +35 -0
  301. cabledyn-0.3.0/tests/data/msg_coarse_section.dat +37 -0
  302. cabledyn-0.3.0/tests/data/msg_mixed_coarse_strain.dat +59 -0
  303. cabledyn-0.3.0/tests/data/msg_mixed_connect_coupled_cable.dat +64 -0
  304. cabledyn-0.3.0/tests/data/msg_mixed_current.dat +58 -0
  305. cabledyn-0.3.0/tests/data/msg_net_buoyant_ei0.dat +35 -0
  306. cabledyn-0.3.0/tests/data/msg_pliant_connect_end_b.dat +56 -0
  307. cabledyn-0.3.0/tests/data/msg_shared_line.dat +35 -0
  308. cabledyn-0.3.0/tests/data/msg_shared_line_finite_ei.dat +35 -0
  309. cabledyn-0.3.0/tests/data/msg_static_strain.dat +35 -0
  310. cabledyn-0.3.0/tests/data/msg_tensile_safety_motion.txt +346 -0
  311. cabledyn-0.3.0/tests/data/msg_tensile_safety_truncated.dat +35 -0
  312. cabledyn-0.3.0/tests/data/msg_weightless_ei0.dat +35 -0
  313. cabledyn-0.3.0/tests/data/msg_weightless_finite_ei.dat +37 -0
  314. cabledyn-0.3.0/tests/data/nonconvergent_motion.dat +31 -0
  315. cabledyn-0.3.0/tests/data/nonconvergent_motion.txt +4 -0
  316. cabledyn-0.3.0/tests/data/range_mixed_alloc.dat +81 -0
  317. cabledyn-0.3.0/tests/data/stack_humboldt800_2048_elements.dat +50 -0
  318. cabledyn-0.3.0/tests/data/three_line_composite_tmax0.dat +47 -0
  319. cabledyn-0.3.0/tests/data/torsion_analytic_refs.txt +25 -0
  320. cabledyn-0.3.0/tests/data/torsion_oracle_reference.txt +1455 -0
  321. cabledyn-0.3.0/tests/data/torsion_orcaflex_refs.txt +41 -0
  322. cabledyn-0.3.0/tests/data/umaine_power_cable_alone_dynamic.dat +50 -0
  323. cabledyn-0.3.0/tests/data/umaine_power_cable_alone_static.dat +50 -0
  324. cabledyn-0.3.0/tests/data/ve_polyester_waves_fine_mesh.dat +44 -0
  325. cabledyn-0.3.0/tests/data/wavekin_mdc/current_profile.txt +14 -0
  326. cabledyn-0.3.0/tests/data/wavekin_mdc/currents1.dat +27 -0
  327. cabledyn-0.3.0/tests/data/wavekin_mdc/mdc_currents1.csv +5 -0
  328. cabledyn-0.3.0/tests/data/wavekin_mdc/mdc_wavekin3.csv +13 -0
  329. cabledyn-0.3.0/tests/data/wavekin_mdc/mdc_wavekin7.csv +13 -0
  330. cabledyn-0.3.0/tests/data/wavekin_mdc/points3.txt +12 -0
  331. cabledyn-0.3.0/tests/data/wavekin_mdc/points7.txt +12 -0
  332. cabledyn-0.3.0/tests/data/wavekin_mdc/pointsc.txt +4 -0
  333. cabledyn-0.3.0/tests/data/wavekin_mdc/water_grid.txt +9 -0
  334. cabledyn-0.3.0/tests/data/wavekin_mdc/wave_elevation.txt +401 -0
  335. cabledyn-0.3.0/tests/data/wavekin_mdc/wave_frequencies.txt +4 -0
  336. cabledyn-0.3.0/tests/data/wavekin_mdc/wavekin3.dat +27 -0
  337. cabledyn-0.3.0/tests/data/wavekin_mdc/wavekin7.dat +27 -0
  338. cabledyn-0.3.0/tests/fatal_report_faults.c +507 -0
  339. cabledyn-0.3.0/tests/nan_max_abs.inc +37 -0
  340. cabledyn-0.3.0/tests/process_memory.c +40 -0
  341. cabledyn-0.3.0/tests/test_ad.f90 +156 -0
  342. cabledyn-0.3.0/tests/test_aggregate_step_atomicity.f90 +202 -0
  343. cabledyn-0.3.0/tests/test_all_finite_traps.f90 +68 -0
  344. cabledyn-0.3.0/tests/test_anchor_uplift.py +531 -0
  345. cabledyn-0.3.0/tests/test_attachment_cross_current.py +119 -0
  346. cabledyn-0.3.0/tests/test_bathymetry.f90 +659 -0
  347. cabledyn-0.3.0/tests/test_blas_missing_solve.f90 +28 -0
  348. cabledyn-0.3.0/tests/test_bodies_rods.f90 +866 -0
  349. cabledyn-0.3.0/tests/test_body_hydro.f90 +158 -0
  350. cabledyn-0.3.0/tests/test_body_rod_physics.f90 +1669 -0
  351. cabledyn-0.3.0/tests/test_c_api.f90 +869 -0
  352. cabledyn-0.3.0/tests/test_c_api_blas_missing.c +35 -0
  353. cabledyn-0.3.0/tests/test_c_api_concurrency.c +88 -0
  354. cabledyn-0.3.0/tests/test_c_api_host_coupling.c +862 -0
  355. cabledyn-0.3.0/tests/test_c_api_raw_small_dt.c +90 -0
  356. cabledyn-0.3.0/tests/test_c_api_shared.c +239 -0
  357. cabledyn-0.3.0/tests/test_c_api_stack.c +274 -0
  358. cabledyn-0.3.0/tests/test_c_api_threads.c +708 -0
  359. cabledyn-0.3.0/tests/test_cable_assemble.f90 +438 -0
  360. cabledyn-0.3.0/tests/test_cable_driver.f90 +197 -0
  361. cabledyn-0.3.0/tests/test_cable_dynamic.f90 +1137 -0
  362. cabledyn-0.3.0/tests/test_cable_elem.f90 +149 -0
  363. cabledyn-0.3.0/tests/test_cable_loads.f90 +246 -0
  364. cabledyn-0.3.0/tests/test_cable_mesh.f90 +157 -0
  365. cabledyn-0.3.0/tests/test_cable_static.f90 +473 -0
  366. cabledyn-0.3.0/tests/test_cable_statics_matrix.py +392 -0
  367. cabledyn-0.3.0/tests/test_cable_statics_modes.f90 +138 -0
  368. cabledyn-0.3.0/tests/test_catenary.f90 +636 -0
  369. cabledyn-0.3.0/tests/test_clamped_cable_ends.f90 +574 -0
  370. cabledyn-0.3.0/tests/test_conventions.f90 +104 -0
  371. cabledyn-0.3.0/tests/test_core_input_guards.f90 +155 -0
  372. cabledyn-0.3.0/tests/test_core_release_regressions.f90 +588 -0
  373. cabledyn-0.3.0/tests/test_core_solver_regressions.f90 +509 -0
  374. cabledyn-0.3.0/tests/test_cosserat_assemble.f90 +194 -0
  375. cabledyn-0.3.0/tests/test_cosserat_dynamic.f90 +505 -0
  376. cabledyn-0.3.0/tests/test_cosserat_force.f90 +372 -0
  377. cabledyn-0.3.0/tests/test_cosserat_mass.f90 +102 -0
  378. cabledyn-0.3.0/tests/test_cosserat_strains.f90 +106 -0
  379. cabledyn-0.3.0/tests/test_coupled_torsion.f90 +512 -0
  380. cabledyn-0.3.0/tests/test_cpu_guard.f90 +65 -0
  381. cabledyn-0.3.0/tests/test_crt_locale_guard.f90 +98 -0
  382. cabledyn-0.3.0/tests/test_damping.f90 +381 -0
  383. cabledyn-0.3.0/tests/test_deck_driver.f90 +7185 -0
  384. cabledyn-0.3.0/tests/test_deck_hermite_cable.f90 +789 -0
  385. cabledyn-0.3.0/tests/test_deck_massless_connect.f90 +130 -0
  386. cabledyn-0.3.0/tests/test_deck_reader_io.f90 +422 -0
  387. cabledyn-0.3.0/tests/test_documentation.py +301 -0
  388. cabledyn-0.3.0/tests/test_driver_channels.f90 +712 -0
  389. cabledyn-0.3.0/tests/test_dtm_advisor.f90 +75 -0
  390. cabledyn-0.3.0/tests/test_dynamics_regressions.f90 +504 -0
  391. cabledyn-0.3.0/tests/test_ei0_mesh_scaling_counters.f90 +153 -0
  392. cabledyn-0.3.0/tests/test_ei0_slack_dynamics.f90 +2053 -0
  393. cabledyn-0.3.0/tests/test_emc.f90 +593 -0
  394. cabledyn-0.3.0/tests/test_endconn_dynamic.f90 +297 -0
  395. cabledyn-0.3.0/tests/test_endconn_spring.f90 +325 -0
  396. cabledyn-0.3.0/tests/test_endconn_static.f90 +262 -0
  397. cabledyn-0.3.0/tests/test_example_deck_style.py +170 -0
  398. cabledyn-0.3.0/tests/test_fast_point_store.f90 +179 -0
  399. cabledyn-0.3.0/tests/test_fatal_report.f90 +203 -0
  400. cabledyn-0.3.0/tests/test_fem_observable_compare.py +277 -0
  401. cabledyn-0.3.0/tests/test_finite_ei_gyro_dynamics.f90 +319 -0
  402. cabledyn-0.3.0/tests/test_finite_ei_gyro_primitives.f90 +85 -0
  403. cabledyn-0.3.0/tests/test_finite_ei_gyro_tangent.f90 +124 -0
  404. cabledyn-0.3.0/tests/test_finite_ei_gyroscopic.f90 +220 -0
  405. cabledyn-0.3.0/tests/test_finite_ei_large_rotation.f90 +186 -0
  406. cabledyn-0.3.0/tests/test_finite_ei_model.f90 +293 -0
  407. cabledyn-0.3.0/tests/test_finite_ei_mult_step.f90 +140 -0
  408. cabledyn-0.3.0/tests/test_finite_ei_mult_tangent.f90 +165 -0
  409. cabledyn-0.3.0/tests/test_finite_ei_precession.f90 +251 -0
  410. cabledyn-0.3.0/tests/test_flagship_compression_note.f90 +199 -0
  411. cabledyn-0.3.0/tests/test_hermite_added_mass.f90 +295 -0
  412. cabledyn-0.3.0/tests/test_hermite_arch.f90 +188 -0
  413. cabledyn-0.3.0/tests/test_hermite_automesh.f90 +597 -0
  414. cabledyn-0.3.0/tests/test_hermite_axial_damping.f90 +290 -0
  415. cabledyn-0.3.0/tests/test_hermite_axial_drag_arbiter.f90 +156 -0
  416. cabledyn-0.3.0/tests/test_hermite_branch_audit.f90 +407 -0
  417. cabledyn-0.3.0/tests/test_hermite_cable.f90 +517 -0
  418. cabledyn-0.3.0/tests/test_hermite_cable_control.f90 +708 -0
  419. cabledyn-0.3.0/tests/test_hermite_cable_dynamic.f90 +1038 -0
  420. cabledyn-0.3.0/tests/test_hermite_cable_static.f90 +965 -0
  421. cabledyn-0.3.0/tests/test_hermite_drag_dynamics.f90 +492 -0
  422. cabledyn-0.3.0/tests/test_hermite_fmf.f90 +389 -0
  423. cabledyn-0.3.0/tests/test_hermite_force_blend_dt.py +116 -0
  424. cabledyn-0.3.0/tests/test_hermite_irregular_waves.f90 +381 -0
  425. cabledyn-0.3.0/tests/test_hermite_node_reaction.f90 +264 -0
  426. cabledyn-0.3.0/tests/test_hermite_resolution.f90 +373 -0
  427. cabledyn-0.3.0/tests/test_hermite_sequenced.f90 +589 -0
  428. cabledyn-0.3.0/tests/test_hermite_strain_bound.f90 +88 -0
  429. cabledyn-0.3.0/tests/test_hermite_tensile_monitor.py +136 -0
  430. cabledyn-0.3.0/tests/test_hermite_torsion_dynamic.f90 +588 -0
  431. cabledyn-0.3.0/tests/test_hermite_torsion_kernel.f90 +904 -0
  432. cabledyn-0.3.0/tests/test_hermite_torsion_static.f90 +574 -0
  433. cabledyn-0.3.0/tests/test_hermite_wave_forcing.f90 +305 -0
  434. cabledyn-0.3.0/tests/test_hfmf_mirror.f90 +157 -0
  435. cabledyn-0.3.0/tests/test_hydro.f90 +953 -0
  436. cabledyn-0.3.0/tests/test_l1_axial_patch.f90 +56 -0
  437. cabledyn-0.3.0/tests/test_l1_bending_patch.f90 +126 -0
  438. cabledyn-0.3.0/tests/test_l1_cantilever.f90 +89 -0
  439. cabledyn-0.3.0/tests/test_l1_catenary.f90 +157 -0
  440. cabledyn-0.3.0/tests/test_l1_convergence_order.f90 +92 -0
  441. cabledyn-0.3.0/tests/test_l1_energy_stability.f90 +164 -0
  442. cabledyn-0.3.0/tests/test_l1_euler_beam.f90 +140 -0
  443. cabledyn-0.3.0/tests/test_l1_hermite_beam_vibration.f90 +119 -0
  444. cabledyn-0.3.0/tests/test_l1_hermite_bending_patch.f90 +108 -0
  445. cabledyn-0.3.0/tests/test_l1_hermite_cantilever.f90 +139 -0
  446. cabledyn-0.3.0/tests/test_l1_hermite_convergence.f90 +113 -0
  447. cabledyn-0.3.0/tests/test_l1_hermite_elastica.f90 +95 -0
  448. cabledyn-0.3.0/tests/test_l1_hermite_energy_stability.f90 +154 -0
  449. cabledyn-0.3.0/tests/test_l1_large_deflection.f90 +147 -0
  450. cabledyn-0.3.0/tests/test_l1_seabed.f90 +96 -0
  451. cabledyn-0.3.0/tests/test_l1_string.f90 +120 -0
  452. cabledyn-0.3.0/tests/test_l2_2_dynamic_parity.f90 +531 -0
  453. cabledyn-0.3.0/tests/test_l2_chain_parity.f90 +139 -0
  454. cabledyn-0.3.0/tests/test_l2_lozon200_semitaut.f90 +102 -0
  455. cabledyn-0.3.0/tests/test_l2_lozon200_semitaut_deck.f90 +103 -0
  456. cabledyn-0.3.0/tests/test_l2_lozon80_mooring.f90 +107 -0
  457. cabledyn-0.3.0/tests/test_l2_volturnus_mooring.f90 +104 -0
  458. cabledyn-0.3.0/tests/test_l3_hermite_touchdown.f90 +172 -0
  459. cabledyn-0.3.0/tests/test_l3_lazywave_3d_dynamic.f90 +294 -0
  460. cabledyn-0.3.0/tests/test_l3_lazywave_curvature.f90 +154 -0
  461. cabledyn-0.3.0/tests/test_l3_lazywave_dynamic.f90 +950 -0
  462. cabledyn-0.3.0/tests/test_l3_lazywave_fullcable.f90 +289 -0
  463. cabledyn-0.3.0/tests/test_l3_lazywave_irregular.f90 +329 -0
  464. cabledyn-0.3.0/tests/test_l3_lazywave_refinement.f90 +252 -0
  465. cabledyn-0.3.0/tests/test_l3_lazywave_touchdown_dynamic.f90 +295 -0
  466. cabledyn-0.3.0/tests/test_l3_longduration_mooring.f90 +266 -0
  467. cabledyn-0.3.0/tests/test_l3_orcaflex_current_static.f90 +171 -0
  468. cabledyn-0.3.0/tests/test_l3_orcaflex_finite_ei_static.f90 +210 -0
  469. cabledyn-0.3.0/tests/test_l3_orcaflex_static.f90 +143 -0
  470. cabledyn-0.3.0/tests/test_l3_orcaflex_wave_dynamic.f90 +410 -0
  471. cabledyn-0.3.0/tests/test_l3_wave_smoke.f90 +180 -0
  472. cabledyn-0.3.0/tests/test_l4_lazywave_coupled.f90 +442 -0
  473. cabledyn-0.3.0/tests/test_l4_platform_mooring.f90 +228 -0
  474. cabledyn-0.3.0/tests/test_laid_cable_friction_current.py +195 -0
  475. cabledyn-0.3.0/tests/test_lapack_guard_pages.c +194 -0
  476. cabledyn-0.3.0/tests/test_lazywave_dynamics.f90 +267 -0
  477. cabledyn-0.3.0/tests/test_linalg.f90 +282 -0
  478. cabledyn-0.3.0/tests/test_line.f90 +306 -0
  479. cabledyn-0.3.0/tests/test_line_attachments.f90 +696 -0
  480. cabledyn-0.3.0/tests/test_line_driver.f90 +270 -0
  481. cabledyn-0.3.0/tests/test_load_predictor.f90 +77 -0
  482. cabledyn-0.3.0/tests/test_lozon_example_equilibrium.py +398 -0
  483. cabledyn-0.3.0/tests/test_memory_growth.c +158 -0
  484. cabledyn-0.3.0/tests/test_memory_growth_agg.f90 +139 -0
  485. cabledyn-0.3.0/tests/test_modal.f90 +581 -0
  486. cabledyn-0.3.0/tests/test_model.f90 +2617 -0
  487. cabledyn-0.3.0/tests/test_monolithic_gates.f90 +462 -0
  488. cabledyn-0.3.0/tests/test_node_channels_refined.py +358 -0
  489. cabledyn-0.3.0/tests/test_of_mooring_counters.f90 +140 -0
  490. cabledyn-0.3.0/tests/test_omp_fatal_init.py +143 -0
  491. cabledyn-0.3.0/tests/test_openfast_aggregate.f90 +6369 -0
  492. cabledyn-0.3.0/tests/test_openfast_pinned_rod.f90 +1471 -0
  493. cabledyn-0.3.0/tests/test_openfast_shell.f90 +1242 -0
  494. cabledyn-0.3.0/tests/test_openfast_touchdown.f90 +134 -0
  495. cabledyn-0.3.0/tests/test_packaging_metadata.py +93 -0
  496. cabledyn-0.3.0/tests/test_pinned_touchdown_stability.f90 +162 -0
  497. cabledyn-0.3.0/tests/test_point_added_mass.f90 +267 -0
  498. cabledyn-0.3.0/tests/test_point_seabed_contact.f90 +442 -0
  499. cabledyn-0.3.0/tests/test_prescribed_motion.f90 +257 -0
  500. cabledyn-0.3.0/tests/test_profile.f90 +179 -0
  501. cabledyn-0.3.0/tests/test_range_tdp.py +477 -0
  502. cabledyn-0.3.0/tests/test_range_tdp_locator.f90 +156 -0
  503. cabledyn-0.3.0/tests/test_rigid_kinematics.f90 +178 -0
  504. cabledyn-0.3.0/tests/test_robust_init.f90 +94 -0
  505. cabledyn-0.3.0/tests/test_rod_hydro.f90 +311 -0
  506. cabledyn-0.3.0/tests/test_seabed_friction_aniso.f90 +554 -0
  507. cabledyn-0.3.0/tests/test_shared_anchor.f90 +350 -0
  508. cabledyn-0.3.0/tests/test_snap_load.f90 +341 -0
  509. cabledyn-0.3.0/tests/test_so3.f90 +261 -0
  510. cabledyn-0.3.0/tests/test_static_friction_as_laid.py +716 -0
  511. cabledyn-0.3.0/tests/test_static_init_sweep.f90 +519 -0
  512. cabledyn-0.3.0/tests/test_static_mesh_refinement.f90 +146 -0
  513. cabledyn-0.3.0/tests/test_statics_robustness.py +715 -0
  514. cabledyn-0.3.0/tests/test_step_allocations.f90 +277 -0
  515. cabledyn-0.3.0/tests/test_stream_wave.f90 +213 -0
  516. cabledyn-0.3.0/tests/test_supercycle_ab.py +85 -0
  517. cabledyn-0.3.0/tests/test_syrope.f90 +1257 -0
  518. cabledyn-0.3.0/tests/test_system.f90 +1125 -0
  519. cabledyn-0.3.0/tests/test_torsion_deck.f90 +1059 -0
  520. cabledyn-0.3.0/tests/test_torsion_orcaflex.f90 +492 -0
  521. cabledyn-0.3.0/tests/test_torsion_validation.f90 +729 -0
  522. cabledyn-0.3.0/tests/test_validation_records.py +201 -0
  523. cabledyn-0.3.0/tests/test_vessel_motion.f90 +773 -0
  524. cabledyn-0.3.0/tests/test_viscoelastic.f90 +837 -0
  525. cabledyn-0.3.0/tests/test_wave_spectra.f90 +749 -0
  526. cabledyn-0.3.0/tests/test_wavekin_modes.f90 +221 -0
@@ -0,0 +1,45 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Enforce LF line endings for all text files on every platform so that
3
+ # ruff format --check (configured for "lf") does not falsely flag files
4
+ # checked out on Windows runners with core.autocrlf=true.
5
+ #
6
+ # Encoding policy: all tracked text (source, config, and Markdown docs) is
7
+ # UTF-8. The docs use UTF-8 typographic and engineering glyphs (em dash,
8
+ # multiplication sign, <=, Greek letters). They render correctly in any
9
+ # UTF-8 terminal; on a legacy Windows console set the code page first with
10
+ # `chcp 65001` (or `$OutputEncoding = [Text.Encoding]::UTF8` in PowerShell).
11
+ # git stores/serves these bytes verbatim -- no working-tree-encoding rewrite.
12
+
13
+ * text=auto eol=lf
14
+
15
+ # Explicit text-with-LF for source / config types
16
+ *.py text eol=lf
17
+ *.pyi text eol=lf
18
+ *.toml text eol=lf
19
+ *.yaml text eol=lf
20
+ *.yml text eol=lf
21
+ *.md text eol=lf
22
+ *.cff text eol=lf
23
+ *.txt text eol=lf
24
+ *.cfg text eol=lf
25
+ *.ini text eol=lf
26
+ *.f text eol=lf
27
+ *.f90 text eol=lf
28
+ *.F90 text eol=lf
29
+ LICENSE text eol=lf
30
+
31
+ # Binary and data formats. Marking Office files explicitly also prevent a
32
+ # machine-wide Git text-conversion driver from treating them as source.
33
+ *.pdf binary
34
+ *.npy binary
35
+ *.png binary
36
+ *.jpg binary
37
+ *.jpeg binary
38
+ *.docx binary
39
+ *.xlsx binary
40
+ *.xls binary
41
+ *.zip binary
42
+
43
+ # The OpenFAST integration patches are byte-exact upstream diffs. Preserve and
44
+ # validate them as patch payloads rather than applying source whitespace rules.
45
+ integration/openfast/patches/*.patch -whitespace
@@ -0,0 +1,105 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Research manuscripts and copyrighted literature are maintained separately.
3
+ # These directories must never be committed to the software repository.
4
+ papers/
5
+ publication/
6
+
7
+ # OpenFAST summary files are regenerable run output.
8
+ *.sum
9
+
10
+ # Local-only third-party source trees (OpenFAST, MoorDyn, and reference data)
11
+ # kept for cross-reference during implementation. Never pushed.
12
+ external/
13
+
14
+ # Office documents
15
+ *.docx
16
+
17
+ # Python
18
+ __pycache__/
19
+ *.pyc
20
+ *.pyd
21
+ .pytest_cache/
22
+ .pytest-tmp/
23
+ .mypy_cache/
24
+ .ruff_cache/
25
+ *.egg-info/
26
+ validation/**/work/
27
+
28
+ # Coverage
29
+ .coverage
30
+ .coverage.*
31
+ htmlcov/
32
+ coverage.xml
33
+ fortran-coverage.xml
34
+ fortran-coverage.html
35
+ fortran-coverage/
36
+
37
+ # Fortran build artefacts
38
+ *.mod
39
+ *.o
40
+ *.a
41
+ *.so
42
+ *.dll
43
+ *.dylib
44
+
45
+ # Build / dist trees (any build*/ tree: build/, build-coverage/, build_relcheck/, ...)
46
+ build*/
47
+ .build*/
48
+ stage*/
49
+ dist/
50
+ _skbuild/
51
+
52
+ # Sphinx documentation build output
53
+ doc/_build/
54
+
55
+ # IDE / OS
56
+ .vscode/
57
+ .idea/
58
+ .DS_Store
59
+ Thumbs.db
60
+
61
+ # Benchmark binaries / native executables (large, regenerable)
62
+ *.npy
63
+ *.exe
64
+
65
+ # Environment files
66
+ .env
67
+ .envrc
68
+
69
+ # Fortran driver test scratch (written to cwd when test_cable_driver or the
70
+ # cabledyn_driver executable run outside the build dir)
71
+ driver_*.inp
72
+ driver_*.csv
73
+
74
+ # Deck-driver / C-API / aggregate / sweep test scratch (written to cwd when the test
75
+ # executables or the cabledyn deck driver run outside the build dir). None of
76
+ # these collide with the tracked examples/ decks (wd0050_chain, composite_*,
77
+ # iea15mw_volturnus_mooring).
78
+ deck_*.dat
79
+ deck_*.out
80
+ deck_*.xyz
81
+ deck_*.txt
82
+ deck_sub/
83
+ # Long-path regression directory written by test_deck_driver.
84
+ deck_motion_overflow_subdirectory_0123456789/
85
+ capi_*.dat
86
+ fmf_*.dat
87
+ hfmf_*.dat
88
+ agg_*.dat
89
+ agg_*.out
90
+ agg_*.xyz
91
+ scratch_*.out
92
+ lozon80_*.out
93
+ owc_test.dat
94
+ syrope.dat
95
+ wk_*.dat
96
+ *.Line.*.out
97
+ *.Rod.*.out
98
+ *.FarmCD.out
99
+ *_guard_sweep.out
100
+
101
+ # Local portable test-drive package (binaries + mingw OpenBLAS; regenerable)
102
+ test_drive/
103
+
104
+ # Regenerable release staging directories (published assets live on GitHub).
105
+ dist*/
@@ -0,0 +1,54 @@
1
+ # File: .pre-commit-config.yaml
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright (c) 2026 Jae Hoon Seo, SMI Lab, Inha University
4
+ #
5
+ # Hooks run locally on every commit. CI does NOT invoke `pre-commit` itself --
6
+ # fortran.yml runs the equivalent gates as explicit steps: the fprettify
7
+ # formatting check plus the CMake build and CTest suite. Keep this list and
8
+ # that workflow in sync so a hook that passes locally is also enforced in CI.
9
+
10
+ repos:
11
+ # src/openfast/ carries OpenFAST-convention sources kept byte-exact against their
12
+ # upstream/registry-generated forms. The OpenFAST integration patches are also
13
+ # byte-exact upstream diffs. Whitespace normalizers must not rewrite either group.
14
+ - repo: https://github.com/pre-commit/pre-commit-hooks
15
+ rev: v4.6.0
16
+ hooks:
17
+ - id: trailing-whitespace
18
+ exclude: ^(src/openfast/|integration/openfast/patches/)
19
+ - id: end-of-file-fixer
20
+ exclude: ^(src/openfast/|integration/openfast/patches/)
21
+ - id: check-merge-conflict
22
+ - id: check-yaml
23
+ - id: check-added-large-files
24
+ args: [--maxkb=2000]
25
+
26
+ - repo: https://github.com/fortran-lang/fprettify
27
+ rev: v0.3.7
28
+ hooks:
29
+ - id: fprettify
30
+ args: [--indent, "2", --line-length, "120"]
31
+ # src/openfast/ carries OpenFAST-convention sources: CableDyn_Types.f90 is
32
+ # registry-generated (must stay byte-exact vs regeneration) and the module
33
+ # glue follows OpenFAST formatting for review against the upstream modules.
34
+ exclude: ^src/openfast/
35
+
36
+ - repo: https://github.com/astral-sh/ruff-pre-commit
37
+ rev: v0.15.13
38
+ hooks:
39
+ # No --config: ruff discovers python/pyproject.toml per file, so its relative
40
+ # settings (per-file ignores, first-party detection) resolve against python/.
41
+ - id: ruff-check
42
+ files: ^python/
43
+ - id: ruff-format
44
+ files: ^python/
45
+
46
+ - repo: local
47
+ hooks:
48
+ - id: release-metadata
49
+ name: release metadata
50
+ entry: python release/check_release_metadata.py
51
+ # Let pre-commit provide the interpreter. This avoids relying on a
52
+ # system-level `python` command, which is commonly absent on Windows.
53
+ language: python
54
+ pass_filenames: false
@@ -0,0 +1,25 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright (c) 2026 Jae Hoon Seo, SMI Lab, Inha University
3
+ # Read the Docs build configuration for CableDyn.
4
+ # https://docs.readthedocs.io/en/stable/config-file/v2.html
5
+ version: 2
6
+
7
+ build:
8
+ os: ubuntu-24.04
9
+ tools:
10
+ python: "3.12"
11
+
12
+ sphinx:
13
+ configuration: doc/conf.py
14
+ fail_on_warning: true
15
+
16
+ python:
17
+ install:
18
+ - requirements: doc/requirements.txt
19
+ - method: pip
20
+ path: python
21
+
22
+ # Offer the manual as downloadable PDF and EPUB alongside the HTML site.
23
+ formats:
24
+ - pdf
25
+ - epub