sandialabs / WecOptTool

WEC Design Optimization Toolbox
https://sandialabs.github.io/WecOptTool/
GNU General Public License v3.0
13 stars 22 forks source link
scr-2490 snl-applications

Test-WecOptTool Coverage Status

WecOptTool

The Wave Energy Converter Design Optimization Toolbox (WecOptTool) allows users to perform wave energy converter (WEC) device design optimization studies with constrained optimal control.

NOTE: If you are looking for the WecOptTool code used in previous published work (MATLAB version) please see WecOptTool-MATLAB.

Project Information

Refer to WecOptTool documentation for more information, including project overview, tutorials, theory, and API documentation.

Getting started

If you are brand new to Python and/or want detailed installation instructions, click here.

WecOptTool requires Python >= 3.8. Python 3.10 & 3.11 are supported. It is strongly recommended you create a dedicated virtual environment (e.g., using conda, mamba, venv, etc.) before installing WecOptTool.

From your dedicated environment, you can install WecOptTool via conda, pip, or mamba:

Option 1 - using Conda:

conda install -c conda-forge wecopttool

Option 2 - using pip (requires Fortran compilers on your system):

pip install wecopttool

Option 3 - using Mamba:

mamba install wecopttool

Geometry module and tutorials

To use our geometry examples, including for running the tutorials, you will need to install some additional dependencies. For the tutorials you will also need to install jupyter.

pip install wecopttool[geometry] jupyter

or on a Mac (Zsh shell)

pip install wecopttool\[geometry] jupyter

Tutorials

The tutorials can be found in the examples directory and are written as Jupyter Notebooks. To run the tutorials, first download the notebook files and then, from the directory containing the notebooks, run jupyter notebook. Using git to obtain the notebooks this can be done by running

git clone https://github.com/sandialabs/WecOptTool.git
cd WecOptTool/examples
jupyter notebook

Getting help

To report bugs, use WecOptTool's issues page. For general discussion, use WecOptTool's discussion page

Contributing

If you are interested in contributing to WecOptTool, see our contribution guidelines.