compute_lumerical_to_permittivity_jacobian#

Parametrization.compute_lumerical_to_permittivity_jacobian(fdtd_session: FdtdSession, params: ndarray) tuple[dict[str, dict[str, dict[str, ndarray]]], ndarray, float]#

Compute d_eps/dP, the (sparse) Jacobian of the permittivity wrt Lumerical Geometry Parameters (‘P’). Uses the DEpsCalculator to compute the sparse Jacobian.

Parameters:
fdtd_sessionFdtdSession,

The FDTD session within which to compute the Jacobian.

paramsnp.ndarray

Optimization parameter values at which to compute the Jacobian.

Returns:
d_eps_dP_dictdict[str, dict[str, dict[str, np.ndarray]]]

Nested dictionary. Top-level keys are 'object_name::property_name' strings. Each value is a dict with keys 'eps_x', 'eps_y', 'eps_z', where each entry is a dict with 'data', 'indices', and 'indptr' arrays representing the sparse dEps/dP.

global_shapenp.ndarray

Shape (4,) array [Nx, Ny, Nz, Nlambda] of the full (un-cropped) index monitor.

wl_metresnp.ndarray

1D matrix of wavelength(s) in meters corresponding to the index monitor.