Optimization API

Parameter Sweep

class prismo.optimization.sweep.ParameterSweep(parameters, simulation_func, output_dir=None, parallel=False, num_workers=None)[source]

Parameter sweep executor for batch simulations.

Runs multiple simulations with varying parameters and aggregates results. Supports parallel execution and result caching.

Parameters:
  • parameters (List[SweepParameter]) – Parameters to sweep over.

  • simulation_func (Callable) – Function that runs simulation: func(params_dict) -> results_dict

  • output_dir (Path, optional) – Directory for saving results.

  • parallel (bool, optional) – Whether to run simulations in parallel, default=False.

  • num_workers (int, optional) – Number of parallel workers. Default is number of CPU cores.

__init__(parameters, simulation_func, output_dir=None, parallel=False, num_workers=None)[source]
run(show_progress=True)[source]

Execute parameter sweep.

Parameters:

show_progress (bool) – Whether to show progress bar.

Returns:

Results for each parameter combination.

Return type:

List[dict]

save_results(filename='sweep_results.json')[source]

Save sweep results to JSON file.

Parameters:

filename (str) – Output filename.

Returns:

Path to saved file.

Return type:

Path

get_result_array(result_key)[source]

Extract a specific result as an array.

Parameters:

result_key (str) – Key in result dictionary.

Returns:

Results reshaped according to parameter dimensions.

Return type:

ndarray

find_optimal(metric, maximize=True)[source]

Find parameter combination with optimal metric.

Parameters:
  • metric (str) – Metric key to optimize.

  • maximize (bool) – Whether to maximize (True) or minimize (False).

Returns:

(optimal_parameters, optimal_results)

Return type:

Tuple[dict, dict]

plot_sweep_1d(x_param, y_metrics, save_path=None)[source]

Plot 1D parameter sweep results.

Parameters:
  • x_param (str) – Parameter name for x-axis.

  • y_metrics (List[str]) – Metric names for y-axis.

  • save_path (Path, optional) – Path to save figure.

Return type:

None

plot_sweep_2d(x_param, y_param, metric, save_path=None)[source]

Plot 2D parameter sweep results as heatmap.

Parameters:
  • x_param (str) – Parameter names for axes.

  • y_param (str) – Parameter names for axes.

  • metric (str) – Metric to visualize.

  • save_path (Path, optional) – Path to save figure.

Return type:

None

__repr__()[source]

String representation.

Return type:

str

class prismo.optimization.sweep.SweepParameter(name, values, unit='')[source]

Definition of a sweep parameter.

name

Parameter name.

Type:

str

values

Values to sweep over.

Type:

list or array

unit

Physical unit for documentation.

Type:

str, optional

name: str
values: list
unit: str = ''
__init__(name, values, unit='')