|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.5.0] — 2026-02-16 |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +- **VSG free-surface visualization** — animated water-surface mesh driven by the wave model, with per-vertex normals and configurable grid resolution (`vsg_water_surface`) |
| 13 | +- **Radiated wave overlay** — visualization of body-generated wave patterns layered on the free surface (`vsg_radiation_surface`) |
| 14 | +- **PBR ocean materials, scene lighting, and GUI stats component** — new modules `vsg_materials`, `vsg_lighting`, `vsg_gui_component`, `vsg_config` |
| 15 | +- **Wave model API extensions** — `GetElevationGradientXY()` and `GetElevationForVisualization()` added to `WaveBase`, `RegularWave`, and `IrregularWave` |
| 16 | +- **Added-mass determinism unit test** — `test_added_mass_determinism` verifies bit-identical added-mass assembly across independent trials and sweeps all Chrono solver types |
| 17 | +- **Regression tests produce HDF5 output** validated by external Python comparison scripts; tests now run fully headless (all GUI/visualization code stripped from test builds) |
| 18 | +- **CPack packaging** — project DLLs (`HydroChrono`, `HydroChronoGUI`) now included in the installer ZIP |
| 19 | +- **OpenMP runtime** (`vcomp140.dll`) explicitly installed for MSVC packages |
| 20 | +- **Chrono DLL collection** changed to glob all DLLs from Chrono's bin directory, capturing transitive VSG/yaml-cpp/draco dependencies |
| 21 | + |
| 22 | +### Changed |
| 23 | + |
| 24 | +- **Switched added-mass implementation to Chrono's built-in `ChLoadHydrodynamics`** — replaces HydroChrono's legacy `ChLoadAddedMass` (`ChLoadCustomMultiple`-based) as the default. The legacy implementation is retained in the codebase and can be re-activated by uncommenting `#define HYDROCHRONO_USE_LEGACY_ADDED_MASS` in `hydro_system.h`. |
| 25 | +- Default solver changed from GMRES to SPARSE_QR for most regression tests (faster, deterministic) |
| 26 | +- Irregular wave surface evaluation performance improved (parallelism and caching) |
| 27 | +- Regression test report generator now correctly parses CTest logs for PASS/FAIL status instead of assuming PASS when plots exist |
| 28 | + |
| 29 | +### Fixed |
| 30 | + |
| 31 | +- **YAML runner: `LoadSolverData` never called** — YAML structure mismatch prevented solver data from being loaded |
| 32 | +- **YAML runner: mesh file paths broken** — `m_script_directory` was empty, breaking relative `model_file:` paths |
| 33 | +- **Regression report image paths** — report generator now computes correct relative paths to plot images instead of using hardcoded paths |
| 34 | +- OSWEC solver switched from SPARSE_QR to GMRES to prevent divergence (see Known Issues) |
| 35 | +- RM3 decay test fixes and cleanup |
| 36 | +- Sphere irregular wave test default arguments corrected |
| 37 | +- **Regular wave excitation phase indexing for multi-body systems** — `RegularWave::GetForceAtTime()` used `excitation_force_phase_[rowEx]` instead of `excitation_force_phase_[body_offset + rowEx]`, causing body 2+ to use body 1's excitation phase. This affected the RM3 plate (and any second+ body) heave response in regular waves. Single-body models (e.g., sphere) were unaffected. |
| 38 | + |
| 39 | +### Known Issues |
| 40 | + |
| 41 | +- **OSWEC tests use GMRES solver.** OSWEC demos and tests use GMRES rather than SPARSE_QR. SPARSE_QR may work for OSWEC but has not yet been validated. |
| 42 | +- **PSOR solver cannot handle added-mass assembly.** The added-mass determinism unit test solver sweep reports that PSOR errors out because it cannot handle stiffness/damping matrices. All other swept solvers (SPARSE_QR, SPARSE_LU, MINRES, GMRES, BICGSTAB, BARZILAIBORWEIN, APGD) pass assembly. |
| 43 | + |
| 44 | +## [0.4.0] — 2025 |
| 45 | + |
| 46 | +- YAML-driven CLI (`run_hydrochrono`) for running simulations from text-based configuration files |
| 47 | +- Cummins-equation time-domain solver with BEM hydrodynamic coefficients (BEMIO HDF5 format) |
| 48 | +- Multibody system support via Project Chrono (bodies, joints, actuators) |
| 49 | +- Irrlicht run-time visualization (optional) |
| 50 | +- HDF5 output for post-processing and validation |
| 51 | +- Regression test suite (IEA sphere, OSWEC, RM3, F3OF / DeepCWind) |
| 52 | +- Windows installer (ZIP) via CPack |
0 commit comments