-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FLORIS v4.2 #994
Merged
FLORIS v4.2 #994
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* added turboparkgauss & double gauss wake models * Correct implementation of mirror turbines * Test case files added * isort, ruff. * Switch to relative inputs to run from PR_TurbOParkGauss directory. * Clean up rowpark example some, add comments. * Move inputs into single file for simplicity. * Second input file for RowPark. * Simplify inputs to TwinPark example. * Clean up TwinPark runscript. * Consolidate example scripts. * Consolidate input files. * Move data to subdirectory. * Add _sorted_interial_frame coordinates for viz purposes. * Consolidate single turbine example into main runscript. * Build constant CT turbine in script. * Remove inputs directory; all information now in input yamls and script. * move to examples directory. * empty lines. * Add description to example. * Fix trailing whitespace issue. * isort. * Add reg test consistent with other wake models. * Add full flow reg test. * Add unit test to compare to Nygaard results. * Add unit test. * End lines. * Move D factor outside of characteristic_wake_width calculation. * Make mirror wakes optional (but hardcoded to included) similar to EmG. * Add TODO note. * Import gaussian_function to avoid redundant code and remove unneeded functions. * Fix bug that was using np.min in place of np.minimum, which is a carry-over from turbopark.py (and persists there). * Update reg tests after np.min bugfix. * Update refs. * removed sigma_max_rel & wtg_overlapping, introduced include_mirror_wake as argument Removed sigma_max_rel, because that restriction is not needed in this implementation. Therefore also removed wtg_overlapping mask Introduced include_mirror_wake as input argument * Removed doublegauss wake model This wake model was only included to demonstrate that other wake models could be implemented. The current implementation was not complete, it had some shortcomings compared to the latest literature. Hence, removing it from this pull request. It can be introduced later in another pull request. * Remove sigma_max_rel from testing. * Minor changes to full flow solver results after removal of sigma_max_rel. * Add description and citation for new turbopark implementation. * Remove commented out code for Doublegass model. * Add comments on comparison data from Matlab * add warning recommending using turboparkgauss; leave constants hardcoded in characteristic_wake_width * remove unclear comment about original turbopark implementation mismatch.' * Fix typo. --------- Co-authored-by: misi9170 <[email protected]>
* Add wrg_reader file * Blocking in notebook to generate example wrg file * small additions * Update notebook and example wrg * Remove wrg reader file * Notebook to script * add WindResourceGrid to import * Initial implementation of WindResourceGrid * First tests of wind_resource_grid * Change to 2x3 * Update wind_resource_grid and tests * Add print out * Add print out * Add WindRoseByTurbineObject * Method to generate WindRoseByTurbine * Add tests of WindRoseByTurbine * test get_wind_rose_by_turbine * Update examples * Add a test that expected farm power hasn't changed * Start implementing expected turbine power * Update example * Update unpack * bugfix * Update expected functions * Finish example 2 * Add test for expected functions * Renumber examples * Add wrg option to layout opt * Add layout opt example * Update 001 to make clearer accelerations * Add print out feature * Add get_hetergeneous_map func * Add examples 4 and 5 * Update test * Remove echo from example * Renumber examples * Update init to new structure * Update example 001 * Delete wind_resource_grid file * Update to WindRoseWRG * Update imports and references to old class name * Update example 1 * Update example 01 * Update example 001 * Update example 1 * Floris updates layout * Fix update layout * Allow ti_table * fix call to set_layout * Update example 2 * Fix the ordering of applying layout to wind data * Roll back changes to layout opt * Update example 3 * clean up plot * back to 60 * Fix issue in upsampling limits * Update example 1 * Rename example 2 * Update example 3 * Bugfix in random search * Update layout examples * Update example wrg * Update het function * Update tests * Update example 3 * A couple of minor formatting changes. * Improve upsampling to retain coverage of original areas * Update tests * Initial upsample fixes * Upsample testing changes * clean up code * clean up tests * matching changes to wind_ti_rose * update wind_ti_rose tests * Split off get_weighted_turbine_powers function * Update test names * Fix call to equal axis * Update wind_data doc * Small update * Formatting updates. * Minor cleanup. * Remove subset_wind_speeds from WindRose and perform actions in WindRoseWRG.get_heterogeneous_wind_rose instead. * bugfix * Remove block comment * Add and test check for even spacing of wind_speeds; add note about assigned freq. --------- Co-authored-by: misi9170 <[email protected]>
* Instantiate Turbine objects only once for each different type of turbine. * Raise clear error of turbine_type is same but dictionaries do not match * Clean up comments. * Add test to check that turbine_definitions and turbine_map reflect changes as expected. * Use private attribute _turbine_definition_cache throughout. * use factory=dict on attrs attribute to avoid need to assign empty {} * Add factory=list to _turbine_types private attribute to ensure acts as expected.
…nes_max is of type int. (#984)
* Initial work on a consistent parallel FLORIS model (#977) * Copy for easier comparison and development. * temp commit to save progress. * Starting to build out new ParallelFlorisModel (name not yet fixed). * Begin building tests. * Cleanup and formatting. * Now able to use run() in parallel. * Switch to hidden _get_turbine_powers. * Add backcompatibility with existing parallel model; print timings; add powers_only option. * Example comparing timing. * Formatting fixes. * Test for return_turbine_powers_only flag. * Backcompatibility in configuration. * Appears there is no saving in calling run() twice---all overhead occurs again. * Fix type hints; default for n_wind_condition_splits; remove mistakenly committed yaw optimization function. * Tests for WindData objects; remove related comment. * Tests control setpoints (and add bugfix). Also limit number of workers for testing. * Update UncertainFlorisModel to work with new Parallel framework (#983) * Update uncertain floris model to accept par floris * Raise an error in old parallel floris model blocking passing in uncertain floris model * Add an example of parallelized uncertain floris * Expand parallel processing interface options (#985) * Update example to profile more fully. * Handling for pathos parallel processing package; comparison example to multiprocessing. * Add test for pathos interface. * Add concurrent handling. * minor doc updates. * add pathos requirement * Clean up of new ParFlorisModel class (#986) * Update example to profile more fully. * Handling for pathos parallel processing package; comparison example to multiprocessing. * Add test for pathos interface. * Add concurrent handling. * minor doc updates. * add pathos requirement * Change name to ParFlorisModel throughout. * Add deprecation warning for ParallelFlorisModel. * Add import; isort. * Update example to use ParFlorisModel. * Update tests; formatting. * Fix uncertain-parallel example; add uncertain-parallel test. * Update example docstring. * Remove temporary examples from repository. * Add examples and documentation for ParFlorisModel (#990) * Add short docstring * Minor comment change. * Add approx model to docs * A couple of rewordings and update to initial paragraph. --------- Co-authored-by: paulf81 <[email protected]>
…erence_wind_height` (#1000) * Raise warning when turbine_type updated without updating reference wind height. * Add tests related to reference wind height methods. * iea_15mw -> iea_15MW
* Visualize flows under yaw misalignment * isort fix.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
FLORIS v4.2 brings further new features to FLORIS, along with some performance enhancements and bug fixes/minor improvements
New features
Performance enhancements
Functional enhancements
Bug fixes
FlorisModel
copied intoParFlorisModel
by @misi9170 in [BUGFIX] Control setpoints and wind data set onFlorisModel
copied intoParFlorisModel
#997turbine_type
is set without settingreference_wind_height
by @misi9170 in [BUGFIX] Warn users if theturbine_type
is set without settingreference_wind_height
#1000New Contributors
Full Changelog: v4.1.1...v4.2
__ For NREL use __
Release checklist: