⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@smondal13
Copy link
Contributor

@smondal13 smondal13 commented Jan 28, 2026

Summary/Motivation:

Most unit tests within pyomo/contrib/doe/tests utilized the reactor_example.py example, which is computationally expensive for the scope of these tests. This resulted in unnecessarily long execution times for the test suite.

This PR replaces the reactor_example.py with the simpler rooney_biegler_doe_example.py example in the tests. This change maintains the validity of the tests while significantly reducing computational overhead.

Performance Impact (MacBook with M4 chip):

Before: ~20 seconds

After: ~12 seconds

Improvement: ~40% reduction in test execution time.

Changes proposed in this PR:

  • Replaced usage of reactor_example.py with rooney_biegler_doe_example.py in pyomo/contrib/doe/tests.
  • Updated relevant assertions to match the rooney_biegler_doe_example.py model structure.
  • Reduced the number of points calculated for sensitivity plotting.

Note:

This PR relies on PR #3803

Legal Acknowledgement

By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

smondal13 and others added 30 commits November 10, 2025 20:14
…ample did not solve to the desired point using A-optimality. However, when initialized to small value `1e-5`, it solved to the optimal point.
…scheme, the MM model solved without initialization from outside.
…`doe/tests`` files to reflect the changes.
…and `_Cholesky_option = False`. Add flag for functions are the only used in `trace` calculation.
Replace `model` with `m` in `cholesky_LLinv_imp()`

Co-authored-by: Bethany Nicholson <[email protected]>
… and add `doe_example..py` based on the rooney_biegler.py
- Introduced `RooneyBieglerExperimentFlag` to support model completeness flags for error handling in experiments.
- Updated test files to utilize `RooneyBieglerExperiment` and `RooneyBieglerExperimentFlag` for better isolation and error testing.
- Removed references to `FullReactorExperiment` in favor of the new Rooney-Biegler experiment classes.
- Adjusted design ranges and parameters in tests to align with the new experiment structure.
- Improved test descriptions and organization for clarity and maintainability.`
@smondal13 smondal13 changed the title [Pyomo.DoE] Replace computationally expensive test example with RooneyBiegler [Pyomo.DoE] Replace computationally expensive test example with Rooney Biegler Jan 28, 2026
@smondal13
Copy link
Contributor Author

smondal13 commented Jan 29, 2026

@blnicho @adowling2 This PR is ready for initial design review.

@blnicho, one of the tests is failing. Can you please take a look?

Note: This PR depends on #3803

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Ready for design review
Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants