Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Pyomo: Accidentally outrunning the bear

Journal Article · · Patterns
Pyomo is an open-source optimization modeling software that has undergone significant evolution since its inception in 2008. Pyomo has evolved to enhance flexibility, solver integration, and community engagement. Modern collaborative tools for open-source software have facilitated the development of new Pyomo functionality and improved our development process through automated testing and performance-tracking pipelines. However, Pyomo faces challenges typical of research software, including resource limitations and knowledge retention. The Pyomo team’s commitment to better development practices and community engagement reflects a proactive approach to these issues. We describe Pyomo’s development journey, highlighting both successes and failures, in the hopes that other open-source research software packages may benefit from our experiences.
Research Organization:
Sandia National Laboratories (SNL-NM), Albuquerque, NM (United States)
Sponsoring Organization:
USDOE National Nuclear Security Administration (NNSA)
Grant/Contract Number:
NA0003525
OSTI ID:
2585602
Report Number(s):
SAND--2025-08802J; 1775114
Journal Information:
Patterns, Journal Name: Patterns Journal Issue: 7 Vol. 6; ISSN 2666-3899
Publisher:
Elsevier BVCopyright Statement
Country of Publication:
United States
Language:
English

References (21)

Advanced trust region optimization strategies for glass box/ black box models journal September 2018
Demand‐based optimization of a chlorobenzene process with high‐fidelity and surrogate reactor models under trust region strategies journal September 2020
Pyomo.DOE : An open‐source package for model‐based design of experiments in Python journal July 2022
The IDAES process modeling framework and model library—Flexibility for process simulation and optimization journal May 2021
Testing research software: a survey journal July 2022
Pyomo.GDP: an ecosystem for logic based modeling and optimization development journal April 2021
Pyomo: modeling and solving mathematical programs in Python journal August 2011
pyomo.dae: a modeling and automatic discretization framework for optimization with differential and algebraic equations journal December 2017
Parallelizing the dual revised simplex method journal December 2017
Introducing the FAIR Principles for research software journal October 2022
Documenting research software in engineering science journal April 2022
A Systematic Mapping Study of Software Development With GitHub journal January 2017
Open Source Research Software journal August 2020
A Brief History of Free, Open Source Software and Its Communities journal February 2021
Defining the Role of Open Source Software in Research Reproducibility journal August 2022
Community Organizations: Changing the Culture in Which Research Software Is Developed and Sustained journal March 2019
For the Public Good: Connecting, Retaining, and Recognizing Current and Future RSEs at U.S. National Research Laboratories and Agencies journal November 2022
Better Software, Better Research journal September 2014
When and How to Make Breaking Changes
  • Bogart, Chris; Kästner, Christian; Herbsleb, James
  • ACM Transactions on Software Engineering and Methodology, Vol. 30, Issue 4 https://doi.org/10.1145/3447245
journal July 2021
An environment for sustainable research software in Germany and beyond: current state, open challenges, and call for action journal January 2020
A Holistic, Proactive and Novel Approach for Pre, During and Post Migration Validation from Subversion to Git journal January 2021

Similar Records

Pyomo : Python Optimization Modeling Objects.
Conference · Mon Nov 01 00:00:00 EDT 2010 · OSTI ID:1035667

Modeling Bilevel Programs in Pyomo
Technical Report · Mon Feb 29 23:00:00 EST 2016 · OSTI ID:1561200

Modeling Mathematical Programs with Equilibrium Constraints in Pyomo
Technical Report · Wed Jul 01 00:00:00 EDT 2015 · OSTI ID:1195764