Add v_storage_init variable for non-seasonal storage#275
Add v_storage_init variable for non-seasonal storage#275SutubraResearch wants to merge 2 commits intoTemoaProject:unstablefrom
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
7fd1576 to
43ef84c
Compare
Introduce a hub variable (v_storage_init) at the daily cycle wrap point that replaces v_storage_level on the LHS at d_last. A tie-back constraint (SL[d_last] = SI) keeps the formulation equivalent to a closed cycle. Empirically this improved barrier solve time ~25% on a 16-region national model, though the structural reason is not fully understood.
43ef84c to
d4c7cbf
Compare
Summary
Rewrite storage energy balance from a circular formulation to an open-chain topology:
storage_energy_constraintso each timeslice's storage level depends on the previous one starting fromv_storage_init, rather than looping the last timeslice back to the first.v_storage_level[d_last]equal tov_storage_initfor non-seasonal storage, ensuring storage begins and ends each period at the same level.The circular formulation created a dense dependency cycle in the constraint matrix that increased barrier factorization time. The open-chain topology provides equivalent results while improving solver performance on models with many storage technologies.
Files changed
temoa/components/storage.pytemoa/core/model.pyv_storage_initvariable declaration, constraint wiringtests/legacy_test_values.pytests/test_storage.pyTest plan