QBtoWEIS is an extension of the WEIS (Wind Energy with Integrated Servo-control) framework that integrates the capabilities of QBlade to expand the design and optimization process for floating offshore wind turbines. By adding computationally highly optimized methods for wake aerodynamics and structural modeling, QBtoWEIS creates an even more versatile and powerful multi-fidelity toolchain, offering greater flexibility in co-design and optimization.
WEIS is a comprehensive framework developed by the National Renewable Energy Laboratory (NREL) that integrates several NREL-developed tools for the design optimization of floating offshore wind turbines. It facilitates aero-servo-hydro-elastic modeling, structural analysis, and control system design, enabling a holistic approach to floating wind turbine development.
QBlade is a versatile aero-servo-hydro-elastic simulation tool for wind turbines. It features a highly optimized lifting-line free vortex wake algorithm, which ensures efficient and accurate wake modeling. The underlying structural model implemented in QBlade supports Euler-Bernoulli, Timoshenko and Timoshenko FPM theory, all of which provide computationally efficient structural models. Notably, all three approaches can be associated with similar computational costs, allowing for flexibility in model selection without sacrificing performance.
QBtoWEIS integrates additional open-source packages to extend WEIS capabilities:
- QBlade — wind turbine aeroelastic simulation tool
- SONATA — toolbox for multidisciplinary rotor blade design, structural optimization, and aeroelastic analysis
The setup process is fully automated once you’ve cloned the repository.
-
Add the
conda-forgechannel:conda config --add channels conda-forge
-
Clone the repository:
git clone https://github.com/rbehrensdeluna/QBtoWEIS.git
QBtoWEIS uses Conda to manage dependencies and environments cleanly. We recommend installing the Miniforge3 distribution — it’s lightweight, cross-platform, and uses the community-maintained conda-forge channel by default.
If you already have Anaconda or Miniconda, you can still use them — just ensure Conda is initialized in your terminal (e.g., run conda init bash once).
Tip: Using
mambainstead ofcondacan significantly speed up environment creation. Once Miniforge is installed, you can enable it with:conda install -n base -c conda-forge mambaThen simply replace
condawithmambain the commands or installer script.
If you want to get started quickly, use the provided installer script for your operating system, located in the installation directory. This will automatically set up the environment and dependencies.
Download or clone this repository, then double-click:
Install-QBtoWEIS.bat
Or run it from the command line:
Install-QBtoWEIS.bat
Download or clone this repository, then run the shell installer:
chmod +x install_qbtoweis.sh
./install_qbtoweis.shIf you prefer to install everything manually, follow these steps:
conda config --add channels conda-forge
git clone https://github.com/rbehrensdeluna/QBtoWEIS.git
cd QBtoWEIS
conda env create --name qbweis-env -f environment.yml
conda activate qbweis-env
conda install -y petsc4py mpi4py pyoptsparse # (Mac/Linux only; Windows users may need manual mpi4py install)
pip install -e .When running QBtoWEIS in the future, activate the environment:
conda activate qbweis-env-
Download QBladeCE (v2.0.9+) → https://qblade.org/downloads/
Place it anywhere you like — we recommend using the same directory as your
QBtoWEISrepository. -
(Optional but recommended) Configure the QBlade DLL path: Open the following file in an editor:
<directory>/QBtoWEIS/weis/inputs/modeling_schema.yamlLocate the
path2qb_dllentry and update it from:default: None
to the full path of your QBlade DLL or shared object, for example:
default: C:\Users\JohnDoe\QBtoWEIS\QBladeCE_2.0.9.4\QBladeCE_2.0.9.4.dll # Windows default: /home/johndoe/QBladeEE_2.0.9.4/libQBladeEE_2.0.9.4.so.1.0.0 # Unix
-
Save the file.
-
Test your setup with an example case:
conda activate qbweis-env cd QBtoWEIS/qb_examples/00_run_test python weis_driver_oc3.py
If you experience issues creating the Conda environment (especially under WSL2), try increasing your memory allocation: 🔗 Microsoft Docs: Increase Memory and CPU Limits for WSL2