compute_gradient_from_fields#

abstractmethod BaseParametrization.compute_gradient_from_fields(gradient_fields: ndarray, fdtd_session: FdtdSession, params: ndarray, polygon_name: str | None = None) ndarray#

Compute the gradient of the FOM with respect to optimization parameters.

Contracts the adjoint gradient fields with the parametrization-specific Jacobian chain (d_eps/dp) to produce the scalar gradient vector.

Parameters:
gradient_fieldsnp.ndarray

Adjoint gradient fields with shape (nx, ny, nz, 3), already summed over wavelengths.

fdtd_sessionFdtdSession

Active FDTD session (used by parametrizations that need to query the simulation, e.g. to compute finite-difference Jacobians).

paramsnp.ndarray

Current optimization parameter values.

polygon_namestr, optional

Override for the FDTD CAD polygon name. Used by CombinedParametrization to disambiguate per-child polygons in the shared simulation. Concrete parametrizations that don’t represent a polygon accept and ignore this argument.

Returns:
np.ndarray

1D gradient array with length equal to the number of optimization parameters.