"""Solve one scenario of the two-class model. Usage: python3 scripts/20_solve_scenario.py [T] Scenario definitions live in src/agi_ge/scenarios.py; results go to results/scenarios/.""" import json import os import sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) from agi_ge.scenarios import SCENARIOS # noqa: E402 from agi_ge.solve import solve_scenario # noqa: E402 name = sys.argv[1] T = int(sys.argv[2]) if len(sys.argv) > 2 else 275 sc = SCENARIOS[name] outdir = os.path.join(os.path.dirname(__file__), "..", "results", "scenarios") p, m, u, P, out = solve_scenario(name, overrides=sc.get("overrides"), param_overrides=sc.get("params"), T=T, outdir=outdir, **sc.get("solver", {})) print(json.dumps({k: out[k] for k in ("name", "converged", "final_res", "seconds", "horizon_check")}, indent=1, default=float))