Skip to content

Commit c2362e2

Browse files
committed
Prepare v0.5.0 release: version bump, CHANGELOG, and README updates
Bump version from 0.4.0 to 0.5.0 in CMakeLists.txt, README badge, prototype notice, and CLI banner. Create CHANGELOG.md covering all changes since 0.4.0 (VSG visualization, wave API extensions, test refactor, YAML runner fixes, packaging improvements, known issues). Update README to highlight new VSG free-surface visualization.
1 parent c16016c commit c2362e2

4 files changed

Lines changed: 55 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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+
- Default solver changed from GMRES to SPARSE_QR for most regression tests (faster, deterministic)
25+
- Irregular wave surface evaluation performance improved (parallelism and caching)
26+
27+
### Fixed
28+
29+
- **YAML runner: `LoadSolverData` never called** — YAML structure mismatch prevented solver data from being loaded
30+
- **YAML runner: mesh file paths broken**`m_script_directory` was empty, breaking relative `model_file:` paths
31+
- OSWEC solver switched from SPARSE_QR to GMRES to prevent divergence (see Known Issues)
32+
- RM3 decay test fixes and cleanup
33+
- Sphere irregular wave test default arguments corrected
34+
- Regular wave bug fixes
35+
36+
### Known Issues
37+
38+
- **SPARSE_QR solver causes OSWEC simulations to diverge.** The constrained multi-body OSWEC model (revolute joints) diverges under the SPARSE_QR solver. OSWEC demos and tests use GMRES as a workaround. Other models (sphere, RM3, F3OF) are unaffected. Root cause not yet diagnosed.
39+
- **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.
40+
41+
## [0.4.0] — 2025
42+
43+
- YAML-driven CLI (`run_hydrochrono`) for running simulations from text-based configuration files
44+
- Cummins-equation time-domain solver with BEM hydrodynamic coefficients (BEMIO HDF5 format)
45+
- Multibody system support via Project Chrono (bodies, joints, actuators)
46+
- Irrlicht run-time visualization (optional)
47+
- HDF5 output for post-processing and validation
48+
- Regression test suite (IEA sphere, OSWEC, RM3, F3OF / DeepCWind)
49+
- Windows installer (ZIP) via CPack

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ endif()
2020
# ===============================================================================
2121

2222
project(HydroChrono
23-
VERSION 0.4.0
23+
VERSION 0.5.0
2424
DESCRIPTION "Hydrodynamics for Project Chrono."
2525
LANGUAGES CXX
2626
)

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<p align="center">
33
<img src="docs/assets/img/hydrochrono_banner.png" />
44
<br/>
5-
<a href="https://github.com/NREL/HydroChrono/releases"><img src="https://img.shields.io/badge/version-v0.4-blue.svg" /></a>
5+
<a href="https://github.com/NREL/HydroChrono/releases"><img src="https://img.shields.io/badge/version-v0.5-blue.svg" /></a>
66
<a href="#"><img src="https://img.shields.io/badge/status-Prototype-orange.svg" /></a>
77
</p>
88

9-
> ⚠️ HydroChrono is under active development (`v0.4` prototype). This early release focuses on a YAML‑driven CLI and portable HDF5 outputs so you can try the code and share feedback. Expect rapid iteration over the coming year (inc. more advanced PTO, control, mooring & hydrodynamics) — please get in touch if you have any issues or feature requests.
9+
> ⚠️ HydroChrono is under active development (`v0.5` prototype). This early release focuses on a YAML‑driven CLI, real-time VSG visualization with animated free-surface rendering, and portable HDF5 outputs so you can try the code and share feedback. Expect rapid iteration over the coming year (inc. more advanced PTO, control, mooring & hydrodynamics) — please get in touch if you have any issues or feature requests.
1010
1111

1212
HydroChrono (Hydrodynamics for Project Chrono) is a hydrodynamics simulation toolkit built on [Project Chrono](https://projectchrono.org/). It is designed for simulating wave energy converters (WECs) and other complex ocean systems, and is **100% free and open‑source** end‑to‑end — no proprietary dependencies required. This repo ships a prototype, YAML‑driven CLI app for running simulations and exporting portable results.
@@ -20,6 +20,7 @@ HydroChrono (Hydrodynamics for Project Chrono) is a hydrodynamics simulation too
2020
- Uses Boundary Element Method (BEM) hydrodynamic coefficients (e.g., from [Capytaine](https://github.com/capytaine/capytaine)) to describe added mass, radiation damping, and wave excitation. HydroChrono reads these coefficients from BEMIO‑format HDF5 (.h5) files, an approach familiar to [WEC‑Sim](https://github.com/WEC-Sim/WEC-Sim) users.
2121
- Runs time‑domain simulations via the Cummins equation (impulse‑response/convolution form for radiation effects).
2222
- Builds complex, nonlinear multibody systems using Project Chrono; hydrodynamic loads are currently first‑order, with expanded models planned.
23+
- **Real-time VSG visualization** with animated free-surface rendering driven by the wave model, radiated wave overlays, PBR ocean materials, and interactive GUI stats (new in v0.5).
2324
- Supports a YAML-driven CLI, with logging, GUI and exports portable results to HDF5 for post‑processing and validation.
2425

2526
## Download
@@ -61,7 +62,7 @@ Tips: use `--quiet` to reduce logs, `--debug`/`--trace` for deeper diagnostics.
6162

6263
### GUI Example
6364

64-
Use the GUI to visually inspect the assembled multibody system (bodies, joints, actuators) and verify that YAML inputs are wired correctly. Use the `--nogui` option to disable visualization straight from CLI, or change the settings in the `*.simulation.yaml` file.
65+
Use the GUI to visually inspect the assembled multibody system (bodies, joints, actuators) and verify that YAML inputs are wired correctly. With VSG enabled, the visualization includes an animated free-surface mesh and radiated wave overlays driven by the live wave model. Use the `--nogui` option to disable visualization straight from CLI, or change the settings in the `*.simulation.yaml` file.
6566

6667
<p align="center"><img src="docs/assets/img/gui_example.png" width="40%" /></p>
6768

src/hydro/logging/logging.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ void CLILogger::ShowBanner() {
297297
Log(LogLevel::Success, "│ │", LogColor::BrightCyan);
298298
Log(LogLevel::Success, "│ Hydrodynamics for Project Chrono │", LogColor::White);
299299
Log(LogLevel::Success, "│ │", LogColor::BrightCyan);
300-
Log(LogLevel::Success, "│ Version : 0.4.0 │", LogColor::Gray);
300+
Log(LogLevel::Success, "│ Version : 0.5.0 │", LogColor::Gray);
301301
Log(LogLevel::Success, "│ Status : Prototype │", LogColor::Gray);
302302
Log(LogLevel::Success, "│ Author : SEA-Stack Development Team │", LogColor::Gray);
303303
Log(LogLevel::Success, "│ Lead Developer : David Ogden │", LogColor::Gray);

0 commit comments

Comments
 (0)