Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sandialabs/WecOptTool
WEC Design Optimization Toolbox
https://github.com/sandialabs/WecOptTool
scr-2490 snl-applications
Last synced: about 2 months ago
JSON representation
WEC Design Optimization Toolbox
- Host: GitHub
- URL: https://github.com/sandialabs/WecOptTool
- Owner: sandialabs
- License: gpl-3.0
- Created: 2021-06-08T17:44:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T20:18:32.000Z (2 months ago)
- Last Synced: 2024-10-29T22:46:50.474Z (2 months ago)
- Topics: scr-2490, snl-applications
- Language: Python
- Homepage: https://sandialabs.github.io/WecOptTool/
- Size: 50.7 MB
- Stars: 13
- Watchers: 5
- Forks: 22
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- open-sustainable-technology - WecOptTool - Allows users to perform wave energy converter device design optimization studies with constrained optimal control. (Renewable Energy / Hydro Energy)
README
[![Test-WecOptTool](https://github.com/sandialabs/WecOptTool/actions/workflows/push.yml/badge.svg)](https://github.com/sandialabs/WecOptTool/actions/workflows/push.yml)
[![Coverage Status](https://coveralls.io/repos/github/sandialabs/WecOptTool/badge.svg?branch=main)](https://coveralls.io/github/sandialabs/WecOptTool?branch=main)# 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](https://github.com/SNL-WaterPower/WecOptTool-MATLAB).
## Project Information
Refer to [WecOptTool documentation](https://sandialabs.github.io/WecOptTool/) 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](https://github.com/sandialabs/WecOptTool/blob/main/INSTALLATION.md).**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`](https://www.anaconda.com/), [`mamba`](https://mamba.readthedocs.io/en/latest/), `venv`, etc.) before installing WecOptTool.From your dedicated environment, you can install WecOptTool via `conda`, `pip`, or `mamba`:
**Option 1** - using `Conda`:
```bash
conda install -c conda-forge wecopttool
```**Option 2** - using `pip` (requires Fortran compilers on your system):
```bash
pip install wecopttool
```**Option 3** - using `Mamba`:
```bash
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`.```bash
pip install wecopttool[geometry] jupyter
```or on a Mac (`Zsh` shell)
```bash
pip install wecopttool\[geometry] jupyter
```## Tutorials
The tutorials can be found in the `examples` directory and are written as [Jupyter Notebooks](https://jupyter.org/).
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```bash
git clone https://github.com/sandialabs/WecOptTool.git
cd WecOptTool/examples
jupyter notebook
```## Getting help
To report bugs, use WecOptTool's [issues page](https://github.com/sandialabs/WecOptTool/issues).
For general discussion, use WecOptTool's [discussion page](https://github.com/sandialabs/WecOptTool/discussions)## Contributing
If you are interested in contributing to WecOptTool, see our [contribution guidelines](https://github.com/sandialabs/WecOptTool/blob/main/.github/CONTRIBUTING.md).