Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
21397f8
Add a yaml to check dependencies of the repo periodically
Jan 16, 2026
5acd9c0
Merge url updates for the lab name change back into develop (#200)
genevievestarke Jan 26, 2026
a9a7dae
Merge branch 'main' into develop
genevievestarke Jan 26, 2026
1fb7d64
Clean up gitignore and consolidate examples documentation (#201)
Feb 4, 2026
5179e77
Remove unnecessary copies (#202)
Feb 4, 2026
1abae7d
Open cycle gas turbine model and thermal power plant base class (#189)
Feb 17, 2026
a66a7a7
Update python versions (#205)
Feb 23, 2026
bed2a22
[DOCS] Update installation instructions (#214)
misi9170 Feb 24, 2026
23a149c
Minor clean up (#204)
Feb 26, 2026
9db1b56
Always include `wd_mean` (#215)
Feb 27, 2026
d82271b
Finish windfarmscadapower (#196)
Feb 27, 2026
018fca3
Update electrolyzer as a dependency (#220)
genevievestarke Mar 3, 2026
35e4b5e
Fix docs python version
genevievestarke Mar 3, 2026
2cb1ef7
Reorganize component name and type (#216)
paulf81 Mar 4, 2026
aaa4ed8
Enable compatibility with `NREL-PySAM` v6 and v7 (#219)
misi9170 Mar 4, 2026
0ca13da
PyPI publishing workflow (#217)
misi9170 Mar 4, 2026
9885c44
Add initial coal plant model (#226)
genevievestarke Mar 6, 2026
56d4def
Add power playback component (#228)
paulf81 Mar 6, 2026
4ec6c31
bugfix (#233)
paulf81 Mar 11, 2026
329d5e8
check for nan (#235)
paulf81 Mar 17, 2026
c1dbb30
Feature/test nan (#223)
paulf81 Mar 17, 2026
6042b69
Specify thermal plant shutdown time initial conditions (#225)
jfrederik-nrel Mar 24, 2026
3abe70d
Multiunit thermal plants (#224)
misi9170 Mar 30, 2026
c97acc8
Update version to v2.1
genevievestarke Mar 30, 2026
a54f793
Merge branch 'develop' of https://github.com/NatLabRockies/hercules i…
genevievestarke Mar 30, 2026
37467cc
Update documentation toc to include new documentation files
genevievestarke Mar 30, 2026
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
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/" # Location of package manifests
target-branch: "develop"
schedule:
interval: "monthly"
labels:
- "package"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]
7 changes: 2 additions & 5 deletions .github/workflows/continuous-integration-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
fail-fast: False
matrix:
python-version: ["3.9", "3.10", "3.11"]
python-version: [ "3.11", "3.12", "3.13"]
os: [ubuntu-latest] #, macos-latest, windows-latest]

steps:
Expand All @@ -22,8 +22,6 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -e ".[develop]"
pip install git+https://github.com/NREL/electrolyzer.git
pip install https://github.com/NREL/SEAS/blob/v1/SEAS.tar.gz?raw=true
# - uses: pre-commit/action@v3.0.0
- name: Run ruff
run: |
Expand All @@ -42,11 +40,10 @@ jobs:
pip install pytest
pip install pytest-cov
pytest --cov=./ --cov-report=xml tests/
- name: Upload coverage to Codecov
- name: Upload coverage to Codecov
if: ${{ env.CODECOV_TOKEN }} # Don't attempt to upload if the codecov token is not configured
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
fail_ci_if_error: true

29 changes: 1 addition & 28 deletions .github/workflows/deploy-pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,38 +19,11 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.12"

- name: Install dependencies
run: |
pip install -e ".[docs]"

- name: Make copies of example docs
run: |
mkdir -vp docs/examples

cp -v examples/00_wind_farm_only/README.md docs/examples/00_wind_farm_only.md
cp -v examples/01_wind_farm_dof1_model/README.md docs/examples/01_wind_farm_dof1_model.md
cp -v examples/02_wind_farm_realistic_inflow/README.md docs/examples/02_wind_farm_realistic_inflow.md
cp -v examples/02b_wind_farm_realistic_inflow_precom_floris/README.md docs/examples/02b_wind_farm_realistic_inflow_precom_floris.md
cp -v examples/03_wind_and_solar/README.md docs/examples/03_wind_and_solar.md
cp -v examples/04_wind_and_storage/README.md docs/examples/04_wind_and_storage.md
ls -l docs/examples

- name: Debug directory structure
run: |
echo "Current directory: $(pwd)"
echo "GitHub workspace: ${{github.workspace}}"
echo "Runner workspace: ${{runner.workspace}}"
ls -la
ls -la docs/
ls -la docs/examples/

# # Build the book
# - name: Build the book
# working-directory: ${{runner.workspace}}/hercules/docs/
# run: |
# jupyter-book build .

# Build the book
- name: Build the book
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# This workflows will upload a Python Package using Twine when a release is created
# Published via GitHub Actions as a PyPI Trusted Publisher.
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
# and: https://docs.pypi.org/trusted-publishers/

name: Upload Python Package

on:
release:
types: [published]

jobs:
deploy:
environment: release-pypi
if: github.repository_owner == 'NatLabRockies'
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies and build package
run: |
python -m pip install --upgrade pip
pip install build twine
python -m build
twine check --strict dist/*
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: True
142 changes: 89 additions & 53 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,78 +1,114 @@
# Gitignore file
# =============================================================================
# Python
# =============================================================================
*.pyc
*.log
*.egg-info
data.db
__pycache__/
*.egg-info/
*.python-version
*.DS_Store
*.conda
*.sqlite
slices

# macOS files
# =============================================================================
# macOS
# =============================================================================
.DS_Store
__MACOSX/

# ide settings and files
.idea
.vscode
# =============================================================================
# IDE/Editor Settings
# =============================================================================
.idea/
.vscode/
.cursor/rules/

# Some c++ stuff
a.out
*.plist
test_client.dSYM
# =============================================================================
# Jupyter Notebooks
# =============================================================================
*checkpoint.ipynb
hercules/sampling00000.nc
hercules/front_end.db
hercules/control_center.db
hercules/test_client_cpp/test_client
hercules/df_flow.p
hercules/flow_data.p

t_*.txt
hercules/sample_copy.nc
hercules/t_0*
hercules/local_amr_wind_demo/sample_copy.nc
*.nbconvert.ipynb
.ipynb_checkpoints/

#Ignore csv files
# =============================================================================
# Data Files (large/generated)
# =============================================================================
# CSV files (except test inputs)
*.csv
!tests/test_inputs/*.csv
!example_case_folders/00_wind_farm_only/inputs/floris_standin_data.csv
!example_case_folders/00_wind_farm_only/inputs/wind_power_reference_data.csv

# h5 files
# Binary data formats
*.h5
*.hdf5
*.feather
*.ftr
*.parquet

# Larger wind input file
wind_resource_rex
# Pickle files (generated input data)
*.p
*.pkl

# Wind input pickle files
wind_input.p
# Large wind resource data
wind_resource_rex/

# Solar input pickle files
solar_input.p
# =============================================================================
# Hercules Simulation Outputs
# =============================================================================
# Output directories contain generated results
outputs/

# Intermediate notebook files
*.nbconvert.ipynb
*.ipynb_checkpoints
# Log files (generated during simulation)
*.log

# Some output files to ignore
# H_dict echo files (simulation state dumps)
*.echo

# =============================================================================
# Documentation Build Artifacts
# =============================================================================
docs/_build/

# =============================================================================
# Testing/CI Artifacts
# =============================================================================
.pytest_cache/
.ruff_cache/

# =============================================================================
# LEGACY HERCULES - May remove in future cleanup
# =============================================================================
# Old example folder path (renamed to examples/)
!example_case_folders/00_wind_farm_only/inputs/floris_standin_data.csv
!example_case_folders/00_wind_farm_only/inputs/wind_power_reference_data.csv

# C++ build artifacts (from old AMR-Wind integration)
a.out
*.plist
test_client.dSYM
hercules/test_client_cpp/test_client

# NetCDF files (from old AMR-Wind demos)
hercules/sampling00000.nc
hercules/sample_copy.nc
hercules/local_amr_wind_demo/sample_copy.nc

# Database files (from old front-end/control center)
data.db
*.sqlite
*.conda
hercules/front_end.db
hercules/control_center.db

# Old data/flow pickle files
hercules/df_flow.p
hercules/flow_data.p

# AMR-Wind time step outputs
t_*.txt
hercules/t_0*
t_00*
slices

# Old log file patterns (now covered by *.log)
logdummy
loghelics
loghercules*
logstandin*
logfloris*
*echo
*out-example.json

.vscode/*

# Doc builds
docs/_build
docs/examples

.cursor/rules/
*.feather
*.ftr
*.parquet
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ authors:
- family-names: NLR
given-names:
title: "HERCULES"
version: 2
version: 2.1
url: https://github.com/NatLabRockies/hercules

date-released: 2025-12-31
date-released: 2026-03-30
71 changes: 71 additions & 0 deletions docs/_static/thermal_startup_ramp.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading