|
1 | 1 | --- |
2 | 2 | layout: page |
3 | | -title: "HydroChrono: Open-Source Renewable Energy Simulation" |
| 3 | +title: "HydroChrono: Quick Tour" |
4 | 4 | permalink: /about/ |
5 | 5 | --- |
6 | 6 |
|
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> |
8 | 8 |
|
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. |
10 | 10 |
|
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. |
18 | 12 |
|
19 | | -## Get Involved: |
| 13 | +## Quick start (CLI) |
20 | 14 |
|
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: |
22 | 16 |
|
23 | | -## Disclaimer: |
| 17 | +```powershell |
| 18 | +run_hydrochrono.exe -h # help |
| 19 | +run_hydrochrono.exe -i # info/banner |
24 | 20 |
|
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) |
26 | 92 |
|
27 | 93 | <p align="center"> |
28 | 94 | <img src="{{ site.baseurl }}/assets/img/wave_animation2.gif" alt="Wave Energy" width="80%" /> |
|
0 commit comments