Cross-fidelity simulation software for marine energy technology development
OREC 2026 Workshop
Hosted by NLR — National Lab of the Rockies
SEA-Stack partners: NLR · Simocean · UW–Madison · Colorado School of Mines (Mines)
35 min — SEA-Stack software
35 min — HIL demo
Hardware-in-the-loop: coupling the model to real-time control and test hardware.
50 min — breakout
In breakout, your group works through all four topics (~10 minutes each). We return to this slide before you start.
fidelity and physics gaps
Are we focused on the right problems for your field (wave, tidal, other)? What physics or fidelity gaps matter for devices like yours?
barriers to use
Would this fit your work — what would help or stop you? After the HIL demo: does that workflow fit your control or test setup? Docs, examples, install, training?
workflows, formats, integrations
Which tools, formats, and integrations matter in your workflow? What capabilities are still missing for the studies you actually run?
validation and operational data
What benchmarks or verification would you need before relying on results? What field data, tests, or reports would help?
Constructive criticism is welcome — a clear “not for us because…” is as helpful as concrete suggestions for what would work.
Each concept sits in a huge design space. We need effective tools to explore that space and compare variants before committing to detailed studies.
https://www.youtube.com/watch?v=ARIg3oQtZ0w
Impulsive, strongly nonlinear loading — often in operational sea states, not only in storms.
Potential-flow and other low-fidelity models generally cannot resolve this loading physics directly. They are still essential for broad design exploration.
For slamming, impact loads, and similar events you need targeted high-fidelity modelling (CFD, SPH, and related tools) where it matters.
Unusual concepts
Broad exploration
Loads and survivability
Simulation software should not constrain design choices or exploration of new concepts.
A useful WEC model carries hydrodynamics, structures, mooring, PTO, and control together — coupled, not as independent pieces.
| What we wanted | How we built it | What it uses |
|---|---|---|
| Explore unusual WEC concepts | Flexible multibody foundation | Project Chrono — native C++ multibody, constraints, joints, contact, FEA-capable host |
| Short turnaround in interactive use | Interactive visual workflows | VSG GUI + packaged demos |
| Run large campaigns and optimization studies | Headless scalable workflows | YAML / CLI / HDF5 — reproducible study automation and batch I/O; native C++ underneath |
| Carry the same system definition across fidelities | Solver-independent domain models | Thin adapter layers — same YAML/device definition when hydro engine changes |
| Extend physics over time | Modular explicit interfaces | Chrono-free domain libraries |
| Couple to external solvers | Shared C++ interfaces | Chrono · MoorDyn · OpenFOAM · DualSPHysics — same codebase for thin adapters |
setup.yaml wires the case together
model_file: example.model.yaml simulation_file: example.simulation.yaml hydro_file: example.hydro.yaml output_directory: outputs
One segment + one universal joint (excerpts) · TSDAs omitted on slide
chrono-version: 10.0
model:
name: "example_model"
angle_degrees: false
data_path:
type: RELATIVE
root: "."
bodies:
# Segment 1 (Nose)
- name: body1
location: [18.0, 0.0, -1.8]
mass: 438293
fixed: false
inertia:
moments: [876585.0, 47773884.0, 47773884.0]
joints:
- name: joint_12
type: UNIVERSAL
body1: body1
body2: body2
location: [36.0, 0.0, -1.8]
axis1: [0, 1, 0]
axis2: [0, 0, 1]
Waves, spreading, excitation, MoorDyn · H5 from shared BEM data
hydrodynamics:
bodies:
- name: body1
h5_file: ../assets/hydroData/example_directional.h5
waves:
type: irregular
height: 3.0
period: 10.0
spectrum: jonswap
spreading:
type: cos2s
s: 12
moordyn:
enabled: true
input_file: mooring/lines_example.txt
bodies: [body1, body3]
Chrono time step, integrator, linear solver
chrono-version: 10.0
simulation:
time_step: 0.02
end_time: 600.0
integrator:
type: HHT
use_stepsize_control: true
solver:
type: SPARSE_LU
Interactive and headless workflows are in the current release. Higher-fidelity coupling is under development.
Current
Interactive
Try layouts, debug topology, watch coupled motion.
Current
Headless
Sweeps, campaigns, optimization — from a CLI or script.
In development
Higher fidelity
CFD / SPH for nonlinear loads and survivability — same model definition, when the coupling is ready.
Quick qualitative checks before you commit to a big parametric run.
Five-segment attenuator — directional spreading, MoorDyn (illustrative run)
Pelamis P2 at EMEC (Orkney) — image courtesy of EMEC.
The 5sa demo is loosely modelled on a five-segment attenuator like this. Same five-step chain top to bottom — we will step through it next.
Increase body diameter 3 m → 5 m, regenerate the five-body mesh → written into 5sa/assets.
Capytaine
BEM solve on the updated mesh — added mass, radiation damping, and excitation written to an H5 file in 5sa/assets.
model.yaml is regenerated from the new H5 hydro data by WriteYamlModel_5sa. The other YAML files are unchanged for this sweep.
5sa running in SEA-Stack — regular waves, MoorDyn mooring, line tensions coloured by load.
Absorbed power across the diameter sweep (3.0 → 5.0 m) and per-body heave — read via h5outputsReader.
TSDA reaction forces on body 1 and MoorDyn line tensions.
Mean absorbed power and total absorbed energy over a sea-state grid (Hs vs Tp).
RM3 with a rectified hydraulic PTO + PI controller.
Trimaran with Euler-beam FEA cross-arms.
How much PTO or structural detail you need depends on the device and the question — these show what is possible.
Same system definition, run from a CLI. Sweep, optimize, or batch many sea states without rebuilding the model for each design point.
The TALOS project explored thousands of WEC design variants in SEA-Stack. The figure shows one slice — a taper-draft sweep at regular-wave periods, with six-DOF response and capture width. What design exploration or optimization studies matter for your work — and what would you need a tool to support?
Strathclyde · Oxford — VLFP
PNNL — WITT
Building models in SEA-Stack and validating against tank-test and benchmark data — validation reports in preparation.
The goal: couple to CFD / SPH for slamming, survivability, or complex free-surface behaviour — without redefining the device. This path is in development, not a routine workflow yet.
System dynamics
Hydrodynamics and waves
Subsystems and workflows
Each public release includes verification reports. What benchmark or validation cases would you want included?
Following the current release — planned development priorities.
Simulation is only useful if it connects to real hardware. HIL testing is one of those bridges — over to the next section.
Split into small groups. Work through all four topics in order — ~10 minutes each, flexible. The most helpful input: a real example from your work.
fidelity and physics gaps
Are we focused on the right problems for your field (wave, tidal, other)? What physics or fidelity gaps matter for devices like yours?
barriers to use
Would this fit your work — what would help or stop you? After the HIL demo: does that workflow fit your control or test setup? Docs, examples, install, training?
workflows, formats, integrations
Which tools, formats, and integrations matter in your workflow? What capabilities are still missing for the studies you actually run?
validation and operational data
What benchmarks or verification would you need before relying on results? What field data, tests, or reports would help?
One sheet per group, four sections — a few bullets per topic. Then 10 min plenary wrap-up: one or two takeaways per topic from each group.