Priority:Lowcorediagnosticsenhancementhelp wanted
Repository metrics
- Stars
- (330 stars)
- PR merge metrics
- (PR metrics pending)
Description
Related to #1208
This issue is to track general steps and tasks related to the new DiagnosticsToolbox class.
First Steps:
- Create new
DiagnosticsToolboxclass - PR #1228 - Structural Issues report
- Model statistics - PR #1228
- Unit consistency - PR #1228
- D-M decomposition - PR #1228
- Pyomo tool to detect potential evaluation errors - PR #1268
- Numerical Issues report - PR #1228
- Variables with no value or values near bounds or zero
- Scaling issues
- Jacobian analysis and condition number
- Methods to assert no diagnostics issues found (for testing) - PR #1228
- Basic documentation and examples - PR #1228
- Run a Usability Study with team
Next Steps:
- Integrate parameter sweep capabilities - PR #1284
- standardize API for parameter sweep/model convergence analysis
- Use Pysmo for parameter sampling
- Extend diagnostics tools to support multiple samples
- Integrate Block-Triangularization decomposition into tools
- Allow numerical analysis on independent sub-blocks
- Add SVD analysis to new class - PR #1256
- Address issues with SVD tool - at least partially in PR #1256
- Rewrite degeneracy hunter as part of new class - PR #1256
- deprecate old
DegeneracyHunterclass
- deprecate old
- Extended documentation and examples
- Add tutorial for Diagnostics Toolbox to example - https://github.com/IDAES/examples/pull/78
- 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)
- 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?