Repository navigation
Conversation
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * added first cut at multi-objective stuff * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * multi-objective refactor * fix example code * black reformat * invert erroneous exclusion * improved unit testing * get rid of pyoptsparse dependencies and broaden test coverage * fixed erroneous inclusion of options * address copilot comments * address jared's requests on #153 * add the file that i renamed the wrong way --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* added viewshed and empty test component. * Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * viewshed should be done * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * restore change i didn't like --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * removed zero velocity rows from floris results * adjust values with lt one percent error due to renormalization after wind resource pdf adjustment --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * prototype stdout/stderr capturing implemented. * missed a bunch, trying again. * fix bounds manager * adjust file paths * clear ipynb * remove viz script which isn't actually involved in that pr * Apply typo suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fixed black formatting * wip logging with iterations * black reformatting * remove messy iteration debug statements * black reformat again * update optimization demo * update logging code for error handling and docs * made stdio capture optional modeling option and updated * bring floris input file generator in with logger * added case name to address @jaredthomas68's comment on #161 * cleanup some iter_count discovery and defaulting code w/ multiple returns * updated the logging docstrings * ard system fixed * fixing stuff and added some features related to the fixes * try again to overcome windows error * add teardown to fix windows file access issue * use case_name distinction to make sure the reports end up in unique places * wip try teardown to fix file access on windows * fix discovered typo, test mistake * added another necessary teardown * forgot two more * retry * black reformat... * adjust case names for better use * black reformat... * ... stupid omission --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * updated tests to check jitter * address comments from copilot * add substation test * deal with jared's comments * black reformat and adding comments jared asked for * added convenience printing to test. * final black reformatting --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * added NSGA2 to optimizer options * removed zero velocity rows from floris results * add example 06 * udpate * adjust pyproject to use dev branch * added gfortran for running on GH action runner * undo dev branching * black reformat plus added copilot-requested changes for viz utils * added forgotten file * add unit testing for nsga2 implementation * address @jaredthomas68 comments * add ard yaml --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* fix logomaker * black reformat
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * update for WISDEM/ORBIT pyrite standard value changes * fix typo --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* bring in the exclusions and their viz implications * added exclusion code * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * new gold standard test, weird failure * fixed value of the exclusion distance; still failing now on two: mysterious sign flip, sometimes... * add a boundary test case that lights up the strange error * rename and add some tests * added exclusion test even though it's in tatters * debugging * use switch instead of pad to fix boundary in/out identification. also clean up debug statements * black reformat * black reformat --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jared Thomas <jaredthomas68@gmail.com>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * update for WISDEM/ORBIT pyrite standard value changes * black v2026 reformat --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
* bring in the exclusions and their viz implications * added exclusion code * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * added eagle density code and tested it * fix filepath * improved documentation, added and tested derivatives on eagles splines * black reformat * first tranche of copilot changes * second tranche of copilot fixes * Apply suggestions from copilot code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * more consistent error messages * black reformat * new gold standard test, weird failure * fixed value of the exclusion distance; still failing now on two: mysterious sign flip, sometimes... * add a boundary test case that lights up the strange error * rename and add some tests * added exclusion test even though it's in tatters * debugging * use switch instead of pad to fix boundary in/out identification. also clean up debug statements * black reformat * black reformat * address jared comments * fix accidentally stashed and dropped changes * black reformat... * fix calling convention * black are you kidding me --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jared Thomas <jaredthomas68@gmail.com>
Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
* create house style update * update house style to actually work
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * eliminating wrongthink just kidding removed references to WISDEM repo and replaced with renamed NLRWindSystems --------- Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
* Bump version from 0.1.0-beta0 to 0.1.0-beta1 * Bump version from 0.1.0-beta1 to 0.1.0-beta2 * eliminating wrongthink just kidding removed references to WISDEM repo and replaced with renamed NLRWindSystems --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com>
Remove pad_polygon
Remove tests for no longer used `pad_polygon` function
Remove duplicate line Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update for OpenMDAO, WISDEM, and OptiWindNet updates (#187) * Migrate away from optiwindnet's EW_presolver deprecated heuristic (#185) The collection system module wraps optiwindnet's EW_presolver to warm-start the electrical network optimization. This heuristic has been deprecated in optiwindnet v0.2.2 (which shows a warning when EW_presolver is called) and will be removed in v0.3. This commit updates optiwindnet_wrap.py to use the new implementation, which uses an improved algorithm by default: optiwindnet.heuristics.constructor(). The old algorithm is still available by using additional arguments. This commit also updates the dependencies (optiwindnet >= 0.2.2) to avoid version-checking in the code. * update to work with WISDEM 4.2.6 * loosen tolerances to allow for numerical differences between systems * protect plots for testing * comment out assert in optiwindnet wrapper * prep for beta.5 --------- Co-authored-by: Cory Frontin <cory.frontin@nrel.gov> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Pietro Bortolotti <ptrbortolotti@gmail.com> Co-authored-by: Mauricio Souza de Alencar <856825+mdealencar@users.noreply.github.com> * pulls back optiwindnet until #188 is addressed. * add backpin for wisdem (openmdao) * added doe option for openmdao * explicitly pin openmdao --------- Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Pietro Bortolotti <ptrbortolotti@gmail.com> Co-authored-by: Mauricio Souza de Alencar <856825+mdealencar@users.noreply.github.com>
* update to allow for changed windIO shear specification * remove commented lines * revert jupyter notebook to develop version * move new template tests from test_floris.py to test_templates.py * run black --------- Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
optiwindnet 0.3.2 moved several names (L_from_site to optiwindnet.converting, OWNWarmupFailed to optiwindnet.types), made Solver.set_problem() take capacity and constraints as keyword-only arguments, and deprecated ModelOptions in favor of NetworkConstraints. The collection component failed on these changes, both in compute() and in the fallback after a failed warm start. The collection modeling options now accept `network_constraints` (arguments to optiwindnet's NetworkConstraints) as an alternative to the legacy `model_options`, so moving to the new form is optional for Ard users. Legacy options are translated with optiwindnet's own _constraints_from_options(), which avoids the ModelOptions deprecation warning and keeps optiwindnet's handling of `balanced`; this is a stopgap until optiwindnet 0.4 removes the legacy options. Giving both keys is an error. The constraints are built once in setup(), which also decides on the heuristic warm start from them. The dependency is pinned to optiwindnet>=0.3.2,<0.4, and a test covers the network_constraints path against the existing pyrite reference. Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
* rebuild the curtailment tools for the current state of develop. * black reformat * copilot-assisted test enhancement for the surrogate load stuff. * add warning for experimental feature
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved runtime and prediction-correctness issues affect surrogate loads, zero-frequency conditions, optional outputs, and existing import consumers.
6 open issues
Preserve lazy exports for ard.collection and ard.offshore · New Map unlimited operation to 100% surrogate demand · New Filter zero-frequency bins in setpoints and DEL weights · New Enable turbulence grid for standalone surrogate DELs · New Guard undeclared turbine output assignments · New Reject input shapes beyond (10,) or (Q, 10) · New
What changed in this PR
This beta.6 release candidate introduces experimental surrogate turbine-load prediction alongside FLORIS energy analysis and updates integrations for dependency changes.
Changes:
- Add neural-network load predictors, FLORIS curtailment support, experimental warnings, and tests.
- Update wind-resource shear handling, reference-height aliases, and OptiWindNet constraints.
- Adjust dependency requirements and reduce eager package imports.
| File | Description |
|---|---|
test/conftest.py |
Adjust temporary-directory cleanup path handling. |
test/ard/unit/farm_loads/test_surrogate_load_functions.py |
Test neural-network predictions and scaling helpers. |
test/ard/unit/farm_aero/test_templates.py |
Test reference-height aliases and conflicts. |
test/ard/unit/farm_aero/test_floris.py |
Test surrogate loads and curtailment; update shear fixtures. |
test/ard/unit/cost/test_wisdem_wrap.py |
Adopt nested shear configuration in fixtures. |
test/ard/unit/cost/test_orbit_wrap.py |
Adopt nested shear configuration in fixtures. |
test/ard/unit/collection/test_optiwindnet.py |
Test network constraints and conflicting options. |
pyproject.toml |
Update dependency bounds and OpenMDAO extras. |
ard/utils/__init__.py |
Remove the eager test-utilities import. |
ard/farm_loads/surrogate_load_functions.py |
Add experimental load predictors and scaling helpers. |
ard/farm_loads/__init__.py |
Expose surrogate-load functions. |
ard/farm_aero/templates.py |
Resolve and validate reference-height aliases. |
ard/farm_aero/floris.py |
Add surrogate-load and curtailment components; update shear parsing. |
ard/collection/optiwindnet_wrap.py |
Migrate to updated OptiWindNet constraint APIs. |
ard/api/interface.py |
Remove unused imports and simplify progress indentation. |
ard/__init__.py |
Remove eager subpackage imports. |
Review effort: Balanced
Conditionally retrieve turbine outputs based on modeling options. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Initial plan * Make mooring test imports explicit Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com>
* Initial plan * Map unlimited FLORIS setpoints to full demand Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com> * black reformat --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com> Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
* Initial plan * Mask zero-frequency FLORIS conditions Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com> * black reformat --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cfrontin <14077848+cfrontin@users.noreply.github.com> Co-authored-by: Cory Frontin <cory.frontin@nrel.gov>
Updated version number and corrected author emails.
This file contains hidden or 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
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.


This release would be primarily to get the interface for surrogate loads into the wild, with some experimental warnings enabled.
Additional upgrades and adjustments for new dependency changes are also included.