Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
21ea863
minor clean-ups to floris.py (#419)
elenya-grant Jan 16, 2025
6839320
feature: option to load wind and solar resource data from HPC (#414)
elenya-grant Jan 22, 2025
8499a7d
Bugfix: Load following heuristic method for variable load signals onl…
genevievestarke Jan 24, 2025
ef569fc
feature: option to initialize site_info with resource data (#415)
elenya-grant Feb 4, 2025
4f188e4
Feature add: alternative to define site boundaries (#426)
elenya-grant Feb 12, 2025
35a962c
Remove Wave Resource Deprecated Methods (#430)
kbrunik Feb 14, 2025
2e7157b
PySAM 6.0.1 (#425)
kbrunik Feb 18, 2025
38552ed
Feature add: option to adjust air density for site elevation (#427)
elenya-grant Feb 19, 2025
b37e9b0
Intermediate: update to wind layout and floris functions (1/2) (#429)
elenya-grant Feb 20, 2025
319d426
Feature add: integrated wind layout methods when using Floris (2/2) (…
elenya-grant Feb 21, 2025
d6dcb57
Wind Layout Clean-up (#433)
elenya-grant Feb 22, 2025
ea461be
Missed load (#432)
jaredthomas68 Mar 6, 2025
a9543a3
MHK Tidal Plant (#444)
kbrunik Mar 7, 2025
400911b
Integrate Tidal into Hybrid Simulation (#446)
kbrunik Mar 12, 2025
74f8792
Add Tidal Dispatch (#448)
kbrunik Mar 12, 2025
017d577
Feature add: integration with turbine-models library for wind simulat…
elenya-grant Mar 19, 2025
21ccf91
Distributed wind-hybrid examples (#452)
elenya-grant Mar 21, 2025
7e9e95f
Update README.md
johnjasa Mar 21, 2025
1597faf
Version bump for 3.2.0 release (#453)
johnjasa Mar 21, 2025
47e4518
Merge branch 'main' into develop
johnjasa Mar 21, 2025
2eb44ee
Update doc book deployment
johnjasa Mar 21, 2025
c935fd6
Merge branch 'main' into develop
johnjasa Mar 21, 2025
c7fa08a
Update wind tests for floats (#460)
johnjasa Mar 26, 2025
d2e0e52
Hotfix for GreenHEART plotting (#462)
johnjasa Mar 27, 2025
9372208
Loosen turbine rating check (#464)
johnjasa Mar 27, 2025
988a25d
Added coke_supply_EI to greet_data.py parsing and greet_2023_processe…
dakotaramos Mar 28, 2025
5f902c3
Update pyproject.toml
johnjasa Apr 1, 2025
270d6f1
Update README.md to not specify `coin-or-cbc` version. (#470)
jaredthomas68 Apr 2, 2025
5981e14
Bug-fix: WindPlant update for checking inputs (#469)
elenya-grant Apr 7, 2025
219437b
Feature add: Download wind resource for Alaska (#461)
elenya-grant Apr 15, 2025
ca3b85e
Feature add: Download wind data from Bias-Corrected HRRR Dataset (#474)
genevievestarke Apr 17, 2025
bbe06cb
Updates for pySAM 7.0.0 (#477)
johnjasa Apr 18, 2025
4beff84
Add long duration energy storage (LDES) (#471)
jaredthomas68 Apr 22, 2025
b3f0031
Feature add: Generic Plant (#472)
elenya-grant Apr 25, 2025
fa5915f
Bugfix for flicker mismatch (#479)
johnjasa Apr 25, 2025
37358e5
Update LDES Example (#480)
kbrunik Apr 30, 2025
ade31db
Bumped version and changelog (#482)
johnjasa Apr 30, 2025
3d22b1d
Merge branch 'main' into develop
johnjasa May 1, 2025
5277c20
adding WETO stack blurb to readme (#485)
gbarter May 12, 2025
b8972bb
Bumping Python version (#488)
johnjasa May 28, 2025
85dc876
Bring in function from H2I to copy cost info across both input method…
jaredthomas68 Jun 4, 2025
64d4c62
Doc URL fix (#493)
johnjasa Jun 26, 2025
ea79be6
Bugfix: user provided turbine in PySAM format (#494)
elenya-grant Jul 6, 2025
bab5e02
Remove tidal_resource from Tidal Model (#495)
kbrunik Jul 24, 2025
3426b8e
add test for load following heuristic dispatch (#497)
bayc Aug 29, 2025
ab2cd19
Pin timezonefinder, consolidate utilities, rename MHKConfig, removed …
johnjasa Oct 22, 2025
e0250ee
Bumping version for release (#504)
johnjasa Nov 6, 2025
6039ec9
Solar api fix (#502)
jmartin4nrel Nov 6, 2025
a95c7d2
updated hopp logger (#501)
elenya-grant Nov 6, 2025
7fd29a6
Rebasing dev and main (#505)
johnjasa Nov 6, 2025
bf4acd8
Merging
johnjasa Nov 6, 2025
663b2cb
Pinning jupyterbook <2 (#508)
johnjasa Dec 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ the problem. All code and full tracebacks should be properly markdown formatted.
<!-- Add your information here. -->
- OS: <macOS 12.4>
<!-- e.g. Ubuntu 20.04 or macOS 10.12 -->
- Python version: <3.10.4>
- Python version: <3.11.1>
<!-- All OS: `python --version`-->
- HOPP version: <0.1.1>
<!--
Expand All @@ -66,7 +66,7 @@ the problem. All code and full tracebacks should be properly markdown formatted.
### Relevant library versions
<!--
Use `pip freeze` to gather the relevant versions, and use the markdown table formatting as
demonstrated below to replacing all relavant packages and their versions.
demonstrated below to replacing all relevant packages and their versions.
-->

| Package | Version |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
shell: bash -el {0}
strategy:
matrix:
python-version: ["3.10", "3.11"]
python-version: ["3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v4
Expand Down
24 changes: 0 additions & 24 deletions .github/workflows/conda_build.yml

This file was deleted.

12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,19 @@ As part of NREL's [Hybrid Energy Systems Research](https://www.nrel.gov/wind/hyb
software assesses optimal designs for the deployment of distributed, commercial, and utility-scale hybrid energy plants, particularly considering wind,
solar and storage.


## Part of the WETO Stack

HOPP is primarily developed with the support of the U.S. Department of Energy and is part of the [WETO Software Stack](https://nrel.github.io/WETOStack). For more information and other integrated modeling software, see:
- [Portfolio Overview](https://nrel.github.io/WETOStack/portfolio_analysis/overview.html)
- [Entry Guide](https://nrel.github.io/WETOStack/_static/entry_guide/index.html)
- [Techno-Economic Modeling Workshop](https://nrel.github.io/WETOStack/workshops/user_workshops_2024.html#tea-and-cost-modeling)
- [Systems Engineering Workshop](https://nrel.github.io/WETOStack/workshops/user_workshops_2024.html#systems-engineering)


## Software requirements

- Python version 3.10, and 3.11 only
- Python version 3.11 or higher

## Installing from Package Repositories

Expand Down
42 changes: 42 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,46 @@
# Release Notes
## Unreleased
* Add `overwrite_fin_values` from H2Integrate to sync cost input methods
* Bump minimum NREL-PySAM version to 7.0.0
* Clarify that the `nominal_discount_rate` method of the `CustomFinancialModel` uses the Fisher equation
* Bug-fix in `WindPlant` for handling model_input_file for PySAM simulations.
* Remove `tidal_resource` as a required input to the tidal model because it's no longer required in the SSC model ([NREL/SSC PR #1305](https://github.com/NREL/ssc/pull/1305))
* Add load following heuristic dispatch test
* Consolidated utilities, renamed MHKConfig to MHKWaveConfig
* Updated solar resource download to use GOES Aggregated PSM v4 download

## Version 3.3.0, April 30, 2025

* Added GenericPlant model ([PR #472](https://github.com/NREL/HOPP/pull/472)) which may be used to:
- simulate grid and battery performance without resimulating generation of other technologies
- represent the physics-based performance of a generation technology that is not included in HOPP
* Loosened strictness of comparison for wind turbine config checking and added tests
* Loosened strictness of comparison for wind turbine hub-height and wind resource hub-height
* Updated workflow for specifying wind turbine parameters without specifying a turbine name with PySAM.
* Added ability to download wind resource data from WTK-LED for Alaska ([PR #461](https://github.com/NREL/HOPP/pull/461))
* Added ability to download wind resource data from BC-HRRR CONUS 60-minute (NOAA + NREL) for 2015-2023 ([PR #474](https://github.com/NREL/HOPP/pull/474))
* Updated HOPP for pySAM 7.0.0 release ([PR #477](https://github.com/NREL/HOPP/pull/477))
* Add long-duration energy storage (LDES) ([PR #471](https://github.com/NREL/HOPP/pull/471))
* Bugfix for cycle counting in the minimum operating cost objective function - no longer throws an error
* Bugfix for flicker mismatch; cases with a single `Point` now correctly work



## Version 3.3.0, April 30, 2025

* Added GenericPlant model ([PR #472](https://github.com/NREL/HOPP/pull/472)) which may be used to:
- simulate grid and battery performance without resimulating generation of other technologies
- represent the physics-based performance of a generation technology that is not included in HOPP
* Loosened strictness of comparison for wind turbine config checking and added tests
* Loosened strictness of comparison for wind turbine hub-height and wind resource hub-height
* Updated workflow for specifying wind turbine parameters without specifying a turbine name with PySAM.
* Added ability to download wind resource data from WTK-LED for Alaska ([PR #461](https://github.com/NREL/HOPP/pull/461))
* Added ability to download wind resource data from BC-HRRR CONUS 60-minute (NOAA + NREL) for 2015-2023 ([PR #474](https://github.com/NREL/HOPP/pull/474))
* Updated HOPP for pySAM 7.0.0 release ([PR #477](https://github.com/NREL/HOPP/pull/477))
* Add long-duration energy storage (LDES) ([PR #471](https://github.com/NREL/HOPP/pull/471))
* Bugfix for cycle counting in the minimum operating cost objective function - no longer throws an error
* Bugfix for flicker mismatch; cases with a single `Point` now correctly work



## Version 3.3.0, April 30, 2025
Expand Down
57 changes: 0 additions & 57 deletions conda.recipe/meta.yaml

This file was deleted.

10 changes: 0 additions & 10 deletions conda_build.sh

This file was deleted.

2 changes: 1 addition & 1 deletion docs/api/hopp_interface.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# HOPP Simulation Interface

This class is the main interaction point for HOPP simulations. See [Examples](https://github.com/NREL/HOPP/tree/main/examples/workshop) for in-depth notebooks and configuration files.
This class is the main interaction point for HOPP simulations. See [Examples](https://github.com/NREL/HOPP/tree/main/examples) for in-depth notebooks and configuration files.

```{eval-rst}
.. currentmodule:: hopp.simulation.hopp_interface
Expand Down
2 changes: 1 addition & 1 deletion docs/api/technology/mhk_wave_plant.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ MHK Wave Generator class
## Wave Plant Configuration

```{eval-rst}
.. autoclass:: hopp.simulation.technologies.wave.mhk_wave_plant.MHKConfig
.. autoclass:: hopp.simulation.technologies.wave.mhk_wave_plant.MHKWaveConfig
:members:
:undoc-members:
```
Expand Down
19 changes: 13 additions & 6 deletions examples/10-tidal-battery.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,17 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/Users/kbrunik/github/HOPP/examples/log/hybrid_systems_2025-07-23T14.55.37.333918.log\n"
]
}
],
"source": [
"from hopp.simulation import HoppInterface"
]
Expand All @@ -35,8 +43,7 @@
"\n",
"For the site information, the tidal resource data **must be pre-loaded** in the format given in the `Tidal_resource_timeseries.csv`.\n",
"\n",
"The tidal technology configuration requires the device rating (kw), power curve of tidal energy device as function of stream speeds (kW), and number of devices. Additionally there's a variable called `tidal_resource`, which is required for model instantiation but doesn't impact a timeseries simulation.\n",
"\n",
"The tidal technology configuration requires the device rating (kw), power curve of tidal energy device as function of stream speeds (kW), and number of devices.\n",
"Note that the tidal model doesn't come with a default financial model. To address this, you must establish the `CustomFinancialModel` from HOPP.\n",
"\n",
"The `default_fin_config` contains all of the necessary parameters for the financial calculations.\n",
Expand All @@ -46,7 +53,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -144,7 +151,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "pysam6",
"display_name": "pysam7",
"language": "python",
"name": "python3"
},
Expand Down
70 changes: 35 additions & 35 deletions examples/inputs/10-tidal-battery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,41 +72,41 @@ technologies:
# this is a dummy resource profile and does not
# impact simulation when using timeseries data
# TODO: Remove once PySAM Pypi updates
tidal_resource:
- [0.000000, 0.009000]
- [0.100000, 0.031000]
- [0.200000, 0.042000]
- [0.300000, 0.044000]
- [0.400000, 0.048000]
- [0.500000, 0.049000]
- [0.600000, 0.053000]
- [0.700000, 0.051000]
- [0.800000, 0.052000]
- [0.900000, 0.056000]
- [1.000000, 0.050000]
- [1.100000, 0.052000]
- [1.200000, 0.050000]
- [1.300000, 0.048000]
- [1.400000, 0.047000]
- [1.500000, 0.043000]
- [1.600000, 0.042000]
- [1.700000, 0.040000]
- [1.800000, 0.034000]
- [1.900000, 0.031000]
- [2.000000, 0.026000]
- [2.100000, 0.023000]
- [2.200000, 0.020000]
- [2.300000, 0.016000]
- [2.400000, 0.013000]
- [2.500000, 0.011000]
- [2.600000, 0.007000]
- [2.700000, 0.005000]
- [2.800000, 0.004000]
- [2.900000, 0.002000]
- [3.000000, 0.001000]
- [3.100000, 0.000000]
- [3.200000, 0.000000]
- [3.300000, 0.000000]
# tidal_resource:
# - [0.000000, 0.009000]
# - [0.100000, 0.031000]
# - [0.200000, 0.042000]
# - [0.300000, 0.044000]
# - [0.400000, 0.048000]
# - [0.500000, 0.049000]
# - [0.600000, 0.053000]
# - [0.700000, 0.051000]
# - [0.800000, 0.052000]
# - [0.900000, 0.056000]
# - [1.000000, 0.050000]
# - [1.100000, 0.052000]
# - [1.200000, 0.050000]
# - [1.300000, 0.048000]
# - [1.400000, 0.047000]
# - [1.500000, 0.043000]
# - [1.600000, 0.042000]
# - [1.700000, 0.040000]
# - [1.800000, 0.034000]
# - [1.900000, 0.031000]
# - [2.000000, 0.026000]
# - [2.100000, 0.023000]
# - [2.200000, 0.020000]
# - [2.300000, 0.016000]
# - [2.400000, 0.013000]
# - [2.500000, 0.011000]
# - [2.600000, 0.007000]
# - [2.700000, 0.005000]
# - [2.800000, 0.004000]
# - [2.900000, 0.002000]
# - [3.000000, 0.001000]
# - [3.100000, 0.000000]
# - [3.200000, 0.000000]
# - [3.300000, 0.000000]
fin_model: !include default_fin_config.yaml
battery:
system_capacity_kwh: 80000
Expand Down
1 change: 1 addition & 0 deletions examples/legacy/analysis/main_usa_new.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

from hopp.tools.analysis import create_cost_calculator
from hopp.tools.resource import *
from hopp.tools.resource.resource_tools import get_offset
from hopp import ROOT_DIR


Expand Down
1 change: 1 addition & 0 deletions examples/legacy/analysis/multi_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
from hopp.simulation.hybrid_simulation import HybridSimulation
from hopp.tools.analysis import create_cost_calculator
from hopp.tools.resource import *
from hopp.tools.resource.resource_tools import get_offset
from hopp.tools.resource.resource_loader import site_details_creator
from hopp import ROOT_DIR
resource_dir = ROOT_DIR / "simulation" / "resource_files"
Expand Down
1 change: 1 addition & 0 deletions examples/legacy/analysis/single_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from hopp.simulation.hybrid_simulation import HybridSimulation
from hopp.tools.analysis import create_cost_calculator
from hopp.tools.resource import *
from hopp.tools.resource.resource_tools import get_offset
from hopp import ROOT_DIR

resource_dir = ROOT_DIR / "simulation" / "resource_files"
Expand Down
2 changes: 1 addition & 1 deletion hopp/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from pathlib import Path


__version__ = "3.3.0"
__version__ = "3.4.0"

ROOT_DIR = Path(__file__).resolve().parent

Expand Down
Loading
Loading