Releases: TemoaProject/temoa
Releases · TemoaProject/temoa
v4: Major Feature Additions
v4: Major Feature Additions
Architecture, Packaging & DX (Developer Experience)
- Command Line Interface (CLI)
- Introduced a modern, comprehensive CLI for managing Temoa runs, configuring environments, and executing core functionalities directly from the terminal.
- PyPI Compatibility &
uvIntegration- Fully refactored the project structure for seamless PyPI compatibility, allowing Temoa to be installed and managed as a standard Python package.
- Modernized dependency management and build workflows by integrating
uvfor ultra-fast and reliable environment resolution.
- Solver Defaults
- Updated the default optimization solver to HiGHS (High-Performance Linear Software), giving users a robust, open-source workhorse right out of the box.
Modularity & Tools
- Decomposing Core Logic
- Executed a major structural refactor breaking down the historically monolithic
temoa_rulesandinitializemodules into cleaner, separated, and highly maintainable components.
- Executed a major structural refactor breaking down the historically monolithic
- Network Visualizer
- Added a powerful network visualizer tool, allowing users to intuitively map, render, and debug commodity and technology flows within their datasets.
LDES & Storage Enhancements
- Long Duration Energy Storage (LDES)
- Full integration of LDES functionalities.
- Added default storage seasons, seasonal limits, and associated testing/databases.
- Generalized storage handling to support interseason storage boundaries and seasonal storage limits via
LimitStorageLevelFraction.
- Ramp Rates & Storage Initialization
- Renamed
Rampconstraints toRampHourly. - Redesigned ramp constraints distinguishing day vs. season ramping.
- Fixed ramp rates to represent per-hour changes accurately.
- Reworked
StorageInitFracand splitRampUpfromRampDownindices.
- Renamed
Materials, Resources & Emissions
- Materials & Waste
- Merged "materials" features to support physical material supply chains and resource extraction limits.
- Added "waste" commodities to track life-cycle outputs.
- Emissions Integration
- Integrated embodied emissions features (
emb_emis). - Fixed bugs in results output logic for annual emissions.
- Integrated embodied emissions features (
Survival Curves & End-of-Life Modeling
- Survival Processes
- Introduced tracking of
survival_curve_processes(formerlytech_survival_curve) and integrated into the objective function. - Split "end-of-life" from "early retirement" in
OutputRetirement. - Prevented early retirement from occurring during the period a technology naturally reaches end-of-life.
- Introduced tracking of
Technology Growth, Limits & Capacity Constraints
- Growth Limits
- Introduced the
GrowthRateChangeconstraint. - Reworked and expanded constraints allowing distinct models for asymmetric growth and degrowth.
- Modified
GrowthRateMaxconstraints to replant the seed every period or allow growth directly from existing capacity.
- Introduced the
- Capacity Limits & Operations
- Collapsed separate
minandmaxtables into generalized limit tables utilizing explicit relational operators (<,>). Removed strict inequality operators as solvers generally do not support them. - Renamed
LimitSeasonalActivitytoLimitSeasonalCapacityFactor. - Added
LimitActivityGroupShareconstraint (and formally deprecatedRPSRequirement). - Created
NewCapacityGroupShareconstraints and multi-region indexedMaxResourcelimits.
- Collapsed separate
- Capacity Factors & Margins
- Added period indexing mapping to
CapacityFactorProcess. - Added optional dynamic reserve margins (activated via config).
- Split
CapacityCreditfromReserveCapacityDeratefor higher fidelity modeling.
- Added period indexing mapping to
Core Time Sequencing & Commodities
- Inter-Season Sequencing & TimeNext
- Generalized time sequencing, including non-annual period support and removal of the ancient 1-year hardcoded shift bug.
- Created the
time_nextdictionary, dropping rigid sequencing logic in favor of explicitly defined state sequences via theTimeNextfeature.
- Annual & Waste Commodities
- Added support for annual commodities via the
annual_commscapabilities. - Added variables and fixes for
EfficiencyVariable. - Fixed objective function logic resolving shifting errors for baseload annual technologies.
- Added support for annual commodities via the
Schema Migrations, IO & Database Updates
- v3.1 Schema Compatibility & Utility Upgrades
- Introduced v3.1 schema definitions (
DB_MINORbumped to 1). - Updated database migrator schemas to strip vestigial parameters like
myopic_base_yearfrom metadata or tracking unusedtech_resourcesets. - Ensured
v3_1migrator resolves loan lifetime processes, schema mismatches, and automatically warns if rows are filtered out at load time.
- Introduced v3.1 schema definitions (
- Cost Sector Output
- Appended
sectortracking to theOutputCosttable, including backward-compatibility support schema components.
- Appended
Significant Fixes
- Myopic Model & Execution
- Fixed legacy myopic base-year handling bugs, accurately preserving pre-existing capacities.
- Cleaned up redundant constraint formation across variables and fixed numerous dictionary initialization indexing bugs.
v3.0
This release represents a code modernization effort addressing a restructuring and updating of the main modules of the TEMOA model. In addition, it also included refreshed abilities to implement Myopic, Modeling to Generate Alternatives, Method of Morris and Monte Carlo based analysis.
A quick start guide on getting up and running with this version can be found in the readme.md or here .
v2.0
v1.0
This represents the first official release of Tools for Energy Model Optimization and Analysis (Temoa). It coincides with the submission of a manuscript focused on US energy system development in the absence of new federal policy.