Skip to content

[OptApp][SIApp] Clamper projection - #14677

Open
talhah-ansari wants to merge 3 commits into
masterfrom
optimization/clamper_projection
Open

[OptApp][SIApp] Clamper projection#14677
talhah-ansari wants to merge 3 commits into
masterfrom
optimization/clamper_projection

Conversation

@talhah-ansari

Copy link
Copy Markdown
Contributor

📝 Description

This PR migrates the SmoothClamper utility from the SystemIdentificationApplication to the OptimizationApplication, refactors the Python bindings and usage accordingly, and introduces a ClampingProjection for controlling and projecting variable bounds. It also updates the relevant tests and integrates the new projection utility into the control workflow.

🆕 Changelog

  • Moved smooth_clamper.cpp, smooth_clamper.h, and their test from SystemIdentificationApplication to OptimizationApplication.
  • Updated Python bindings to expose SmoothClamper only in OptimizationApplication, removing it from SystemIdentificationApplication and adding it to the new location.
  • Added a new ClampingProjection class in opt_projection.py to generalize clamping/projection of design variables, with helper class TensorAdaptorBoundingManager for interval management. Registered clamping_projection as a supported projection type.
  • Moved class TensorAdaptorBoundingManager from tensor_adaptor_utils.py in SystemIdentificationApplication to a helper class in opt_projection.py because it is the only place it's being used and thus avoids dependency of OptApp on SIApp.
  • Refactored data_values_control.py to use the new projection utility instead of directly managing SmoothClamper and interval bounding.
  • Updated and moved the test_smooth_clamper test to the new location and ensured it is included in the test suite for OptimizationApplication.
  • Adjusted the initialization order in optimization_analysis.py to ensure processes are created and initialized in Initialize().

@talhah-ansari talhah-ansari self-assigned this Aug 13, 2026
@talhah-ansari talhah-ansari added the Optimization related to OptApp label Aug 13, 2026
@talhah-ansari

Copy link
Copy Markdown
Contributor Author

@sunethwarna I moved TensorAdaptorBoundingManager from tensor_adaptor_utils.py in SIApp to opt_projection.py in OptApp as a helper class, since it's used only there, so we avoid SIApp's dependency on OptApp. Let me know if we need to revert it.

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

Labels

Optimization related to OptApp

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant