Skip to content

IDAES

Institute for the Design of Advanced Energy Systems (IDAES)

IDAES is a Python process systems engineering toolkit for simulation-based design, analysis and optimization of advanced energy systems, with solver extensions and separately distributed examples.

Catalog updated ·

Overview

IDAES provides computational tools and models for process systems engineering, with an emphasis on advanced energy systems. Its stated scope spans multiple scales and includes design, analysis, optimization, scale-up, operation and troubleshooting. It is a modeling framework rather than a single predictive model or a hosted service. In a research or engineering workflow, its intended role is to support simulation-based investigation of process designs and operating choices.

Most functionality is implemented in Python. The package declares dependencies on Pyomo and scientific computing libraries, and the README describes a separate installation step for pre-built binary solver extensions. Optional dependency groups cover a user interface, CoolProp, grid-related functionality and OMLT. Examples are distributed separately through idaes-examples. The excerpts establish a process-modeling workflow, but do not specify a universal input schema, required process data or standard output format; those details need to be checked in the relevant documentation and examples.

Environment selection matters when evaluating IDAES. The README lists Python 3.10–3.14 as supported and describes macOS support as partial because HSL is unavailable on Intel processors. It also distinguishes ONNX surrogate support on Python 3.14 from Keras surrogates, which require Python 3.13 or earlier under the documented TensorFlow limitation. The linked sources provide setup guidance and project scope, but no quantitative evidence of model accuracy, solver performance or suitability for a particular chemical manufacturing process.

Key Features

  • Multi-scale computational tools and models intended for simulation-based design, analysis and optimization of advanced energy systems.
  • A predominantly Python framework with declared dependencies on Pyomo, NumPy, SciPy and other scientific computing libraries.
  • A documented mechanism for obtaining pre-built binary solver extensions separately from the Python package.
  • Optional dependency groups for a user interface, CoolProp, grid-related functionality and OMLT.
  • OMLT-related surrogate support that distinguishes ONNX availability on Python 3.14 from Keras requirements on Python 3.13 or earlier.
  • Separately installable examples, with an examples repository and an online static examples collection.

Use Cases

  • Intended evaluation: select a documented energy-system example and assess whether its modeling approach can support comparison of proposed process designs.
  • Intended evaluation: use a relevant example as a starting point for studying operating choices or optimization objectives in an advanced energy process.
  • Intended evaluation: examine the documented OMLT pathway for incorporating ONNX or Keras surrogates into a process-modeling workflow, subject to the stated Python limitations.
  • Intended evaluation: assess a model’s suitability for scale-up or troubleshooting questions before relying on it for engineering decisions.

How to Use

  1. Begin with the stable documentation and identify a workflow relevant to your process. Check its model assumptions, required inputs and reported outputs before adapting it.
  2. Review the repository README for environment requirements. Choose a documented Python version and account for the macOS and surrogate-dependency limitations.
  3. Follow the installation guide. The README recommends an isolated environment and choosing either pip or conda for toolkit installation, rather than both.
  4. Follow the documented steps to check the installed version and obtain binary solver extensions. Add optional dependency groups only when the selected workflow needs them.
  5. Consult the examples repository and online examples. As an evaluation step, compare an example’s behavior with your expected process behavior before changing its inputs; use the Discussions Board for questions.

Related resources

BayBE

Open Source

BayBE is a Python toolbox for Bayesian experimental design that recommends parameter configurations from defined search spaces, objectives and measurements, including chemistry-aware and multi-target workflows.

Open sourcePython

Lab Automation · Process Optimization

BoFire

Open Source

BoFire is a Python framework for experimental design and Bayesian optimization, supporting mixed variables, constraints, molecular representations and iterative candidate selection.

Open sourcePython

Lab Automation · Process Optimization

Cantera Skill (K-Dense) provides instructions and a Python helper for homogeneous ignition calculations, with mechanism provenance, conservation diagnostics, and numerical refinement checks.

Open sourcePython

Computational Chemistry · Process Optimization

GEKKO

Open Source

GEKKO is a Python modeling and optimization toolkit for differential algebraic systems, supporting process simulation, parameter estimation, mixed-integer optimization, and nonlinear predictive control.

Open sourcePython

Process Optimization · Process Control

Gryffin

Open Source

Gryffin is a Python Bayesian optimization framework for categorical and mixed experimental design spaces, with batch recommendations and physicochemical descriptor support.

Open sourcePython

Lab Automation · Process Optimization

Olympus

Open Source

Olympus is a Python framework for benchmarking noisy optimization and experiment planning, with mixed parameter domains, experimental benchmarks, analytical test functions and a shared planner interface.

Open sourcePython

Lab Automation · Process Optimization

Related guides

Workflows

Evaluating AI workflows for chemical engineering

Plan evaluations that separate process modelling, reaction optimisation and control. Define inputs, operating limits, time-aware validation and approval gates before considering operational use.