Skip to content
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
merged 17 commits into from
Oct 26, 2023
Merged

FLORIS v3.5 #726

merged 17 commits into from
Oct 26, 2023

Conversation

rafmudaf
Copy link
Collaborator

@rafmudaf rafmudaf commented Oct 26, 2023

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.

Bug Fixes

New Contributors

Full Changelog: v3.4...v3.5

Release checklist:

  • Update the version in
    • README.md
    • floris/VERSION
  • Verify docs builds correctly
  • Create a tag in the NREL/FLORIS repository

Bartdoekemeijer and others added 16 commits June 1, 2023 11:55
* 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.
@rafmudaf rafmudaf self-assigned this Oct 26, 2023
@rafmudaf rafmudaf requested review from misi9170, bayc and paulf81 and removed request for misi9170 October 26, 2023 21:32
@rafmudaf rafmudaf merged commit 31fe1b6 into main Oct 26, 2023
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants