fd_sweep_perturbation#

lumopt2.utils.fd_grad.fd_sweep_perturbation(project: Project, params: ndarray, index: int, perturbation_values: List[float] | ndarray) tuple[ndarray, ndarray]#

Finite difference convergence test: compute the finite difference gradient for a range of perturbation values and plot the results.

All perturbed simulations across all perturbation values are queued together and run concurrently.

Parameters:
projectlumopt2.Project

Project instance for which the convergence test is performed.

paramsnp.ndarray

Optimization parameters for gradient computation.

indexint

Parameter index to test.

perturbation_valueslist or np.ndarray

List of perturbation values to test.

Returns:
tuple

(fd_grad_val, fd_grad_diff): finite difference gradients for each perturbation, difference between consecutive gradients.

Raises:
ValueError

If input types are invalid.