Skip to content

Grid Solutions updates - #41

Open
abdelrahman-ayad wants to merge 143 commits into
aa/grid_solutionsfrom
aa/gs_updates
Open

Grid Solutions updates#41
abdelrahman-ayad wants to merge 143 commits into
aa/grid_solutionsfrom
aa/gs_updates

Conversation

@abdelrahman-ayad

Copy link
Copy Markdown
Collaborator

Summary

Upgrades PSI/PSY dependencies, migrates the reliability pipeline from PSY2PRAS to SPI, adds HDF5-based results serialization, multi-threads PRAS, and refactors core simulation-creation code — plus a batch of correctness fixes and new tests.

Key changes

  • PSI/PSY upgrade: bump to PSI 0.37.0 and update all PSY getters/setters accordingly.
  • PSY2PRAS → SPI migration: new spi_utils.jl replaces PSY2PRAS for outage handling and PRAS system construction.
  • PRAS improvements: multi-threaded PRAS runs, higher sample count, and use of PRAS's native NEUE instead of manual load-loss calculations.
  • HDF5 results serialization: new save/load utilities to checkpoint and store simulation, investment, and market results in .h5 format.
  • Simulation structure refactors: significant rework of project, investor, and system creators to reduce redundant computation (deepcopies, repeated CSV reads, availability calculations).
  • Bug fixes: infeasible thermal cost curves, ORDC construction, load year typo, bus-name/number mixup, simulation-years default, and total load accounting.
  • New tests: HDF5 serialization, PSI compatibility, and base/system pre-checks.

Purboday Ghosh and others added 30 commits February 2, 2026 15:54
…s! before add_psy_ordc! to provide time series.
@abdelrahman-ayad
abdelrahman-ayad requested a review from purboday July 8, 2026 17:16
@abdelrahman-ayad abdelrahman-ayad self-assigned this Jul 8, 2026
@abdelrahman-ayad
abdelrahman-ayad marked this pull request as ready for review July 8, 2026 17:17
Comment thread src/resource_adequacy/ra_utils.jl Outdated
# PRAS.SystemModel is plain arrays — safe to serialize and send to a remote worker.
# generate_pras_system is in SiennaPRASInterface (SPI), not in PRASCore (PRAS).
@timeit EMIS_TIMER "attach_outage_data" attach_outage_data_from_ext!(sys)
pras_system = @timeit EMIS_TIMER "generate_pras_system" SPI.generate_pras_system(sys, PSY.Area)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abdelrahman-ayad Do you need to generate a PRAs system here? I thought we can directly pass a PSY system to PRAS.assess and SPI is called internally?

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.

2 participants