Releases: IDAES/idaes-pse
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
SVDToolbox
for 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
Mixer
andSeparator
models when inherent reactions were present in property package - Added reporting methods to the
MSContactor
model - Minor corrections in some examples where values were being fixed outside of declared variable bounds
2.3 Release Candidate #2
2.3 Release Candidate #2
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.3.0rc2 Release Highlights
New Features and Models
- New diagnostics toolboxes and examples
- Tutorial for using the DiagnosticsToolbox
- Methods to identify potential evaluation errors in models
SVDToolbox
for 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
Mixer
andSeparator
models when inherent reactions were present in property package - Added reporting methods to the
MSContactor
model - Minor corrections in some examples where values were being fixed outside of declared variable bounds
2.3 Release Candidate #1
2.3 Release Candidate 1
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.3.0rc1 Release Highlights
New Features and Models
- New diagnostics toolboxes and examples
- Tutorial for using the DiagnosticsToolbox
- Methods to identify potential evaluation errors in models
SVDToolbox
for 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
Mixer
andSeparator
models when inherent reactions were present in property package - Added reporting methods to the
MSContactor
model - Minor corrections in some examples where values were being fixed outside of declared variable bounds
2.3 Release Candidate #0
2.3 Release Candidate #0
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.3.0rc0 Release Highlights
New Features and Models
- New diagnostics toolboxes and examples
- Tutorial for using the DiagnosticsToolbox
- Methods to identify potential evaluation errors in models
- `SVDToolbox`` for 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
Mixer
andSeparator
models when inherent reactions were present in property package - Added reporting methods to the
MSContactor
model - Minor corrections in some examples where values were being fixed outside of declared variable bounds
2.2 Release
2.2 Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.2.0 Release Highlights
New Features: DiagnosticsToolbox
DiagnosticsToolbox (idaes.core.util.model_diagnostics.DiagnosticsToolbox
is a new self-guiding toolbox for assisting with diagnosing modeling issues. The toolbox contains a wide range of tools for identifying common modeling issues and conveying these to the user, and more features will be added in the coming months.
To try the new toolbox, use the following steps:
from idaes.core.util import DiagnosticsToolbox
- Build an instance of your model
- Ensure your models has zero degrees of freedom (as best you can)
dt = DiagnosticsToolbox(model)
dt.report_structural_issues()
- Follow the prompts
Deprecations
- DegeneracyHunter is being deprecated in favor of the new DiagnosticsToolbox. The features and capabilities of DegeneracyHunter will be moved over to the DiagnositcsToolbox in the coming months.
- Removal of usage of Pyomo's
expr.current
due to deprecation upstream. - Removed support for radial basis functions in ALAMOpy as these did not work in the current implementation. Those wishing to use radial basis functions should use Pysmo instead.
New Capabilities
- MSContactor model for unit operations involving mass transfer between 2 or more streams, such as membrane, solvent extraction and solids leaching operations.
Other Improvements
- Improved formulation for solubility products with additional parameters for better scaling of terms
- Better backward compatibility, verification and robustness testing of core models and APIs
- Added support for Separator models without energy balances
2.2 Release Candidate #1
2.2 Release Candidate #1
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.2.0rc1 Release Highlights
New Features: DiagnosticsToolbox
DiagnosticsToolbox (idaes.core.util.model_diagnostics.DiagnosticsToolbox
is a new self-guiding toolbox for assisting with diagnosing modeling issues. The toolbox contains a wide range of tools for identifying common modeling issues and conveying these to the user, and more features will be added in the coming months.
To try the new toolbox, use the following steps:
from idaes.core.util import DiagnosticsToolbox
- Build an instance of your model
- Ensure your models has zero degrees of freedom (as best you can)
dt = DiagnostisticsToobox(model)
dt.report_strucutral_issues()
- Follow the prompts
Deprecations
- DegeneracyHunter is being deprecated in favor of the new DiagnosticsToolbox. The features and capabilities of DegeneracyHunter will be moved over to the DiagnositcsToolbox in the coming months.
- Removal of usage of Pyomo's
expr.current
due to deprecation upstream. - Removed support for radial basis functions in ALAMOpy as these did not work in the current implementation. Those wishing to use radial basis functions should use Pysmo instead.
New Capabilities
- MSContactor model for unit operations involving mass transfer between 2 or more streams, such as membrane, solvent extraction and solids leaching operations.
Other Improvements
- Improved formulation for solubility products with additional parameters for better scaling of terms
- Better backward compatibility, verification and robustness testing of core models and APIs
- Added support for Separator models without energy balances
2.2.0 Release Candidate #0
2.2.0 Release Candidate #0
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.2.0rc0 Release Highlights
New Features: DiagnosticsToolbox
DiagnosticsToolbox (idaes.core.util.model_diagnostics.DiagnosticsToolbox
is a new self-guiding toolbox for assisting with diagnosing modeling issues. The toolbox contains a wide range of tools for identifying common modeling issues and conveying these to the user, and more features will be added in the coming months.
To try the new toolbox, use the following steps:
from idaes.core.util import DiagnosticsToolbox
- Build an instance of your model
- Ensure your models has zero degrees of freedom (as best you can)
dt = DiagnostisticsToobox(model)
dt.report_strucutral_issues()
- Follow the prompts
Deprecations
- DegeneracyHunter is being deprecated in favor of the new DiagnosticsToolbox. The features and capabilities of DegeneracyHunter will be moved over to the DiagnositcsToolbox in the coming months.
- Removal of usage of Pyomo's
expr.current
due to deprecation upstream. - Removed support for radial basis functions in ALAMOpy as these did not work in the current implementation. Those wishing to use radial basis functions should use Pysmo instead.
New Capabilities
- MSContactor model for unit operations involving mass transfer between 2 or more streams, such as membrane, solvent extraction and solids leaching operations.
Other Improvements
- Improved formulation for solubility products with additional parameters for better scaling of terms
- Better backward compatibility, verification and robustness testing of core models and APIs
- Added support for Separator models without energy balances
2023 May Release
2023 May Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.1.0 Release Highlights
New IDAES Examples Repository
Starting with this release, the IDAES examples are developed in the new IDAES/examples repository.
Along with many content and usability improvements, the most significant changes are:
- To install the examples, after installing IDAES, run
pip install idaes-examples
- The
idaes get-examples
command, previously used for this, has been removed
- The
- The HTML version is now available at https://idaes-examples.readthedocs.io
- The previous URL, https://idaes.github.io/examples-pse, will not be updated and may be removed at some point in the future
For more details, refer to the resources available at IDAES/examples.
Removal of Non-Functional Apps
A review of the code in the idaes/apps and idaes/models_extra folders was undertaken, and a number of tools were identified as being outdated or non-functional and no longer supported by their development teams. Due to this, the following tools have been removed:
idaes/apps/alamopy_depr (note that the new ALAMOpy interface remains avaialble in idaes/core/surrogates)
idaes/apps/helmet
idaes/apps/ripe
idaes/apps/roundingRegression
idaes/models_extra/carbon_capture
Pyomo 6.6
This version of IDAES is the first requiring Pyomo 6.6. This version of Pyomo contains multiple internal improvements and refactorings.
While for the majority of cases this should have positive or no impact on solvability of IDAES models, we are aware of a small number of models that have been affected as a result of these changes.
For more information, refer to the Pyomo 6.6.1 release notes.
Other highlights
- Model Initialization
- A prototype API for a new approach to initializing IDAES models is now available which makes available some new techniques for initializing models. This is documented in the Initializing Models Reference Guide
- Modular Properties Framework
- Support for some transport properties
- Helmholtz Equation of State properties
- Better error checking for case where unit models are set to include phase equilibrium but the property package is set to support only a single phase
- Multi-Stream Contactor model: a new base model for systems involving contacting of two or more streams with mass transfer. This model is intended to be used as the foundation for models such as membrane separators, solvent extraction and other similar processes. This is documented in the Multi-Stream Contactor Reference Guide
idaes/models_extra/power_generation
report()
methods for unit models using Helmholtz equation of state
- General Code Maintenance
- Streamlining of dependencies and creation of new optional dependency groupings to support non-core tools
- General linting of codebase to ensure compliance with most pylint checks
- Spell checking of all code and doc strings
- Removal of backward compatibility code for Python 2
2023 Feb Release
2023 Feb Release
Start with our online documentation to get started with install instructions, examples, etc.
IDAES-PSE 2.0.0 Release Highlights
- Removal of deprecated features from IDAES v1
- Update to Pyomo v6.5 – this required a number of updates to support the new NL solver writer and to address some changes in Pyomo
- Creation of new testing suite for backward compatibility, model robustness and verification
- More general implementation of the Helmholtz EoS. This brings some new features like standard property diagrams, choice of mass or mole basis, and new state variable options
- Standardizing names in Heat Exchanger models (breaking change from v2.0.0a2):
- Control Volumes named
hot_side
andcold_side
- Ports names
hot_side_inlet
,hot_side_outlet
,cold_side_inlet
andcold_side_outlet
- Config Blocks names
hot_side_config
andcold_side_config
- Config arguments for user provided names for each side:
hot_side_name
andcold_side_name
.
- Control Volumes named
- Updating Keras surrogate tool to use v1.1 of OMLT
- New prototype API for model initialization (
idaes.core.initialization
)- The new API uses "Model Initializer" objects instead of class methods, allowing for the definition of multiple initialization routines for a single model
- A number of common, model agnostic initialization routines have also been defined, including initialization from data, block-decomposition and a general hierarchical approach equivalent to the existing method for common unit models
- New metadata for thermophysical properties –
valid_range
- This can be used to record the range of values over which a property value can be trusted, such as the range of experimental data used to regress parameters
- A number of new utility functions have been added to check for properties with values outside the valid range and to set bounds based on this metadata
- Updated construction of balance expressions in Control Volumes to remove unneeded terms
- In the past, unneeded terms were added as a constant 0 term, however they will now be dropped entirely from the expression
- This was necessary due to more strict unit checking in the new Pyomo solver writer which no longer ignores 0 terms
- Updates to metadata for thermophysical properties to better define known properties and units of measurement
- This results in more strict enforcement of standard naming for thermophysical and reaction properties
- Users can still define custom properties, but these must be done explicitly using the
define_custom_properties()
method instead of being implicitly created byadd_property()
- Updated convergence tester utility tool to support definition of benchmark files (JSON format) and comparison of performance to benchmarks
- Set default iteration limit for IPOPT in IDAES config to 200 iterations
- Update scaling of example models to work with new Pyomo NL solver writer
- Improve testing of extensions and examples infrastructure to avoid need for downloading files
- Updated distillation column to centralize common functionality and remove a number of Pyomo warnings
2022 Nov Release
2022 Nov Release (2.0.0b2)
Start with our online documentation to get started with install instructions, examples, etc.
Quickstart
conda create --yes --name idaes-v2-env python=3.10 && conda activate idaes-v2-env
pip install idaes-pse==2.0.0b2
idaes get-extensions
idaes get-examples --unstable --version 2.0.0b2
IDAES-PSE 2.0.0b2 Release Highlights
IDAES v2 migration support
To help migrate their code to IDAES v2, the following support material is available:
IDAES v2 changes and deprecations
- As a consequence of the standardization of the
HeatExchanger
API, support for old methods and attributes (i.e.side_1
,inlet_1
,outlet_1
etc) has been removed- Refer to the "IDAES v2 migration support" for more information
- Numerous instances where deprecated APIs were being used internally in IDAES, causing deprecation warnings to be emitted, have been removed
- Old process costing code has been fully deprecated and removed in favor of the new API
New features
- Improved support for defining new components for use in Helmholtz equations of state
- Standardized naming in heat exchanger models
- Documentation of process costing tools and examples
- Implementation of an IDAES Performance Testing Suite, which has been used to establish baseline performance metrics
- Improved metadata structure for defining Units of Measurement in property packages and updated all code to use the new format
Supported Python versions
- Support for Python 3.11 is planned for the upcoming February release
- Following the NumPy NEP29 schedule, the February release of IDAES will also be the last to support Python 3.8