Repository navigation
MEME 0.1.0-alpha
Pre-releaseMEME 0.1.0-alpha is the first pre-release of Multi Energy Model Execution: a dependency-free Go service that takes one canonical JSON energy-system model, translates it into the native inputs of PyPSA, Calliope and AdOpT-NET0, optionally runs the solvers, and returns one result bundle through a REST API.
It is an alpha. The REST API and the canonical model may still change between pre-releases. If a payload validates but means something different on one framework than on another, please open an issue with the payload and what each target emitted or solved.
Highlights
- One model, several frameworks.
POST /validate,/convertand/simulatetake?target=as one framework, a comma-separated list orall. Validation is capability-gated: a property the selected target cannot honor is rejected with a pointed message or named in a warning, never silently dropped. - Framework versions are targets. Calliope 0.7.0 is
calliope(aliascalliope-0.7); Calliope 0.6.8 is thecalliope-0.6variant, run only when named.GET /capabilitieslists the targets, whatallruns, the aliases, the framework version behind each target and the feature matrix. - Asynchronous jobs, one bundle.
/simulateanswers with a job id,/jobs/{id}/statusfollows the run, and/jobs/{id}returns a zip with the solver results, the emitted inputs, the driver scripts, the log and the submitted config. Sweeps expand into independent runs. - A solver environment to go with it. The
environment/image carries PyPSA with HiGHS, both Calliope releases with CBC in separate virtual environments, and AdOpT-NET0 with GLPK; all solvers are free. - Build version reporting.
meme -versionand theversionfield ofGET /healthztell you which build you are running.
Targets
| Target | Framework | Version | In all |
|---|---|---|---|
pypsa |
PyPSA | 1.2.4 | yes |
calliope (alias calliope-0.7) |
Calliope | 0.7.0 | yes |
calliope-0.6 |
Calliope | 0.6.8 | by name |
adopt-net0 |
AdOpT-NET0 | 0.1.10 | yes |
Getting it
# dry-run service on the host: validates, translates and plans, no solve
go install github.com/enerplanet/meme/cmd/meme@v0.1.0-alpha && meme -addr :8080
# or from a checkout
git clone --branch v0.1.0-alpha https://github.com/enerplanet/meme && cd meme && make run
# real solvers in Docker
make -C environment build ENV=dev && make -C environment run ENV=devDocumentation: https://enerplanet.github.io/meme (quickstart, configuration, API reference, canonical model, the capability reference per framework, the architecture decisions).
What changed
The full list is in the changelog. Since the July scaffold: the Calliope target moved from 0.7.0.dev7 to the stable 0.7.0 release (#3), Calliope 0.6.8 joined as the calliope-0.6 target (#4), a technology placed at several nodes writes every node's data (#7), operate mode installs import limits and line capacities (#8), an already-annualized cost basis is charged once per year, a PyPSA model without time series is solved over the whole horizon, file-backed time series are rejected at validation, and the test suite gained a CI workflow and cross-framework objective checks.
Known limitations
timeseries.source: fileis rejected at validation; no target can materialize file-backed series yet.- Calliope 0.6 has no indexed parameters, piecewise performance or custom math; the capability matrix in
GET /capabilitiessays what each target honors. - AdOpT-NET0 has no database mapping for generic conversion technologies; name a real database technology through
native["adopt-net0"]. - No prebuilt binaries or container images are attached to this release; build from source as above.