idaes-pse
idaes-pse copied to clipboard
Model Diagnostics Checklist
trafficstars
Related to #1208
This issue is to track general steps and tasks related to the new DiagnosticsToolbox class.
First Steps:
- [x] Create new
DiagnosticsToolboxclass - PR #1228 - [x] Structural Issues report
- [x] Model statistics - PR #1228
- [x] Unit consistency - PR #1228
- [x] D-M decomposition - PR #1228
- [x] Pyomo tool to detect potential evaluation errors - PR #1268
- [x] Numerical Issues report - PR #1228
- [x] Variables with no value or values near bounds or zero
- [x] Scaling issues
- [x] Jacobian analysis and condition number
- [x] Methods to assert no diagnostics issues found (for testing) - PR #1228
- [x] Basic documentation and examples - PR #1228
- [x] Run a Usability Study with team
Next Steps:
- [x] Integrate parameter sweep capabilities - PR #1284
- [x] standardize API for parameter sweep/model convergence analysis
- [x] Use Pysmo for parameter sampling
- [x] Extend diagnostics tools to support multiple samples
- [ ] Integrate Block-Triangularization decomposition into tools
- [ ] Allow numerical analysis on independent sub-blocks
- [x] Add SVD analysis to new class - PR #1256
- [x] Address issues with SVD tool - at least partially in PR #1256
- [x] Rewrite degeneracy hunter as part of new class - PR #1256
- [x] deprecate old
DegeneracyHunterclass
- [x] deprecate old
- [x] Extended documentation and examples
- [x] Add tutorial for Diagnostics Toolbox to example - https://github.com/IDAES/examples/pull/78
- [x] Update tutorial for Degeneracy Hunter to use new API - https://github.com/IDAES/examples/pull/79
- [ ] Methods to return the variables/constraints associated with the feedback (e.g., "get_poorly_scaled_variables" etc) would be useful so that once I know which variables or constraints I need to scale, I can quickly access them (particularly in the case where there is discretization and there is a whole set of variables that need similar scaling)
- [x] For the large residuals utility, printing more information (e.g., the magnitude of the residual, possibly sorted) would be helpful
- [ ] Support for binary and integer variables
- [ ] Residuals checks should ignore satisfied inequalities
Possible extensions:
~~- [ ] Tool to detect linearly dependent equations?~~
- [ ] Tool to detect high index DAEs?