validate_gradient#

lumopt2.utils.fd_grad.validate_gradient(project: Project, params: ndarray, indices: List[int] = None, perturbation: float = 0.01) tuple[ndarray, ndarray, float]#

Validate the adjoint gradient by comparing it to a finite difference gradient for specified parameter indices.

Parameters:
projectlumopt2.Project

Project instance for which the gradient is validated.

paramsnp.ndarray

Optimization parameters for gradient computation.

indicesList[int], optional

List of parameter indices to validate (default: all).

perturbationfloat

Small perturbation value for finite difference.

Returns:
tuple

(fd_grad, grad_adj_at_indices, err_rel): finite difference gradient, adjoint gradient, relative error.

Raises:
ValueError

If input types are invalid.