WISDEM
Wind Plant Integrated System Design and Engineering Model.
https://github.com/nlrwindsystems/wisdem
Category: Renewable Energy
Sub Category: Wind Energy
Keywords
openmdao systems-engineering wind wisdem
Keywords from Contributors
wind-energy wind-turbine aeroelasticity wind-farm wind-power operations-maintenance simpy ecp exascale-computing
Last synced: about 21 hours ago
JSON representation
Repository metadata
Wind Plant Integrated System Design and Engineering Model
- Host: GitHub
- URL: https://github.com/nlrwindsystems/wisdem
- Owner: NLRWindSystems
- License: apache-2.0
- Created: 2014-09-04T20:30:24.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2026-01-23T16:01:48.000Z (19 days ago)
- Last Synced: 2026-02-03T18:54:09.735Z (8 days ago)
- Topics: openmdao, systems-engineering, wind, wisdem
- Language: Python
- Homepage: https://wisdem.readthedocs.io
- Size: 81.6 MB
- Stars: 173
- Watchers: 31
- Forks: 99
- Open Issues: 1
- Releases: 65
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Notice: NOTICE
README.md
WISDEM®
The Wind-Plant Integrated System Design and Engineering Model (WISDEM®) is a set of models for assessing overall wind plant cost of energy (COE). The models use wind turbine and plant cost and energy production as well as financial models to estimate COE and other wind plant system attributes. WISDEM® is accessed through Python, is built using OpenMDAO, and uses several sub-models that are also implemented within OpenMDAO. These sub-models can be used independently but they are required to use the overall WISDEM® turbine design capability. Please install all of the pre-requisites prior to installing WISDEM® by following the directions below. For additional information about the NWTC effort in systems engineering that supports WISDEM® development, please visit the official NREL systems engineering for wind energy website.
Author: NREL WISDEM Team
Part of the WETO Stack
WISDEM is primarily developed with the support of the U.S. Department of Energy and is part of the WETO Software Stack. For more information and other integrated modeling software, see:
Documentation
See local documentation in the docs-directory or access the online version at https://wisdem.readthedocs.io/en/master/
Packages
WISDEM® is a family of modules. The core modules are:
- CommonSE includes several libraries shared among modules
- FloatingSE works with the floating platforms
- DrivetrainSE sizes the drivetrain and generator systems (formerly DriveSE and GeneratorSE)
- TowerSE is a tool for tower (and monopile) design
- RotorSE is a tool for rotor design
- NREL CSM is the regression-based turbine mass, cost, and performance model
- ORBIT is the process-based balance of systems cost model for offshore plants
- LandBOSSE is the process-based balance of systems cost model for land-based plants
- Plant_FinanceSE runs the financial analysis of a wind plant
The core modules draw upon some utility packages, which are typically compiled code with python wrappers:
- Airfoil Preppy is a tool to handle airfoil polar data
- CCBlade is the BEM module of WISDEM
- pyFrame3DD brings libraries to handle various coordinate transformations
- MoorPy is a quasi-static mooring line model
- pyOptSparse provides some additional optimization algorithms to OpenMDAO
Installation
Installation with Anaconda is the recommended approach because of the ability to create self-contained environments suitable for testing and analysis. WISDEM® requires Anaconda 64-bit. However, the conda command has begun to show its age and we now recommend the one-for-one replacement with the Miniforge3 distribution, which is much more lightweight and more easily solves for the WISDEM package dependencies.
Installation as a "library"
-
Create a conda environment with your preferred name (
wisdem-envin the following example) and favorite, approved Python version:conda create -n wisdem-env python=3.13 -y -
Activate the environment:
conda activate wisdem-env -
Install WISDEM via a
condaorpip. We highly recommend via conda.conda install wisdemor
pip install wisdem
To use WISDEM's modules as a library for incorporation into other scripts or tools, WISDEM is available via conda install wisdem or pip install wisdem, assuming that you have already setup your python environment. Note that on Windows platforms, we suggest using conda exclusively.
Installation for direct use or development
These instructions are for interaction with WISDEM directly, the use of its examples, and the direct inspection of its source code.
The installation instructions below use the environment name, "wisdem-env," but any name is acceptable. Below are a series of considerations:
- For those working behind company firewalls, you may have to change the conda authentication with
conda config --set ssl_verify no. - Proxy servers can also be set with
conda config --set proxy_servers.http http://id:pw@address:portandconda config --set proxy_servers.https https://id:pw@address:port. - To setup an environment based on a different Github branch of WISDEM, simply substitute the branch name for
masterin the setup line.
Note
For Windows users, we recommend installinggitand them2w64packages in separate environments as some of the
libraries appear to conflict such that WISDEM cannot be successfully built from source. Thegitpackage is best
installed in thebaseenvironment.
Direct use
We still highly recommend users use conda install wisdem into an environment, but if there is a reason that is not
desired, please use the following instructions.
Setup and activate the Anaconda environment from a prompt (Anaconda3 Power Shell on Windows or Terminal.app on Mac)
[!IMPORTANT]
In theenvironment.yamlplease uncomment out the OS-dependent dependencies at the top
-
Install
gitif you don't already have it:conda install git -
Clone the repository and enter it:
git clone https://github.com/WISDEM/WISDEM.git cd WISDEM -
Checkout the desired branch, if necessary:
git checkout <branch> -
Create and activate your
wisdem-envenvironment, substituting "wisdem-env" with a different desired name.conda env create --name wisdem-env -f environment.yml conda activate wisdem-env -
Install WISDEM.
pip install --no-deps . -v
Development
In order to directly use the examples in the repository and peek at the code when necessary, we recommend all users install WISDEM in developer / editable mode using the instructions here. If you really just want to use WISDEM as a library and lean on the documentation, you can always do conda install wisdem and be done. Note the differences between Windows and Mac/Linux build systems.
[!IMPORTANT]
In theenvironment_dev.yamlplease uncomment out the OS-dependent dependencies at the topFor Linux, we recommend using the native compilers (for example, gcc and gfortran in the default GNU suite).
Please follow steps 1-3 in the Direct Use section above, replacing steps 4 & 5 with the following to ensure the development
dependencies for building, testing, and documentation are also installed:
-
Create and activate your
wisdem-envenvironment, substituting "wisdem-env" with a different desired name.conda env create --name wisdem-env -f environment_dev.yml conda activate wisdem-env -
Install WISDEM. Please note the
-e(editable) flag used to ensure your code changes are registered dynamically every
time you save modifications.pip install --no-deps -e . -v
Run Unit Tests
Each package has its own set of unit tests, and the project runs the examples as integration tests. These can be run in batch with the following command:
pytest
Users can add either the --unit or --integration flags if they would like to skip running
the examples or just run the examples. Otherwise, all tests will be run.
[!Note]
Legacy users can continue to runpython test/test_all.pyto run the scipts, though it is recommend to adopt the
simplerpytestcall. In a future version,test_all.pywill be removed.
Feedback
For software issues please use https://github.com/WISDEM/WISDEM/issues. For functionality and theory related questions and comments please use the NWTC forum for Systems Engineering Software Questions.
Owner metadata
- Name: NLRWindSystems
- Login: NLRWindSystems
- Email: systems.engineering@nrel.gov
- Kind: organization
- Description: The home of wind energy systems models developed, released, and maintained by the National Laboratory of the Rockies, formerly named NREL
- Website: https://www.nrel.gov/wind/systems-engineering.html
- Location: United States of America
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/5444272?v=4
- Repositories: 40
- Last ynced at: 2026-01-15T00:49:55.882Z
- Profile URL: https://github.com/NLRWindSystems
GitHub Events
Total
- Pull request event: 1
- Issue comment event: 4
- Push event: 3
- Pull request review event: 2
- Create event: 1
Last Year
- Pull request event: 1
- Issue comment event: 4
- Push event: 3
- Pull request review event: 2
- Create event: 1
Committers metadata
Last synced: 3 days ago
Total Commits: 3,821
Total Committers: 47
Avg Commits per committer: 81.298
Development Distribution Score (DDS): 0.545
Commits in past year: 447
Committers in past year: 8
Avg Commits per committer in past year: 55.875
Development Distribution Score (DDS) in past year: 0.557
| Name | Commits | |
|---|---|---|
| Garrett Barter | g****r@n****v | 1739 |
| pibo | p****i@g****m | 934 |
| John Jasa | j****1@g****m | 352 |
| Alicia Key | a****7 | 178 |
| Nikhar Abbas | n****s@c****u | 120 |
| Evan Gaertner | e****r@g****m | 89 |
| Katherine Dykes | k****s@n****v | 73 |
| dzalkind | d****d@n****v | 69 |
| yqliaohk | y****o@u****u | 55 |
| Andrew Ning | a****g@n****v | 43 |
| Cory Frontin | c****n@n****v | 24 |
| kilojoules | j****8@h****u | 23 |
| Hammond, Rob | 1****2 | 21 |
| unknown | k****s@k****v | 17 |
| faisal-bhuiyan | f****n@g****m | 8 |
| Taylor Parsons | t****s@n****v | 6 |
| Mayank Chetan | m****n@g****m | 6 |
| George Scott | g****t@n****v | 5 |
| Peter | p****f@n****v | 5 |
| kevybear | k****u@b****u | 5 |
| Jake Nunemaker | j****r@g****m | 4 |
| minusfivethirds | r****g@g****m | 3 |
| Pietro Bortolotti | p****o@e****v | 3 |
| Liao | y****o@y****v | 3 |
| Frederik Zahle | f****a@l****l | 3 |
| Bortolotti | p****o@n****v | 3 |
| badeshiben | b****n@g****m | 2 |
| Evan Gaertner | e****e@e****v | 2 |
| Bortolotti | p****o@p****v | 2 |
| Frederik Zahle | f****e@g****m | 2 |
| and 17 more... | ||
Committer domains:
- nrel.gov: 12
- el2.ib0.cm.hpc.nrel.gov: 3
- el1.ib0.cm.hpc.nrel.gov: 2
- el3.ib0.cm.hpc.nrel.gov: 2
- calculquebec.ca: 1
- kdykes-20160s.home: 1
- r5i1n32.ib0.cm.hpc.nrel.gov: 1
- localhost.localdomain: 1
- vt.edu: 1
- pbortolo-34724s.nrel.gov: 1
- yliao-39588s.nrel.gov: 1
- berkeley.edu: 1
- kdykes-22302s.nrel.gov: 1
- humboldt.edu: 1
- umich.edu: 1
- colorado.edu: 1
Issue and Pull Request metadata
Last synced: 19 days ago
Total issues: 0
Total pull requests: 0
Average time to close issues: N/A
Average time to close pull requests: N/A
Total issue authors: 0
Total pull request authors: 0
Average comments per issue: 0
Average comments per pull request: 0
Merged pull request: 0
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
Top Pull Request Authors
Top Issue Labels
Top Pull Request Labels
Dependencies
- jsonschema *
- marmot-agents >=0.2.5
- nlopt *
- numpy *
- openmdao >=3.18
- openpyxl *
- pandas *
- pytest *
- python-benedict *
- pyyaml *
- scipy *
- simpy *
- sortedcontainers *
- statsmodels *
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/upload-artifact v3 composite
- awvwgk/setup-fortran main composite
- pypa/cibuildwheel v2.12.3 composite
- pypa/gh-action-pypi-publish v1.8.5 composite
- dearpygui *
- jsonschema *
- marmot-agents >=0.2.5
- nlopt *
- numpy *
- openmdao >=3.18
- openpyxl *
- pandas *
- pydoe2 *
- python-benedict *
- pyyaml *
- ruamel.yaml *
- scipy *
- simpy *
- sortedcontainers *
- statsmodels *
- dearpygui *
- marmot-agents *
Score: 9.009202900924588