Skip to content

v0.6.0: Merge pull request #87 from Project-SEA-Stack/release/v0.6

Choose a tag to compare

@dav-og dav-og released this 19 Feb 14:06
· 17 commits to main since this release
fbdbe7e

Highlights

State-space radiation damping — a new O(1)-per-timestep alternative to convolution-based radiation. Instead of convolving the full RIRF kernel history at every step, the kernel is approximated as a sum of exponential and oscillatory modes and propagated via a compact state vector. Selectable via C++ API or YAML (radiation_method: state_space). Performance gains range from modest to significant depending on kernel complexity and simulation length — up to 19.6x on the sphere decay benchmark.

Irregular wave excitation reworked — the time-domain excitation convolution is replaced by a pre-computed frequency-domain transfer function, and the irregular wave model is decoupled from simulation parameters (simulation_dt_, simulation_duration_ removed from IrregularWaveParams), clearing the path for adaptive time integration.


What's New

State-Space Radiation

  • RadiationStateSpaceModel — exponential and oscillatory mode support with exact exponential time integration
  • RadiationStateSpaceFitter — Hankel-SVD system identification matching the WEC-Sim / BEMIO approach
  • RadiationStateSpaceComponent — force component integrating with HydroSystem
  • RadiationMethod enum and StateSpaceOptions configuration struct
  • YAML keys: radiation_method, ss_max_order, ss_r2_threshold, output_kernel_fit
  • Kernel-fit diagnostics (R² values and mode counts per DOF pair) optionally written to HDF5 output
  • Unit tests for model and fitter
  • Regression tests: sphere/OSWEC decay and irregular waves (state-space vs convolution)
sphere_model_comparison

Wave Class Improvements

  • Frequency-domain excitation transfer function for irregular waves — O(N_freq) per DOF per timestep instead of O(N_irf × N_freq)
  • Irregular wave model decoupled from simulation parameters; nfrequencies_ is now a required parameter
  • Redundant num_bodies removed from wave classes — set automatically in HydroSystem::AddWaves()

Known Issues

  • OSWEC validated with GMRES only (SPARSE_QR not yet confirmed stable)
  • PSOR solver incompatible with added-mass assembly (stiffness/damping matrix errors; other solvers pass)

Install (Windows x64)

  1. Download HydroChrono-0.6.0-win64.zip

  2. Unzip — all required DLLs included
    (Chrono, HDF5, yaml-cpp, VSG, MSVC runtime)

  3. Run a simulation:

    .\HydroChrono.exe path\to\input_directory
    
  4. Run the full regression suite:

    .\RUN-TESTS.ps1