Skip to content

HydroChrono 0.4.0 – Major Refactor with Modular Hydrodynamics Core, New HydroSystem Façade & Chrono Coupling Layer

Latest

Choose a tag to compare

@dav-og dav-og released this 30 Nov 15:00
· 31 commits to main since this release
314f1e2

HydroChrono 0.4.0 introduces a fully modular hydrodynamics architecture with a clean HydroSystem façade and a dedicated Chrono coupling layer. This release preserves all existing behaviour while making HydroChrono cleaner, safer, and easier to extend.

Highlights

  • New HydroSystem façade — the main user-facing entry point (replaces TestHydro)
  • Chrono-free HydroForces core for hydrostatics, radiation, and excitation
  • Dedicated ChronoHydroCoupler linking Chrono bodies to the hydrodynamics core
  • Unified C++ and YAML workflows (both now use the same hydrodynamics engine)
  • Radiation logic consolidated into a single component (IRF processing, history, convolution)
  • Exceptions replace critical assert()s; public headers cleaned and namespaced
  • Full regression test suite passing (PDF included)

What’s New

  • Core
    • Introduced hydrochrono::hydro::HydroForces, SystemState, BodyForces, GeneralizedForce
    • Modular force components: Hydrostatics, Radiation, Excitation
    • Standardised 6-DOF indexing and sign conventions
  • Façade & Coupling
    • HydroSystem is the new user-facing class (aliases TestHydro and HydroForces retained for compatibility)
    • New ChronoHydroCoupler builds SystemState and bridges to the core
  • Modules & Layout
    • Clean directory structure: core/, chrono/, radiation/, waves/, config/
    • New radiation modules for IRF preprocessing and convolution
  • Robustness & Cleanup
    • Replaced assert() with descriptive exceptions
    • Removed using namespace from public headers
    • Explicit Chrono includes; improved file-level documentation

Install (Windows x64)

  • Download HydroChrono-0.4.0-win64.zip
  • Unzip — all required DLLs included (Chrono, HDF5, yaml-cpp, Irrlicht, MSVC)
  • Run regression tests:
    python .\tests\run_hydrochrono\run_tests.py --all