-
Notifications
You must be signed in to change notification settings - Fork 235
List of Utility Tools
This list is intended to be a starting point for documenting useful supporting tools for developers and users of Pyomo and IDAES related modeling tools. It is hoped that by informing developers and users of the available tools, duplication of effort (and proliferation of similar tools) can be avoided.
-
apps
andsurrogates
packages are targeted for overhauls when resources are available.surrogates
will hopefully be improved later this year. - documentation of many of these tools is non-existent
- Tools are poorly organized, making it hard to find things. E.g. there are multiple modules for plotting related functions which are spread across multiple modules.
- Suggest a series of subfolders to organize tools based on use
- tools to manipulate models
- tools to analyze model structure
- tools to work with model results (plotting, save/load, other UI)
- Suggest a series of subfolders to organize tools based on use
- There appears to be some duplication of tools even within IDAES alone
-
apps
- caprese - tools for NMPC
- categorize - categorize Vars in differential and algebraic This looks like it could go in model statistics
- controller - check for overlap with IDAES PID block
- dynamic_block - how does this differ from standard IDAES blocks? Should it inherit from PrcoessBase?
- rolling - tools for rolling horizon models
- util - is anything here more general than just Caprese?
- ddm_learning - why is this still here? DDM learning tools have their own package now
- matopt - tools for materials optimization. Somewhat orphaned from rest of project?
- uq - tools for uncertainty propagation and quantification
- sens - tools for calcuating model sensitivity using sipopt and/or kaug
- caprese - tools for NMPC
-
commands - command line tools for IDAES
- convergence, get_extensions, get_examples
-
convergence - application of convergence tool
-
core/util
-
convergence - base methods for convergence tool
-
config - validation methods for
ConfigDicts
-
constants - class containing definitions of common physical constants with units
-
dyn_utils - tools for working with time indexed IDAES models
- lots of useful methods for manipulating dynamic models
-
exceptions - IDAES custom Exception types
-
expr_doc - Tools for documenting Expressions (?). Converts Pyomo Expression objects to sympy representations.
-
homotopy - IPOPT-based homotopy solver for Pyomo models
-
initialization - common methods for initializing IDAES models
- propagate_state - ** appears to be duplicated by
misc.copy_port_values
- initialize_by_time_element - check for overlap with
dyn_utils
- propagate_state - ** appears to be duplicated by
-
math - implementations of smooth approximations for
abs
,min
,max
,sqrt
andlog
functions for use in Pyomo models -
misc - miscellaneous utility functions from IDAES
Available functions
* get_solver - wrapper to return solver objects with ability to define defaults * add_object_reference - method to work around Pyomo's single-owner limitation. `References` are generally preferred, but this method is necessary when dealing with scalar components as a `Reference` always has an index. * extract_data * TagReference * svg_tag * copy_port_values - **appears to duplicate `initialization.propagate_state`** * set_params_from_config - method to lookup ConfigBlock for parameter values, with unit conversion. **Some aspects of this maybe obsolete with updates to how Pyomo handles units.** * VarLikeExpression - extension of Pyomo `Expression` object which adds Exception messages for common activities on `Vars`. This is intended for specialized use in outlet Ports where we sometime use `Expressions` instead of `Vars` and uses might not be aware of this.
- model_diagnostics - tools for debugging and assessing potential points of failure in a model
- DegeneracyHunter
- model_serializer - save and load models from json
- model_statistics - functions for counting number of variables, constraints and blocks on a model with various sub-categories
- phase_equilibrium - tool for developing Txy plots
- plot - tools for plotting dynamic results
- scaling - tools for scaling models
- tables - tools for generating stream tables
- testing - tools to assist with writing tests for IDAES models
- unit_costing - tools for developing costing models of equipment I think this should really be an IDAES sub-package in its own right
-
-
dmf - IDAES DMF tools
-
surrogates
- helmet
- DataManipulation
- GAMSDataWrite, GAMSWrite - how do these differ from the Pyomo GAMS writer?
- Plotting
- pysmo - I see
FeatureScaling
classes in a number of places. Could this be made common?- sampling - sampling tools. This looks like a good candidate for generalisation
- helmet
-
ui
- flowsheet.py - I see a FlowsheetSerializer function here. Should check for overlap with model serializer in utils.
- Set up pre-commit
- Run pytest with coverage report
- Run Pylint locally
- Update the Pyomo version
- Install Pyomo from a local Git clone
- Set up GitHub authentication with GCM
- Handle warnings in pytest