run#

Optimization.run(initial_params: ndarray | None = None, callback: Callable | None = None) tuple#

Run the optimization workflow.

This method determines the optimization type and dispatches to the appropriate optimization method (shape or topology).

Parameters:
initial_paramsnp.ndarray, optional

Initial parameter values. If None, uses default initialization from the parametrization (default: None).

callbackCallable, optional

Optional callback function called after each iteration. The callback should accept three arguments: (params, fom, gradient) (default: None).

Returns:
np.ndarray

Final optimized parameter values.

float

Final FOM value at the optimized parameters.

Raises:
ValueError

If initial_params is provided but has incorrect shape.

RuntimeError

If optimization encounters an error during execution.