wayve#
WAYVE is an open-source code Python framework for the atmospheric perturbation model (APM).
The APM is an atmospheric perturbation model developed to simulate the interaction between wind farms and the atmosphere. It focuses on the generation and feedback effects of gravity waves. This code implements the model described in the following papers:
Allaerts D., Meyers J. Sensitivity and feedback of wind-farm-induced gravity waves. Journal of Fluid Mechanics, 2019. DOI
Devesse K., Lanzilao L., & Meyers J. A meso-micro atmospheric perturbation model for wind farm blockage. Preprint, 2023. DOI
Devesse K., Stipa S., Brinkerhoff J., Allaerts D., & Meyers J. Comparing methods for coupling wake models to an atmospheric perturbation model in WAYVE. Journal of Physics: Conference Series, 2024. DOI
Configuration Options#
WAYVE-specific options are configured in the analysis.yaml file:
APM Grid Settings:
apm_grid:
Lx: 1.e6 # Grid size in x-direction [m]
Ly: 1.e6 # Grid size in y-direction [m]
dx: 500 # Grid spacing [m]
L_filter: 1.e3 # Spatial filter length [m]
Layer Description:
layers_description:
farm_layer_height: 238. # Lower layer height [m]
number_of_fa_layers: 1 # Number of free atmosphere layers (1 or more)
Wake Model Coupling:
wm_coupling:
method: "PB" # Options: PB (Pressure-Based), VM (Velocity Matching), US (Upstream)
settings: # Method-specific settings
alpha: 1.0 # VM method parameter
distance: 500 # US method parameter [m]
subgrid:
include_subgrid: false
D_to_dx: 0.5
Additional APM Terms:
APM_additional_terms:
momentum_entrainment:
mfp_type: "constant_flux" # Options: None, constant_flux
apm_mfp_settings:
a_mfp: 0.120 # Momentum flux coefficient
d_mfp: 27.80 # Distance parameter
apm_disp_stresses:
ds_type: subgrid # Dispersive stresses type
Wake Model Settings:
wake_tool: wayve # Options: wayve, foxes
wind_deficit_model:
name: Bastankhah2014
wake_expansion_coefficient:
k_a: 0.0
k_b: 0.04
ceps: 0.2
Input Requirements#
WAYVE requires atmospheric profile data for proper ABL initialization:
Hub-height time series (minimal):
Wind speed and direction at hub height
Optional: LMO (Monin-Obukhov length), friction velocity, roughness height
Vertical profiles (recommended for stratified flows):
Wind speed and direction profiles
Potential temperature profile
Turbulence intensity profile
Optional: TKE and dissipation profiles
Capping inversion data (for gravity waves):
ABL height
Inversion strength (dtheta)
Inversion depth (dH)
Free atmosphere lapse rate
API Reference#
Usage#
Command Line:
wifa_wayve path/to/system.yaml
Python:
from wifa.wayve_api import run_wayve
# Run WAYVE simulation
run_wayve("path/to/system.yaml", output_dir="results")
- wifa.wayve_api.run_wayve(yamlFile, output_dir='output', debug_mode=False)#
Run a WAYVE (APM) simulation from WindIO input.
- Parameters:
Example:
from wifa.wayve_api import run_wayve run_wayve("system.yaml", output_dir="wayve_results")
Outputs#
turbine_data.nc: Power and rotor effective velocity per turbineflow_field.nc: Wind speed and direction on specified grid (if requested)