Skip to content

Commit 1119c7f

Browse files
committed
new README and restructured website — new developer docs/contributing guide, quick tour, getting started, logging
README refresh: added website link, Papers (Ogden 2023/2025), aligned visuals. Homepage restructure: clear sections, fixed layout, stable links via {{ site.baseurl }}. About → Quick Tour: concise overview with images; verification snapshot; pubs links. Quick Start: streamlined steps; links to Logging and New Model. New Model guide: folder layout + minimal YAML templates; assumes mesh/HDF5; run commands. Logging page: flags/behavior/tips; linked from Home and Quick Start. Dev docs: Build the Docs (Jekyll) + links to CMake basics/structure and contributing. Docs-only changes; no source code modifications.
1 parent 856fc96 commit 1119c7f

19 files changed

Lines changed: 826 additions & 380 deletions

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,22 @@
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.3` 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 — please open issues/feature requests.
9+
> ⚠️ HydroChrono is under active development (`v0.3` 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.
1010
1111

12-
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.
12+
Website: https://nrel.github.io/HydroChrono/
13+
14+
15+
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.
16+
17+
📄 See Publications at the end of this README.
1318

1419
## What it does (under the hood)
1520

1621
- 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.
1722
- Runs time‑domain simulations via the Cummins equation (impulse‑response/convolution form for radiation effects).
1823
- Builds complex, nonlinear multibody systems using Project Chrono; hydrodynamic loads are currently first‑order, with expanded models planned.
19-
- Exports portable results to HDF5 for post‑processing and validation.
24+
- Supports a YAML-driven CLI, with logging, GUI and exports portable results to HDF5 for post‑processing and validation.
2025

2126
## Download
2227

@@ -154,3 +159,8 @@ python .\run_tests.py --sphere-decay --exe ..\..\bin\run_hydrochrono.exe
154159
## Developers
155160

156161
- Full build and contribution docs: [Developer documentation](https://nrel.github.io/HydroChrono/developer_docs/build_instructions.html)
162+
163+
## Papers
164+
165+
- Ogden, 2023 — HydroChrono background, theory, and implementation details: [PDF](docs/assets/papers/Ogden2023%20-%20HydroChrono.pdf)
166+
- Ogden, 2025 — Automated design exploration with meshing, Capytaine, and HydroChrono in the loop: [PDF](docs/assets/papers/Ogden2025%20-%20Automated%20Design%20Exploration%20of%20TALOS%20Using%20TOP-WEC.pdf)

docs/_config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
# in the templates via {{ site.myvariable }}.
2020

2121
title: HydroChrono
22-
copyright: © 2023 National Renewable Energy Laboratory. All rights reserved.
22+
copyright:
2323
email: hydrochrono@outlook.com
2424
description: >- # this means to ignore newlines until "baseurl:"
25-
[HydroChrono](https://github.com/NREL/HydroChrono/) is a powerful, fully open-source simulation tool for offshore renewable energy systems. It leverages [Project Chrono](https://projectchrono.org/) to model complex floating multibody systems and their subsystems.
25+
[HydroChrono](https://github.com/NREL/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**
2626
baseurl: "/HydroChrono"
2727
url: "" # the base hostname & protocol for your site, e.g. http://example.com
2828
twitter_username: NREL
@@ -35,7 +35,7 @@ plugins:
3535
- jekyll-remote-theme
3636
- jekyll-include-cache
3737

38-
accent_image: /assets/img/sidebar-bg.jpg
38+
accent_image: /assets/img/sidebar-bg2.png
3939

4040
collections:
4141
main_pages:

docs/_main_pages/about.md

Lines changed: 80 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,94 @@
11
---
22
layout: page
3-
title: "HydroChrono: Open-Source Renewable Energy Simulation"
3+
title: "HydroChrono: Quick Tour"
44
permalink: /about/
55
---
66

7-
HydroChrono is an emerging open-source simulator for offshore renewable energy systems, combines a high-speed C++ backend with a user-friendly Python wrapper.
7+
<p align="center"><img src="{{ site.baseurl }}/assets/img/hydrochrono_banner.png" width="80%" /></p>
88

9-
## Quick Highlights:
9+
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.
1010

11-
- **Efficient & Fast:** C++ backend enhances speed and efficiency and provides support for state of the art parallelization frameworks.
12-
- **User-Friendly:** Python wrapper for easy and flexible model scripting.
13-
- **Project Chrono Integration:** A powerful physics engine that provides state-of-the-art modeling capabilities - including FEM, DEM, and integration with cutting-edge control frameworks like ROS and Gym.
14-
- **Flexible Modeling:** Supports a wide range of multibody floating systems and subsystems.
15-
- **Scalable Design:** Ready to evolve with the latest advancements in simulation.
16-
- **Simulink Compatible:** Traditional control development approaches supported via Project Chrono's Simulink coupling, without creating a mandatory paywall.
17-
- **Open-Source:** Invites community collaboration for ongoing improvements.
11+
It uses Boundary Element Method (BEM) hydrodynamic coefficients (e.g., from Capytaine) to model added mass, radiation damping, and wave excitation, and runs time‑domain simulations via the Cummins equation on Chrono multibody models. Results are exported to portable HDF5 for analysis and verification.
1812

19-
## Get Involved:
13+
## Quick start (CLI)
2014

21-
Join us in advancing renewable energy research. For more details, source code access, or to contribute, visit [HydroChrono on GitHub](https://github.com/hydrochrono).
15+
After downloading a release, open a terminal in the app folder and run:
2216

23-
## Disclaimer:
17+
```powershell
18+
run_hydrochrono.exe -h # help
19+
run_hydrochrono.exe -i # info/banner
2420
25-
Please note that HydroChrono is a new and actively developing software. As with any emerging technology, users may encounter bugs or issues. We welcome feedback and contributions to improve HydroChrono and appreciate your understanding and patience as we work towards refining this tool!
21+
# Run a case by directory (auto-detects setup)
22+
run_hydrochrono.exe .\cases\my_model\
23+
24+
# Or run directly from a setup file
25+
run_hydrochrono.exe .\cases\my_model\my_model.setup.yaml
26+
27+
# Some useful options
28+
run_hydrochrono.exe .\cases\my_model\ --nogui --quiet --log
29+
```
30+
31+
<p align="center"><img src="{{ site.baseurl }}/assets/img/cli_example.png" width="75%" /></p>
32+
33+
### GUI Example
34+
35+
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.
36+
37+
<p align="center"><img src="{{ site.baseurl }}/assets/img/gui_example.png" width="40%" /></p>
38+
39+
## YAML-based UI
40+
41+
Describe your system in text files that can be versioned and automated:
42+
43+
```
44+
cases/my_model/
45+
my_model.setup.yaml # references the files below (recommended)
46+
my_model.model.yaml # bodies, joints, actuators
47+
my_model.simulation.yaml # time step, duration, GUI, waves
48+
my_model.hydro.yaml # hydrodynamics
49+
```
50+
51+
- `my_model.setup.yaml` — orchestrates which inputs to run
52+
- `my_model.model.yaml` — Chrono multibody system (bodies, joints, constraints, actuators)
53+
- `my_model.simulation.yaml` — time step, duration, output options, GUI flags
54+
- `my_model.hydro.yaml` — BEMIO `.h5` path and hydrodynamics mapping/wave inputs
55+
56+
Run with either the folder path (auto‑detects `*.setup.yaml`) or the setup file directly:
57+
58+
```powershell
59+
run_hydrochrono.exe .\cases\my_model\
60+
run_hydrochrono.exe .\cases\my_model\my_model.setup.yaml
61+
```
62+
63+
<p align="center"><img src="{{ site.baseurl }}/assets/img/yaml_example.png" width="25%" /></p>
64+
65+
## HDF5 outputs (portable)
66+
67+
Simulations produce a single `.h5` file with time series and model results. Typical datasets include:
68+
69+
- Body position (XYZ): `/results/model/bodies/<body_name>/position`
70+
- Body orientation (roll, pitch, yaw): `/results/model/bodies/<body_name>/orientation_xyz`
71+
- Translational spring–dampers: `/results/model/tsdas/<actuator_name>/...`
72+
- Rotational spring–dampers: `/results/model/rsdas/<actuator_name>/...`
73+
74+
View and plot with HDFView or common Python tools.
75+
76+
<p align="center"><img src="{{ site.baseurl }}/assets/img/h5_example.png" width="75%" /></p>
77+
78+
## Verification snapshot
79+
80+
Comparison from the OSWEC decay test used in the regression suite.
81+
82+
<p align="center"><img src="{{ site.baseurl }}/assets/img/oswec_decay_test_comparison.png" width="66%" /></p>
83+
84+
## Developers
85+
86+
Full build and contribution docs: [Developer documentation]({{ site.baseurl }}/developer_docs/build_instructions)
87+
88+
## Papers
89+
90+
- Ogden, 2023 — HydroChrono background, theory, and implementation details: [PDF]({{ site.baseurl }}/assets/papers/Ogden2023%20-%20HydroChrono.pdf)
91+
- Ogden, 2025 — Automated design exploration with meshing, Capytaine, and HydroChrono in the loop: [PDF]({{ site.baseurl }}/assets/papers/Ogden2025%20-%20Automated%20Design%20Exploration%20of%20TALOS%20Using%20TOP-WEC.pdf)
2692

2793
<p align="center">
2894
<img src="{{ site.baseurl }}/assets/img/wave_animation2.gif" alt="Wave Energy" width="80%" />

docs/_main_pages/developer_docs.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ layout: page
33
title: Developer Documentation
44
---
55

6-
Welcome to the Developer Documentation section of HydroChrono. Here, you'll find comprehensive guides and resources to help you understand and contribute to the development of HydroChrono.
6+
Welcome to the Developer Documentation section of HydroChrono. Use these guides to build, understand, and contribute to the project.
77

8-
- [Prerequisites]({{ site.baseurl }}/developer_docs/prerequisites)
9-
- [Build Instructions]({{ site.baseurl }}/developer_docs/build_instructions)
10-
- [Contribution Guidelines]({{ site.baseurl }}/developer_docs/contribution_guidelines)
8+
- [Build & Setup]({{ site.baseurl }}/developer_docs/build_instructions) - install dependencies, configure, build, and run tests
9+
- [Contribution Guidelines]({{ site.baseurl }}/developer_docs/contribution_guidelines) - coding conventions, best practices, MUST/SHOULD summary, PR checklist
10+
- [CMake Build Basics]({{ site.baseurl }}/developer_docs/cmake_build_basics) - generators, single vs multi-config, build types
11+
- [CMake Build Structure]({{ site.baseurl }}/developer_docs/cmake_build_structure) - how `CMakeLists.txt` is organized, targets, install/packaging
12+
- [Build the Docs]({{ site.baseurl }}/developer_docs/build_docs) - run Jekyll site locally and build `_site/`
1113

1214
<p align="center">
1315
<img src="{{ site.baseurl }}/assets/img/wave_animation2.gif" alt="Wave Energy" width="80%" />
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
layout: page
3+
title: Build the Docs
4+
---
5+
6+
This page explains how to build and preview the documentation site locally.
7+
8+
## Prerequisites
9+
10+
- Ruby 3.1.x (Windows: install Ruby+Devkit)
11+
- Bundler (`gem install bundler`)
12+
13+
## Quick start (Windows, PowerShell)
14+
15+
1. Open PowerShell and navigate to the docs directory:
16+
17+
```powershell
18+
cd <path>\HydroChrono\docs
19+
```
20+
21+
2. Install dependencies:
22+
23+
```powershell
24+
gem install bundler
25+
bundle config set --local path vendor/bundle
26+
bundle install
27+
```
28+
29+
3. Serve the site locally:
30+
31+
```powershell
32+
bundle exec jekyll serve --livereload
33+
```
34+
35+
The site uses `baseurl: /HydroChrono`. Open:
36+
37+
- `http://localhost:4000/HydroChrono/`
38+
39+
For root paths locally, you can override the baseurl:
40+
41+
```powershell
42+
bundle exec jekyll serve --livereload --baseurl ""
43+
```
44+
45+
## Build only
46+
47+
```powershell
48+
bundle exec jekyll build
49+
```
50+
51+
The generated site will be in `_site/`.
52+
53+
## Containerized option
54+
55+
```powershell
56+
docker run --rm -p 4000:4000 -v ${PWD}:/srv/jekyll -w /srv/jekyll jekyll/jekyll:3.9 jekyll serve --livereload
57+
```
58+
59+
Then open `http://localhost:4000/HydroChrono/`.
60+
61+
## Troubleshooting
62+
63+
- Use Ruby 3.1.x for best compatibility with Jekyll 3.9.x.
64+
- On Windows, ensure you installed the MSYS2 toolchain during Ruby+Devkit setup (`ridk install`).
65+
- If port 4000 is in use, add `--port 4001`.
66+
- First run fetches the remote theme; ensure internet connectivity.
67+
68+

0 commit comments

Comments
 (0)