Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add an interface option for turbine operation model definitions (#770)
* add power to 5MW model, matches https://github.com/NREL/floris/blob/main/floris/turbine_library/nrel_5MW.yaml with extension for before cut in and after cut out. Rename thrust field. * Removing Cp interp and replacing with direct power interp; updating thrust_coefficient key name. * Convert to W for power_interp; remove ref air density from power calc (tests need updating yet). * Minor updates for plot axes---contains temporary limitation to NREL 5MW turbine only, will remove prior to merge into v4 branch. * Updating 15mw based on https://github.com/IEAWindTask37/IEA-15-240-RWT/blob/master/Documentation/IEA-15-240-RWT_tabular.xlsx * 10mw updated. * Updating turbine curve conversion utility and example. * Utility for converting from v3 turbine models to v4. * Ruff and isort. * Changing names to check out v3 versions. * Renaming again... * Converting old models over. * So that tests run, using v4 5MW. * Updates to test_build_turbine_dict. * Updating conftest, test_power() to reflect absolute power in turbine yaml. * air density removed from power() calls in reg tests. * Reinstating accidentally overwritten file. * Convert from `ref_density_cp_ct` to `ref_air_density`. * `ref_tilt` replaces `ref_tilt_cp_ct` * Ruff, isort; remove AIR_DENSITY from turbine_unit_test.test_power(). * Clearing empty lines. * Check for smoothness; not yet passing `smooth enough` test. * Tests passing for smoothness. * Converter prints warning if nonsmooth; added handling for no R4. * Update build_turbine_dict test for clarity and simplicity. Ruff, isort. * Bugfixes in example after semantic changes to build_turbine_dict. * Moving turbine into its own simulation directory; updating names of interp functions. * SimpleTurbine power module. * Turbine submodule pieces. * Added thrust coefficient to SimpleTurbine. * Adding extra arguments to Ct(), power(), and axial_induction(). * Updating turbine_unit_test for new layout. * Add handling for different model types. * cosine loss model option, but currently matches simple. * Moving velocities to own file (may need renaming). * Temp; runs, still todo items for power(). * Now passing all the way through the power calculation. * Updating thrust model to match power. * Update imports in tests. * Passing arguments as kwargs. * cosine loss model; move various turbine parameters inside power_thrust_table; call power() and thrust_coefficient() with kwargs. * Update tests calling power; turbine model structure. * emg reg tests failing.' * Jensen reg passes. * TB reg tests pass. * CC, gauss reg tests good. * Fix bug in how tilt_angles are passed through. * Turbine building utilities updated. * removing unnecessary attributes from Farm class.' * Updated axial_induction() keywords for consistency. * Note to return to axial_induction() model. * rename rotor_effective_velocity.py * Move rotor velocity tests to individual module. * tests for air density correction. * add base class for turbine models; add tests. * init test passes. * test_power, test_Ct now passing. * axial_induction passes. * Remove ref_tilt argument from Ct() * isort, ruff. * Remove multidim utilities and their imports. * working through example 30 to go through full multidim example. * example 30 now runs. Can likely remove commented out code, but will leave for the time being and clean up later. * 31 now runs. * isort. * End of file. * Moving multidim functionality onto turbine.py * Remove turbine_multi_dim.py * Missed a reference... * ruff, isort. * removing unneeded TODOs. * moving turbine utilities. * Move multidim selector to utilities, model map to top of turbine.py * Rename power_interp power_function throughout. * comments for turbine.py * Adding descriptions for the turbine submodels. * fix end of file. * Disclaimers and copyrights. * removing sorting of uneeded properties from full_flow solvers. * Inherit from correct base class. * Turbine library updates for examples 17 and 18. * Example 24. * ex. 33. * ruff. * Return nrel_5MW.yaml to converted (rather than updated) version. * Remove unused code * Remove extra lines at end of file * Move rotor velocity module up to floris.simulation * Consolidate turbine models into one module * Move turbine preprocessing to floris.turbine_library * Fix line length linting and isort errors * Update API for turbine previewer * Prevent test file from being exported * Bug fix in example * Remove duplicate code * Rename Farm setup function to reflect the data * Move axial_induction functionality to submodels; propagate changes. * add axial induction model tests. * Rename Ct functions throughout. * Update fi method call. * Line length. * Missed the constructors. * Rename to . * Remove unused library in dependencies This was previously used for the multidimension turbine, but it has since been consolidated and flatten_dict isn't used * Remove unused import * Fix incorrect type hints --------- Co-authored-by: Rafael M Mudafort <[email protected]>
- Loading branch information