-
Notifications
You must be signed in to change notification settings - Fork 155
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 v3.5 #726
Merged
FLORIS v3.5 #726
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
* Remove rotation in turbine locations when doing horizontal flow field slice plot * Update docstring * Denote plot_turbines as deprecated * Consolidate turbine plotting functionality * Fix isort --------- Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>
* Add concurrent to parallel computing interface * Expand docstring * Change how deprecation warning is raised * Update example to use interface variable * Fix formatting --------- Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>
* Arrange attribute declarations by shape and sort * Add missing attribute declarations * Remove unused attribute * Add comments requesting more info * Bug fix: unsort arrays
* add working example to test speedups as size grows in three dimensions * update pre-commit hooks * update example * udpate to run for just a single set of parameters * update for base timing results * add small positive changes * update runtime, boolean operations, and gamma * compartmentalize the vortex calculation * apply vortex calculation to transverse velocity * remove comments * small improvements * reformat * small improvements to crespo hernandez * add more numexpression where it counts most * add more numexpression * remove np.array around boolean arrays * add control run time for develop * remove @Profile * refactor vortex calculation * refactor characteristic wake width * refactor precalculate * slick minor speedup * jensen speedup by calculating in one fell swoop * fix type annotation * repalce filtering with where statements * remove commented out old code * switch numpy add reduce for multiple additions * unblacken solver for most changes * unblacken cumulative gauss for most changes * unblacken gauss for most changes * make exponents consistent * Maintain profiling decorators These are super useful for both memory and performance (runtime) profiling * Correct a merge conflict * update ruff settings * Fix formatting * Fix formatting * Fix formatting * Expand in-line comments for Jensen model Also removes the implementation of the model that doesn't use numexpr. This was helpful in initial development of v3, but it's no longer practical. * Revert code structure but maintain speed ups This change should be revisited. There’s good changes, especially putting the vortex calculations in functions, but it should more directly relate to the model papers * Remove redundant np.array type-casts * Remove speed test example --------- Co-authored-by: Rafael M Mudafort <rafael.mudafort@nrel.gov> Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>
* Remove unused code * Expand description of design considerations * Configure logging immediately This allows for using it during init * Update timing plots
) * Allow power interpolation values outside of range (set to zero). * updates to base class, scipy class, and SR class to handle heterogeneous inflows during yaw optimization. * Formating w ruff. * Moving warning from power() to get_turbine_powers() on FlorisInterface. * Use logging manager to handle warning. * Removing redundant WARNING label.
* Fix display equation rendering * Fix a typo --------- Co-authored-by: misi9170 <39596329+misi9170@users.noreply.github.com>
…tion) (#681) * Avoid error of negative speeds when turbines close together (in near wake). * Rough call to PJs geometric yaw code. * Hacky way to get heterogenous flow to run in SR. Needs further validations. * Allow power interpolation values outside of range (set to zero). * updates to base class, scipy class, and SR class to handle heterogeneous inflows during yaw optimization. * Formating w ruff. * Moving warning from power() to get_turbine_powers() on FlorisInterface. * Undoing bad merge. * WIP commit. * Moving plt.show() calls to the running script so that code doesnt hang unexpectedly. * Scipy version runs as expected. * PyOptSparse version now in. * Removing looping in _process_layout.py * Ruffing. * Add needed import. * Update layout optimization example with option to include geoyaw; save geoyaw angles on the layout opt object for access after optimization complete. * Minor documentation improvements/ * Ruffing fix. * Moving geometric yaw code to a new yaw optimization class. * Switching from calling layout-specific geometric yaw optimizer to a general geometric yaw optimizer. * Removing replaced geometric yaw code. * Ruffing.; * isort fixes. * Bugfix: yaw optimization with het inflows clashes with exploiting layout symmetry. * Remove unnecessary instantiation when geometric yaw not enabled. * update example 14 to show geometric yaw * WIP example. * Improved default optOptions handling. * Bug fixes and updates; handles seperate minimum yaw angle. * Ruff. * Example now clearly demonstrates interply between geoyaw and heterogeneity. * Reverting 15 example to that in develop. * Renaming example, adding to examples index. * Updating docstring. * Cleanup; improve example figure labeling. --------- Co-authored-by: misha <msinner@nrel.gov> Co-authored-by: Paul <paul.fleming@nrel.gov>
…695) * Example running, less flow visualizations. * Adding top-down and side-on flow visualizations. * Add example to docs. * Trailing edge whitespace removal. * Adding some extra comments to examples docs linking floating examples. * trailing whitespace catching me out... * More trailing whitespace" * Small update to EmG viz examples to avoid warnings when calculating shear at z=0, clean up printout.
* Address pandas FutureWarning on windrose plot Starting with pandas 2.1.0, grouping by a Categorical column raises a FutureWarning, as the value of the 'observed' flag will change in future versions of pandas. Setting it explicitly silents this warning * Update wind_rose.py * adding more 'observed=False' --------- Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>
…ut optimization (#706) * Bug fixed: updating layout when called. * Ruff * fi_subset needed updating rather than fi. * Minor import, viz bugfixes.' * Ruff. * isort...;
* Infrastructure added for optional contours. Defaults to not plotting. * Adding True flags for contour lines to most relevant examples.
* Add multi-dimensional Cp/Ct turbine support * Update Turbine to take None/[ ] values for Cp/Ct variables * Add necessary farm expansions for multidim Cp/Ct * Add multidim specific solver and wrap gauss wake model * Add multidim conditions to FlowField * Add get_turbine_powers_multidim to FlorisInterface * Add flatten_dict to required pacakges * Updating to support the full wd and ws dimensions * Updated scope of multidim functions * Adding example for multi-dimensional Cp/Ct turbines * Adding test for multi-dimensional class and functions * Add an example that uses two different wave height * Updated examples and documentation * Remove multi-dim turbines from example 18 * Updating input reference guide for multi-dimensional Cp/Ct data --------- Co-authored-by: Paul <paul.fleming@nrel.gov>
* First update of defaults and minor subsequent improvements to examples. * attrs defaults updated. * Updating defaults in test setup, which causes regression test to fail. * Updating expected output values for reg test.
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.
Major improvements
The full list of changes along with their corresponding pull request is available at the v3.5 GitHub Release and the primary changes are listed below.
Simplifications in the code leading to performance improvements
Performance Improvements and Code Simplification #494
This pull request speeds up GCH by about 25% and CC by about 18% for a 3-turbine test case. See the timing results at this comment.
Enable heterogeneous inflows in yaw optimization routines
Enable heterogeneous inflows in yaw optimization routines #678
Neither Serial Refine nor the scipy minimize routine for yaw angle optimization previously supported a heterogeneous inflow. This change addresses that.
Yaw optimization based on layout geometry
Add geometric yaw code for rough yaw optimization (in layout optimization) #681
Adds a method for yaw optimization for wake steering based only on the wind farm layout and wind direction. This method provides a very fast estimate of optimal yaw settings since it is not dependent on wake calculations.
Support multidimensional power and thrust coefficients
Feature: Add multidimensional Cp/Ct turbine definition support #711
This feature adds support for defining turbine performance as a function of an arbitrary number of external variables. This is accomplished by the user supplying Cp and Ct tables for any number of conditions. Interpolants are created for all the conditions and the interpolant nearest to the defined conditions at the time of computation is used.
Bug Fixes
New Contributors
Full Changelog: v3.4...v3.5
Release checklist: