SEA-Stack

Cross-fidelity simulation software for marine energy technology development

OREC 2026 Workshop

Hosted by NLR — National Lab of the Rockies

David Ogden (Simocean) Allison Riley (NLR · Mines) Salman Husain (NLR) Stephen Chamot (NLR)

SEA-Stack partners: Simocean · UW–Madison · Colorado School of Mines (Mines)

What this session is about

  • Goals — the workflow problems we're trying to solve for marine energy (wave, tidal, and beyond).
  • Our approach — how SEA-Stack is put together, what is in the current release, and example studies.
  • How you use it — one system definition (YAML, hydro data, and related inputs) for interactive runs, campaigns, and planned development.
  • Your input — in breakout: would this be useful for your work? What would help or stop you using it? What capabilities, tools, or benchmarks matter?

How today is structured (120 minutes)

35 min — SEA-Stack software

  • motivation for building SEA-Stack
  • current capabilities
  • workflows, TALOS example, collaborator validation
  • what we are focusing on next

35 min — HIL demo

Hardware-in-the-loop: coupling the model to real-time control and test hardware.

50 min — breakout

  • small groups; all four topics
  • ~10 min per topic (flexible)
  • 10 min wrap-up in the room

Breakout topics

In breakout, your group works through all four topics (~10 minutes each). We return to this slide before you start.

1. Problem & priorities

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?

2. Using the software

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?

3. Tools & interoperability

workflows, formats, integrations

Which tools, formats, and integrations matter in your workflow? What capabilities are still missing for the studies you actually run?

4. Evidence & field data

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.

Motivation for Building SEA-Stack

Wide variety of WEC concepts under exploration

Composite of diverse WEC concepts: tank arrays, attenuators, internal PTO, novel buoys, platforms, flexible bodies, linkages, point absorber diagram

Each concept sits in a huge design space. We need effective tools to explore that space and compare variants before committing to detailed studies.

High fidelity for loads and survivability

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.

What the workflow needs to support

Unusual concepts

  • rigid / flexible systems
  • novel PTOs
  • closed loops
  • unusual topologies

Broad exploration

  • sweeps
  • optimization
  • many sea states
  • parametric studies

Loads and survivability

  • impulsive loads
  • survivability
  • nonlinear events
  • targeted high fidelity

Simulation software should not constrain design choices or exploration of new concepts.

One integrated workflow vs siloed tools

workflow_seastack_vs_siloed.png

How SEA-Stack is built

A WEC model has to keep everything coupled

A useful WEC model carries hydrodynamics, structures, mooring, PTO, and control together — coupled, not as independent pieces.

wec_anatomy.svg

Requirements and how we addressed them

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

Architecture — domain, adapters, and external solvers

architecture_tikz_monthly_report.png

Model definition — YAML, assets, outputs

example.setup.yaml

setup.yaml wires the case together

model_file: example.model.yaml
simulation_file: example.simulation.yaml
hydro_file: example.hydro.yaml

output_directory: outputs

example.model.yaml

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]

example.hydro.yaml

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]

example.simulation.yaml

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

Same definition, multiple solver paths

fidelity.svg

Workflows and examples

Workflows — current and planned

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.

Interactive — does the concept behave?

Quick qualitative checks before you commit to a big parametric run.

  • New topologies, joints, mooring, sea states
  • Watch the motion, debug, ask “does this look right?”

Five-segment attenuator — directional spreading, MoorDyn (illustrative run)

5sa walkthrough — workflow overview

Generate
mesh
Run
BEM
Write
YAML files
Run
SEA-Stack
View
outputs
Pelamis P2 wave energy converter at EMEC (Orkney) — five-segment attenuator the 5sa demo is loosely based on

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.

5sa walkthrough — geometry exploration

Generate
mesh
Run
BEM
Write
YAML files
Run
SEA-Stack
View
outputs
Body diameter increase 3 m to 5 m Assembled 5sa five-body mesh

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.

hydro.yaml
WriteYamlModel_5sa
model.yaml
sim.yaml
setup.yaml

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 the SEA-Stack viewer

5sa running in SEA-Stack — irregular waves, MoorDyn mooring, line tensions coloured by load.

Absorbed power across diameter sweep 3-5 m Heave position of bodies 1-5

Absorbed power across the diameter sweep (3.0 → 5.0 m) and per-body heave — read via h5outputsReader.

TSDA reaction forces on body 1 Mooring line tension vs time

TSDA reaction forces on body 1 and MoorDyn line tensions.

Mean absorbed power vs Hs and Tp Total absorbed energy vs Hs and Tp

Mean absorbed power and total absorbed energy over a sea-state grid (Hs vs Tp).

Example cases included with the release

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.

Headless — sweeps, optimization, campaigns

design_exploration_loop.svg

Same system definition, run from a CLI. Sweep, optimize, or batch many sea states without rebuilding the model for each design point.

TALOS — exploring thousands of designs

fig_talos_phase10_taper_draft_sweep.png

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?

Validation with Strathclyde, Oxford, and PNNL

Strathclyde · Oxford — VLFP

VLFP platform simulation VLFP RAO comparison

PNNL — WITT

PNNL WITT two-body model in SEA-Stack

Building models in SEA-Stack and validating against tank-test and benchmark data — validation reports in preparation.

Higher fidelity — direction we're building (CFD / SPH)

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.

https://www.youtube.com/watch?v=ebtOX1pSci4

Next steps and discussion

Current capabilities

System dynamics

  • rigid multibody hydrodynamics
  • wide range of joints and constraints
  • closed kinematic loops
  • dry FEA bodies / flexible members

Hydrodynamics and waves

  • first-order potential-flow forces
  • radiation damping via convolution or state-space
  • regular, irregular, directional, and bimodal seas
  • nonlinear hydrostatics from submerged volume

Subsystems and workflows

  • MoorDyn coupling
  • linear and hydraulic PTO components
  • PI control and scalar control interfaces
  • YAML / CLI / HDF5 campaign workflows

Each public release includes verification reports. What benchmark or validation cases would you want included?

What we are working on next

Following the current release — planned development priorities.

roadmap.svg

Simulation is only useful if it connects to real hardware. HIL testing is one of those bridges — over to the next section.

Breakout topics

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.

1. Problem & priorities

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?

2. Using the software

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?

3. Tools & interoperability

workflows, formats, integrations

Which tools, formats, and integrations matter in your workflow? What capabilities are still missing for the studies you actually run?

4. Evidence & field data

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.