Releases: IDAES/idaes-pse
2.10 Release
2.10 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.10.0 Release Highlights
Enhancements
Scaling Improvements
- Overhauled scaling functionality to improve numerical stability (#1662)
- Updated extreme Jacobian methods to use scaled Jacobian (#1703)
Initialization Updates
- Added holdup initialization support to MSContactor (#1707)
Block Triangularization
- Added
skip_final_solveoption to Block Triangularization (#1711) - Various fixes and improvements to Block Triangularization (#1704)
Price-taker Class
- Added storage and surrogate support (#1633)
Solid Oxide Cell Model Updates
- Additional improvements and updates to SOC functionality (#1667)
Bug Fixes
- Fixed file handling to properly close files after opening (#1698)
Maintenance & Dependencies
- Updated pylint to version 3.3.9 (#1683)
- Reverted Pyomo pin (#1705)
- Migrated build configuration from setup.py to pyproject.toml (#1708)
Detailed Changes from the 2.10 release
What's Changed
- Update pylint to 3.3.9 by @blnicho in #1683
- Additional SOC Updates by @dallan-keylogic in #1667
- Scaling overhaul by @dallan-keylogic in #1662
- Close files after opening them by @dallan-keylogic in #1698
- Update extreme Jacobian methods to use a scaled Jacobian by @dallan-keylogic in #1703
- Block Triangularization fixes by @dallan-keylogic in #1704
- Revert Pyomo pin by @dallan-keylogic in #1705
- Add holdup initialization to MSContactor by @dallan-keylogic in #1707
- Block Triangularization skip_final_solve option by @dallan-keylogic in #1711
- Convert setup.py to pyproject.toml by @sufikaur in #1708
- Add Storage and Surrogate Support to the Price-taker class by @radhakrishnatg in #1633
Full Changelog: 2.9.0...2.10.0
2.10 Release Candidate #0
2.10 Release Candidate #0
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.10.0rc0 Release Highlights
Enhancements
Scaling Improvements
- Overhauled scaling functionality to improve numerical stability (#1662)
- Updated extreme Jacobian methods to use scaled Jacobian (#1703)
Initialization Updates
- Added holdup initialization support to MSContactor (#1707)
Block Triangularization
- Added
skip_final_solveoption to Block Triangularization (#1711) - Various fixes and improvements to Block Triangularization (#1704)
Price-taker Class
- Added storage and surrogate support (#1633)
Solid Oxide Cell Model Updates
- Additional improvements and updates to SOC functionality (#1667)
Bug Fixes
- Fixed file handling to properly close files after opening (#1698)
Maintenance & Dependencies
- Updated pylint to version 3.3.9 (#1683)
- Reverted Pyomo pin (#1705)
- Migrated build configuration from setup.py to pyproject.toml (#1708)
What's Changed
- Update pylint to 3.3.9 by @blnicho in #1683
- Additional SOC Updates by @dallan-keylogic in #1667
- Scaling overhaul by @dallan-keylogic in #1662
- Close files after opening them by @dallan-keylogic in #1698
- Update extreme Jacobian methods to use a scaled Jacobian by @dallan-keylogic in #1703
- Block Triangularization fixes by @dallan-keylogic in #1704
- Revert Pyomo pin by @dallan-keylogic in #1705
- Add holdup initialization to MSContactor by @dallan-keylogic in #1707
- Block Triangularization skip_final_solve option by @dallan-keylogic in #1711
- Convert setup.py to pyproject.toml by @sufikaur in #1708
- Add Storage and Surrogate Support to the Price-taker class by @radhakrishnatg in #1633
Full Changelog: 2.9.0...2.10.0rc0
2.9 Release
2.9 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.9.0 Release Highlights
Key Changes
- Updated Pyomo Dependency: The Pyomo dependency has been updated to version 6.9.3, ensuring compatibility with the latest features and improvements.
- Added the option to pass a dictionary of solver arguments for IPOPT convergence analysis
- A smooth Heaviside function has been added to the math module
- Bug Fixes and Stability Improvements: Several bug fixes have been made, including corrections to units on PH and TS diagrams, documentation updates, various fixes to the modular properties, and fixes for failing tests.
New Features
- Clustering Method: A new clustering method has been added to the PriceTaker class.
- New Thermodynamic Properties: Butane and Isobutane have been added to the Helmholtz equation of state.
Detailed Changes from the 1.3 release
What's Changed
- Update Pyomo to the 6.9.1 release by @blnicho in #1587
- Two quick fixes: units on PH and TS diagrams, documentation for macOS by @adowling2 in #1589
- Fixed typo/mistake in documentation by @adowling2 in #1590
- Remove mappings from el9 to ubuntu by @mrmundt in #1599
- Add Smooth Heaviside Function to Math by @MarcusHolly in #1603
- Add Solver Config Option to IPOPT Convergence Analysis by @MarcusHolly in #1606
- VLE Init Edge Cases by @dallan-keylogic in #1578
- Bump minimum Pyomo version to 6.9.2 by @blnicho in #1598
- MEA Column Fix by @dallan-keylogic in #1608
- resolve matopt test errors by @adam-a-a in #1632
- Add Clustering Method to PriceTaker by @MarcusHolly in #1579
- Bumping Pyomo tag to the 6.9.3 release by @blnicho in #1647
- Fix failing CoolProp test. by @dallan-keylogic in #1650
- Butane and Isobutane in Helmholtz by @bertkdowns in #1636
- Fix typo of _enthalpy_density_term by @aspitarl in #1638
- Off boarding lbianchi-lbl from code ownership by @sufikaur in #1661
- Modular properties fixes and enhancements by @dallan-keylogic in #1656
- Update logging documentation to account for new Pyomo solver interface by @mrmundt in #1672
- Fix initialization of FpcTP with one phase by @dallan-keylogic in #1677
- September 2025 Typos update by @mrmundt in #1675
- Test
.pyfiles fromexamplesas part of Integration tests by @mrmundt in #1679 - Add testing 3.13 python to workflow by @sufikaur in #1669
New Contributors
Full Changelog: 2.8.0...2.9.0
2.9 Release Candidate #0
2.9 Release Candidate #0
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.9.0rc0 Release Highlights
2.8 Release
2.8 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.8.0 Release Highlights
- Pyomo 6.9.1 update
- Improvements to
get-extensionsto list platform details - Improvements to the Greybox, Price Taker following models
- Improvements to the Helmholtz and SmoothVLE2 property packages
- Add support for isothermal conditions in control volumes
- Various documentation and UI improvements
Detailed changes from 2.7.0 release
Detailed changes from 2.7.0 release:
- List binary platforms and architectures by @dangunter in #1546
- Add support for Greybox model DOF counitng in degrees_of_freedom function by @avdudchenko in #1512
- Add support for isothermal conditions in control volumes. by @andrewlee94 in #1558
- Add explicit configuration path for ReadtheDocs by @mrmundt in #1553
- Fix
set_parameter_pathin Helmholtz Property Package by @bertkdowns in #1530 - Checks for variables with None value in NLP by @dallan-keylogic in #1564
- Small fixes for instructions on how to build docs locally by @ksbeattie in #1568
- changed macosx tutorial to properly handle different mac arch possibi… by @azaidi06 in #1544
- Price taker model for DISPATCHES, Rehashed by @djlaky, @radhakrishnatg & @MarcusHolly in #1358
- Wrap 0D Fixed Bed TSA unit model in
extra_models/fixed_bed_tsa0dfor Flowsheet Processor UI by @dangunter in #1493 - updated importlib.resources to stop using deprecated path function by @azaidi06 in #1550
- Fix bugs in SmoothVLE2 initialization by @dallan-keylogic in #1563
- Add mapping to use ubuntu2204 build of idaes-ext on Ubuntu 24.04 by @lbianchi-lbl in #1559
- Temporarily exclude sphinx 8.2.0 to fix doctests by @blnicho in #1572
- Update Pyomo requirement to the 6.9.1 release by @blnicho in #1587
New Contributors
- @bertkdowns made their first contribution in #1530
- @djlaky made their first contribution in #1358
Full Changelog: 2.7.0...2.8.0
2.7 Release
2.7 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.7.0 Release Highlights
New features
- AutoScaler and CustomScalerBase classes
- Scaler for equilibrium reactor and saponification properties
- ONNX Surrogate support from OMLT
- 1D Membrane Model for CO2 Capture and Utilization
- StreamScaler unit model
Bug fixes or improvements:
- Scaling, EoS, Diagnostics tool, Modular Properties, tests & documentation
Deprecations:
- Old Cubic EoS
Detailed Changes from 2.6 Release
Detailed Changes (by PR)
- Fixing scaling bug related to external functions with string arguments by @andrewlee94 in #1487
- Add minimal pytest plugin to verify that generated files are cleaned up by tests by @lbianchi-lbl in #1488
- Add new AutoScaler and CustomScalerBase classes by @andrewlee94 in #1429
- Fix issue with enthalpy based states trying to use EoS before construciton by @andrewlee94 in #1505
- pinned ubuntu version to resolve failing gha jobs until support avail… by @azaidi06 in #1506
- Scaler for equilibrium reactor and saponification properties by @andrewlee94 in #1500
- Minor improvements to scaling API by @andrewlee94 in #1507
- Address minor issues identified in 10/24 Code Audit by @andrewlee94 in #1504
- Better error messages for Modular Properties when config dict in not unpacked by @andrewlee94 in #1515
- Adds ONNX Surrogate support from OMLT by @avdudchenko in #1308
- Diagnostics tool for ill-posed constraints by @andrewlee94 in #1454
- New URL for Downloads Badge by @mrmundt in #1526
- Bumping the IDAES tag of Pyomo to check for issues by @blnicho in #1523
- Prune down unused dev dependencies by @lbianchi-lbl in #1533
- removed jenkinsfile and entire docker folder by @azaidi06 in #1535
- Deprecate old Cubic EoS by @dallan-keylogic in #1519
- updated all mentions/use of anaconda/miniconda to reflect usage of mi… by @azaidi06 in #1513
- Update conda install commands after idaes-pse was added to conda-forge by @lbianchi-lbl in #1543
- Add a mapping for Pop!_OS (default for System76 laptops) to get-extensions by @dangunter in #1534
- Shorten names of files causing installation errors (#1540) by @lbianchi-lbl in #1545
- 1D Membrane Model for CO2 Capture and Utilization by @Morgan88888888 in #1378
- Adding StreamScaler unit model, along with the test and rst file. by @tannerpolley in #1517
New Contributors
- @azaidi06 made their first contribution in #1506
- @avdudchenko made their first contribution in #1308
- @tannerpolley made their first contribution in #1517
Full Changelog: 2.6.0...2.7.0
2.6 Release
2.6 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.6.0 Release Highlights
Upcoming Changes
- IDAES will be switching to the new Pyomo solver interface in the next release. Whilst this will hopefully be a smooth transition for most users, there are a few important changes to be aware of.
- The new solver interface uses a different version of the IPOPT writer (“ipopt_v2”) and thus any custom configuration options you might have set for IPOPT will not carry over and will need to be reset.
- By default, the new Pyomo linear presolver will be activated with ipopt_v2. Whilst are working to identify any bugs in the presolver, it is possible that some edge cases will remain.
- IDAES will begin deploying a new set of scaling tools and APIs over the next few releases that make use of the new solver writers.
- The old scaling tools and APIs will remain for backward compatibility but will begin to be deprecated.
New Models, Tools and Features
- New Intersphinx extension automatically linking Jupyter notebook examples to project documentation
- New end-to-end diagnostics example demonstrated on a real problem
- New complementarity formulation for VLE with cubic equations of state, backward compatibility for old formulation
- New solver interface with presolve (ipopt_v2) in support of upcoming changes to the initialization and APIs methods, with default set to ipopt to maintain backwards compatibility; this will deprecate once all examples have been updated
- New forecaster and parameterized bidder methods within grid integration library
- Updated surrogates API and examples to support Keras 3, with backwards compatibility for older formats such as TensorFlow SavedModel (TFSM)
- Updated costing base dictionary to include the 2023 cost year index value
- Updated
ProcessBlockto include information on the constructing block class - Updated Flowsheet Visualizer to allow
visualize()method to return value and functions
Bug Fixes
- Fixed bug in the Modular Property Framework that would cause errors when trying to use phase-based material balances with phase equilibria.
- Fixed bug in Modular Properties Framework that caused errors when initializing models with non-vapor-liquid phase equilibria.
- Fixed typos flagged by June update to
crate-ci/typosand removed DMF-related exceptions - Minor corrections of units of measurement handling in power plant waste/transport costing expressions, control volume material holdup expressions, and BTX property package parameters
- Fixed throwing >7500
numpydeprecation warnings by replacing scalar value assignment with element extraction and item iteration calls
Testing and Robustness
- Migrated slow tests (>10s) to integration, impacting test coverage but also yielding a nearly 30% decrease in local test runtime
- Pinned
pintto avoid issues with older supported Python versions - Pinned
codecovversions to avoid tokenless upload behavior with latest version - Bumped
extensionsto version 3.4.2 to allow pointing to non-standard install location
Deprecations and Removals
- Python 3.8 is no longer supported. The supported Python versions are 3.9 through 3.12
- The Data Management Framework (DMF) is no longer supported. Importing
idaes.core.dmfwill cause a deprecation warning to be displayed until the next release - The SOFC Keras surrogates have been removed. The current version of the SOFC surrogate model in the examples repository is a PySMO Kriging model.
Detailed changes from 2.5.0 release
Detailed changes from 2.5.0 release
- Fix some bugs in the modular properties implementation by @andrewlee94 in #1425
- Limiting pint version by @andrewlee94 in #1438
- Add new Complementarity formualtion for VLE with cubic EoSs by @andrewlee94 in #1397
- Activating IPOPT_V2 with presolver by @andrewlee94 in #1436
- Moving some slow tests to integration by @andrewlee94 in #1442
- Fix Typos From June Spell Checker Update by @bpaul4 in #1448
- Add 2023 CEPCI Value by @bpaul4 in #1447
- Specify Codecov version to work around codecov/codecov-action#1487 by @lbianchi-lbl in #1441
- Minor Power Plant Costing Fixes by @bpaul4 in #1418
- Updating copyright to 2024 by @ksbeattie in #1440
- Add code references to gas solid contactors docs by @bpaul4 in #1451
- Renewable + PEM Parameterized Bidder by @Xinhe-Chen in #1407
- Remove support for Python 3.8 by @lbianchi-lbl in #1467
- Repair erroneous units for material_holdup in CV0D when mass basis defined by @adam-a-a in #1460
- Keras file format updates by @rundxdi in #1401
- Bump extensions version to 3.4.2 by @Robbybp in #1473
- Add reference to constructing class in ProcessBlock by @bknueven in #1414
- Update Pyomo requirement to 6.8.0 release by @blnicho in #1465
- PySMO: fix warnings by @OOAmusat in #1472
- Remove SOFC Keras Surrogates And Tests by @bpaul4 in #1475
- add UI return, then visualize() can return now by @CopyDemon in #1466
- Updating BTX param with units by @JavalVyas2000 in #1478
- Pin typos version to latest currently available tag v1.24.5 by @lbianchi-lbl in #1486
- Remove idaes.core.dmf and related code by @lbianchi-lbl in #1484
- Add basis to conc example on property naming conventions docs by @kurbansitterley in #1482
New Contributors
- @Xinhe-Chen made their first contribution in #1407
- @CopyDemon made their first contribution in #1466
- @kurbansitterley made their first contribution in #1482
Full Changelog: 2.5.0...2.6.0
2.5 Release
2.5 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.5.0 Release Highlights
Upcoming Changes
- IDAES will be switching to the new Pyomo solver interface in the next release. Whilst this will hopefully be a smooth transition for most users, there are a few important changes to be aware of.
- The new solver interface uses a different version of the IPOPT writer (“ipopt_v2”) and thus any custom configuration options you might have set for IPOPT will not carry over and will need to be reset.
- By default, the new Pyomo linear presolver will be activated with ipopt_v2. Whilst are working to identify any bugs in the presolver, it is possible that some edge cases will remain.
- IDAES will begin deploying a new set of scaling tools and APIs over the next few releases that make use of the new solver writers.
- The old scaling tools and APIs will remain for backward compatibility but will begin to be deprecated.
New Models, Tools and Features
- New diagnostics check for near-parallel variables and constraints.
- New diagnostics tools for identifying causes of infeasibility in models.
- New example for creating a custom model of a liquid-liquid extractor unit operation.
Bug Fixes
- Fixed bug in Gibbs reactor that caused it to appear to have additional spurious degrees of freedom.
- Fixed bug in the Modular Property Framework that would cause errors when trying to use phase-based material balances with phase equilibria.
- Fixed bug in Modular Properties Framework that caused errors when initializing models with non-vapor-liquid phase equilibria.
Testing and Robustness
- Deployed the IDAES Diagnostics Toolbox to confirm that there are no structural or numerical issues in the core model libraries.
- Additional robustness tests for core model, and some associated improvements in the converge tester class.
- Fixed a number of issues that were causing unexpected warnings to be emitted during testing.
Deprecations and Removals
Removed examples for RIPE tool which has not been supported for a number of releases.
What's Changed
- Add constraint to exclude TensorFlow 2.16.1 and above by @lbianchi-lbl in #1373
- Update imports of
native_typesandpyomo_constant_typesin scaling module by @Robbybp in #1366 - Restore ability to run pytest on individual files or directories by @lbianchi-lbl in #1362
- Tweaks to convergence tester by @andrewlee94 in #1377
- Add diagnostics tests for all unit models by @andrewlee94 in #1375
- Resolve CI failures from new version (1.20.4) of spellchecker by @lbianchi-lbl in #1389
- Fix target for 'fv' (flowsheet visualizer) reference by @dangunter in #1391
- Updating black and rerunning it on all files by @ksbeattie in #1388
- Fixing spurious DoF in Gibbs reactor model by @andrewlee94 in #1393
- Update parameter sweep tool to support indexed vars by @andrewlee94 in #1387
- Adding attributes to hold units used by MSContactor by @andrewlee94 in #1396
- Crossflow hx by @dallan-keylogic in #1382
- bug fix for issue #1364: catch AttributeError in set_scaling_from_default by @jasonmbray-p66 in #1400
- Add parallel constraint/variable check to
report_numerical_issuesby @Robbybp in #1385 - Address many unexpected warnings in pytest by @andrewlee94 in #1403
- Renaming components by @andrewlee94 in #1402
- Update the Pyomo tag to the 6.7.2 release by @blnicho in #1406
- Infeasibility diagnostic tool by @bknueven in #1409
- Allow upwinding in 1D Heat exchanger by @dallan-keylogic in #1383
- Adding USD_2022 to units library as the most recently published value by @hunterbarber in #1413
- Option to skip parallel component checks by @andrewlee94 in #1417
- Update pyomo requirement to 6.7.3 by @lbianchi-lbl in #1420
New Contributors
- @jasonmbray-p66 made their first contribution in #1400
Full Changelog: 2.4.0...2.5.0
2.4 Release
2.4 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.4.0 Release Highlights
Deprecations
- Convergence Analysis tool (idaes/core/util/convergence): deprecated in favor of new Parameter Sweep tools. To be removed in v3.0.0.
New Beta Capabilities
- Parameter Sweep Tool (
idaes.core.util.parameter_sweep)- A new API for defining and performing parameter sweep studies on IDAES models has been developed
- Diagnostics Tools (
idaes.core.util.model_diagnostics)- New methods for identifying duplicate variables and constraints have been added to the diagnostics toolbox
- New tools for detecting ill conditioning in Jacobians have been developed and are available in the model_diagnostics module. These provide alternatives to the existing DegeneracyHunter toolbox, and will eventually be merged with this capability, but initial working versions have been provided as beta capabilities for interested users
IpoptConvergenceAnalysis(replaces deprecated Convergence Analysis tool):- A new tool for performing convergence analysis studies that leverages the new Parameter Sweep tools has been developed. This tool allows users to define the input parameters to their model and sampling methods for these (leveraging Pysmo's sampling tools) and to then solve their model across the sampled domains and return a summary of the solver performance (IPOPT only)
Improved Models
- Thickener model (
idaes.models.unit_models.solid_liquid.thickener)- Improved model to include predictive correlations for unit sizing based on settling velocity measurements (steady-state only)
- Modular Property Packages
- Added general support for calculating critical properties of mixtures using defined Equation of State modules. New API defined for Equation of State modules in order to define the necessary constraints for calculating critical properties (most EoS modules DO NOT support calculation of critical properties (yet))
- Added new methods to Cubic Equation of State module to support calculation of critical properties
2.3 Release
2.3 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.3.0 Release Highlights
New Features and Models
- New diagnostics toolboxes and examples
- Tutorial for using the DiagnosticsToolbox
- Methods to identify potential evaluation errors in models
SVDToolboxfor performing singular value decomposition analysis on models to identify possible degeneracies and poor scaling- DegeneracyHunter for identifying irreducible degenerate sets in models
- Model for solid-liquid separation which takes two inputs (solid and liquid streams) and produces three outlets (solids, liquid entrained with solids and pure liquid)
- Example of temperature swing adsorption in
models_extra
Deprecation Warnings
- With the update to Pyomo 6.7.0, the plate heat exchanger model has begun failing tests on some CI platforms. If this is not addressed by the February release, this model may be removed due to failing tests. See #1294. Offers to help identify the cause and fix this issue are welcome.
Improvements and bug fixes
- Fixed oversight which precluded using
MixerandSeparatormodels when inherent reactions were present in property package - Added reporting methods to the
MSContactormodel - Minor corrections in some examples where values were being fixed outside of declared variable bounds