IDAES/idaes-pse

Model Diagnostics Checklist

Open

#1,222 opened on Jul 11, 2023

 (4 comments) (0 reactions) (1 assignee)Python (314 forks)auto 404
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 DiagnosticsToolbox class - 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 DegeneracyHunter class
  • Extended documentation and examples
  • 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?

Contributor guide