mdocean
Multidisciplinary Design Optimization (MDO) to optimize an ocean wave energy converter
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 7 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
2 of 7 committers (28.6%) from academic institutions -
✓Institutional organization owner
Organization symbiotic-engineering has institutional domain (sea.mae.cornell.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.1%) to scientific vocabulary
Keywords
Repository
Multidisciplinary Design Optimization (MDO) to optimize an ocean wave energy converter
Basic Info
- Host: GitHub
- Owner: symbiotic-engineering
- License: mit
- Language: MATLAB
- Default Branch: main
- Homepage: https://symbiotic-engineering.github.io/MDOcean/
- Size: 57.1 MB
Statistics
- Stars: 7
- Watchers: 3
- Forks: 4
- Open Issues: 11
- Releases: 3
Topics
Metadata Files
README.md
MDOcean
This is an open source codebase that uses Multidisciplinary Design Optimization (MDO) to optimize an ocean wave energy converter (WEC).
More specifically, it uses the SQP and pattern search algorithms to find the geometry, PTO, and structural design which optimizes the levelized cost of energy, capital cost, and average power of the Reference Model 3 (RM3) WEC, using a fast simplified frequency domain WEC model.
For 210 sea states, the model takes 39 ms to run, which is around a 5 order of magnitude improvement compared to the equivalent ~1 hour set of parallel WEC-Sim MCR simulations.
Context
The project is part of research in the Symbiotic Engineering Analysis (SEA) Lab.
Journal paper citation (in prep): R. McCabe, M. Dietrich, and M. N. Haji, “Leveraging Multidisciplinary Design Optimization and Semi-Analytical Modeling to Advance Wave Energy Converter Viability,” in preparation, 2025. Link to draft paper manuscript.
Conference paper citation: R. McCabe, O. Murphy, and M. N. Haji, “Multidisciplinary Optimization to Reduce Cost and Power Variation of a Wave Energy Converter,” International Design Engineering Technical Conferences & Computers and Information in Engineering Conference, St. Louis, MO, August 14-17, 2022. https://doi.org/10.1115/DETC2022-90227.
A video recording of the conference presentation is available here.
Software Authors - Rebecca McCabe, rgm222@cornell.edu (Project lead and point of contact, 2021-present) @rebeccamccabe - Madison Dietrich, mjd429@cornell.edu (Project contributor, 2023-present) @MadisonDietrich - Olivia Murphy, om66@cornell.edu (Project contributor, 2021-22) @ommurphy - Iris Ren, zr92@cornell.edu (Project contributor, 2024) - Maha Haji, maha@cornell.edu (Advisor, 2021-present) @maha-haji
License
This project is released open-source under the MIT License. The validation folder contains code taken from NREL's WEC-Sim. The Apache 2.0 license for this open source WEC-Sim code is included.
File Structure and Usage
Clone the repository via Git. If you are unfamiliar with Git, click "Code > Download ZIP" to get a .zip file, or try the "Open in MATLAB Online" button above to use the MATLAB Online IDE instead.
tests: continuous integration tests for validation as well as generating a report to reproduce all figures and results. Runningrun_tests.mis the easiest way to reproduce all results. Therun_slow_testsflag intest.mcan be toggled to enable or disable the tests which take longer than a few minutes to run.mdocean/inputs: numerical inputs needed to run the optimiztion, simulation, and validation, including wave data, parameters, design variable bounds, and validation values.mdocean/simulation: the simulation that takes design variables and parameters as inputs and returns objective and constraint values as outputs, and its validation. The scriptrun_single.mis a good starting point if you want to run the simulation without optimizing.mdocean/optimization: scripts and functions to perform single objective and multi-objective optimization and sensitivities. Start with the scriptgradient_optim.mif you want to run single objective optimization for each of the two objectives. For multi-objective, runpareto_search.mfollowed bypareto_curve_heuristics.m.mdocean/plots: helper functions to visualize outputs. Start with the scriptall_figures.mif you want to generate specific figures from the paper.dev: miscellaneous scripts not core to the codebase that were used to inform the development of the simulation.
If you are running individual scipts/functions, you will need to cd to the mdocean folder and add all subfolders here to the matlab path. This is done automatically if you are running everything at once via run_tests.m.
Documentation Documentation for the function API for this code is in progress at this Sphinx site.
Dependencies
The following packages are used in this code: | Package | Required? | | --- | --- | | MATLAB | Required for simulation | | Statistics and Machine Learning Toolbox | Required for simulation | | Optimization Toolbox | Required for optimization | | Global Optimization Toolbox | Required for optimization | | Symbolic Math Toolbox | Optional for simulation code generation | | Parallel Computing Toolbox | Optional for speedup | | MATLAB Report Generator | Optional for WEC-Sim validation | | Simulink | Optional for WEC-Sim validation | | Simscape | Optional for WEC-Sim validation | | Simscape Multibody | Optional for WEC-Sim validation | | WEC-Sim | Optional for WEC-Sim validation |
The code has been tested on R2022a (Windows) and R2024b (Linux), and likely works on other versions and operating systems.
Contributing
Suggestions, questions, bug reports, and contributions are welcome. Open an issue or pull request. To discuss the possibility of broader collaborations, please email rgm222@cornell.edu.
Funding Acknowledgement
This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE–2139899, and the Cornell Engineering Fellowship. Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors(s) and do not necessarily reflect the views of the National Science Foundation.
Owner
- Name: symbiotic-engineering
- Login: symbiotic-engineering
- Kind: organization
- Website: https://sea.mae.cornell.edu
- Twitter: mahachanical
- Repositories: 5
- Profile: https://github.com/symbiotic-engineering
Symbiotic Engineering and Analysis Lab at Cornell University
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: MDOcean
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Rebecca
family-names: McCabe
email: rgm222@cornell.edu
affiliation: Cornell University
orcid: 'https://orcid.org/0000-0001-5108-998X'
- given-names: Madison
family-names: Dietrich
email: mjd429@cornell.edu
affiliation: Cornell University
- given-names: Iris
family-names: Ren
email: zr92@cornell.edu
affiliation: Cornell University
- given-names: Olivia
family-names: Murphy
email: om66@cornell.edu
affiliation: Cornell University
orcid: 'https://orcid.org/0000-0001-5394-0950'
- given-names: Maha N.
family-names: Haji
email: maha@cornell.edu
affiliation: Cornell University
orcid: 'https://orcid.org/0000-0002-2953-7253'
repository-code: 'https://github.com/symbiotic-engineering/MDOcean'
abstract: >-
Open source codebase that uses multidisciplinary design
optimization to optimize an ocean wave energy converter
keywords:
- wave-energy
- multidisciplinary-optimization
- hydrodynamics
license: MIT
version: v2.1
date-released: '2024-10-26'
preferred-citation:
type: conference-paper
authors:
- family-names: "McCabe"
given-names: "Rebecca"
orcid: "https://orcid.org/0000-0001-5108-998X"
- family-names: "Murphy"
given-names: "Olivia"
orcid: "https://orcid.org/0000-0001-5394-0950"
- family-names: "Haji"
given-names: "Maha N."
orcid: "https://orcid.org/0000-0002-2953-7253"
title: "Multidisciplinary Optimization to Reduce Cost and Power Variation of a Wave Energy Converter"
year: 2022
doi: "10.1115/DETC2022-90227"
GitHub Events
Total
- Create event: 53
- Commit comment event: 2
- Issues event: 7
- Release event: 2
- Watch event: 2
- Delete event: 42
- Issue comment event: 47
- Push event: 601
- Pull request review event: 21
- Pull request review comment event: 100
- Pull request event: 75
- Fork event: 3
Last Year
- Create event: 53
- Commit comment event: 2
- Issues event: 7
- Release event: 2
- Watch event: 2
- Delete event: 42
- Issue comment event: 47
- Push event: 601
- Pull request review event: 21
- Pull request review comment event: 100
- Pull request event: 75
- Fork event: 3
Committers
Last synced: almost 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| rebeccamccabe | c****0@g****m | 146 |
| Rebecca McCabe | r****e@m****u | 87 |
| omemu | o****6@c****u | 19 |
| omemu | o****u@1****2 | 6 |
| Becca | 3****e | 6 |
| omemu | o****u@1****2 | 5 |
| Rebecca Spirer | r****r@g****m | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 6
- Total pull requests: 95
- Average time to close issues: about 2 years
- Average time to close pull requests: about 1 month
- Total issue authors: 2
- Total pull request authors: 7
- Average comments per issue: 1.17
- Average comments per pull request: 0.55
- Merged pull requests: 61
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 42
- Average time to close issues: N/A
- Average time to close pull requests: 7 days
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.62
- Merged pull requests: 28
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- rebeccamccabe (5)
- MadisonDietrich (1)
Pull Request Authors
- rebeccamccabe (71)
- ommurphy (9)
- MadisonDietrich (7)
- irin0012 (3)
- KapilKhanal (2)
- petebachant (2)
- rspirer (1)