Started working on the gradient
Description
Started adding support for the gradient. Despite the huge MR there is still a long way to go.
- The pitch and rotor speed look up tables for the Floris model of the IEA 3.4 are now based on SciPy
RegularGridInterpolator. Out of bounds predictions now return 0. - The pitch and rotor speed look up tables for the PyWake model of the IEA 3.4 are now based on JAX
RegularGridInterpolator. Out of bounds predictions now return 0. - Renamed all pitch and rotor speed look up tables. They are now called
iea3_4_pitch_lutandiea3_4_rotor_speed_lut. - Since JAX requires 1 return value, the x, y and z coordinates of the grid are now stored in 1 array. This affect all functions that produce or consume a grid.
- Implemented gradient of
rotate_gridandcompute_lifetime_delusing JAX. Testing the gradient of a PyWake simulation is ongoing. - Moved pot functions from
tool_agnostictopy_wakemodule. Furthermore, now they are just module functions instead of being in an abstract class. Fix #25 (closed). Since they are meant to work with PyWake, they rely on AutoGrad. - Renamed
_preallocate_ilktn➡️ preallocate_ilktn. - The
py_wakeandtool_agnosticmodules are now largely based on JAX and AutoGrad. -
compute_lifetime_delis now based on JAX instead of xarray. -
preallocate_ilktnnow allows passing an existing numpy or JAX array, and it will simply wrap it into aDataArray.
Checklist
-
Updated changelog -
Linked relevant issues -
Updated documentation -
Updated project version
Edited by Riccardo Riva