Skip to content

Extract the stage loop into openTEPES_ProblemSolvingStageIter#129

Open
erikfilias wants to merge 3 commits into
masterfrom
refactor/extract-stage-iter
Open

Extract the stage loop into openTEPES_ProblemSolvingStageIter#129
erikfilias wants to merge 3 commits into
masterfrom
refactor/extract-stage-iter

Conversation

@erikfilias
Copy link
Copy Markdown
Contributor

Changes

Move the per-stage solve loop out of openTEPES_run (in openTEPES.py) into a new module openTEPES_ProblemSolvingStageIter.py, exposing it as a function StageIterativeSolving.

openTEPES.py still builds the objective and the investment constraints, sets First_st / Last_st and the empty pDuals, and then calls the new driver. The driver holds the (period, scenario, stage) loop — which activates one stage's load levels, builds that stage's operation constraints, and calls ProblemSolving — plus the post-loop work that rebuilds the full stage and load-level sets, reactivates every constraint, and restores the scenario probabilities.

Why

This continues the solver-layer split that already produced …Persistent.py, …Tuning.py and …DualExtraction.py. The stage loop was the last large piece still inlined in openTEPES_run. Pulling it out gives the later re-solve and decomposition drivers a single place to call the stage loop from, and makes openTEPES_run short enough to read at a glance.

Also in this PR

  • tests/test_direct_run.py — runs every openTEPES_*.py module as a script (via runpy, with name == "main") to check that each one still imports cleanly that way, i.e. the try/except ImportError relative-import guard's fallback works.
  • Architecture diagram (doc/img/openTEPES_architecture.svg and the rendered .png) now shows openTEPES_ProblemSolvingStageIter.py as an implemented (green) box in the solver layer; resolve.py stays white as the one solver module still planned.

@erikfilias erikfilias self-assigned this Jun 5, 2026
@erikfilias erikfilias added the enhancement New feature or request label Jun 5, 2026
@erikfilias erikfilias requested a review from arght June 5, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant