fouriax.MetaAtomInterpolationLayer#

class MetaAtomInterpolationLayer(library, raw_geometry_params, min_geometry_params, max_geometry_params, polarization_mode='scalar')#

Bases: OpticalLayer

Optical layer applying a geometry-parameterised meta-atom transmission.

Raw (unconstrained) geometry parameters are mapped into physical bounds via a sigmoid transform, then looked up in the attached MetaAtomLibrary to obtain per-pixel complex transmission.

Supports two polarisation modes:

  • "scalar": a single set of geometry parameters modulates both polarisation channels identically.

  • "jones_diagonal": independent geometry parameters for the Ex and Ey channels, producing a diagonal Jones transmission.

Parameters:
  • library (MetaAtomLibrary) – Pre-built meta-atom transmission library.

  • raw_geometry_params (Array) – Unconstrained optimisation variables. Shape depends on mode and whether parameters are global or spatially varying.

  • min_geometry_params (Array) – 1-D lower bounds for each geometry axis.

  • max_geometry_params (Array) – 1-D upper bounds for each geometry axis.

  • polarization_mode (Literal['scalar', 'jones_diagonal']) – "scalar" or "jones_diagonal".

__init__(library, raw_geometry_params, min_geometry_params, max_geometry_params, polarization_mode='scalar')#
Parameters:
  • library (MetaAtomLibrary)

  • raw_geometry_params (Array)

  • min_geometry_params (Array)

  • max_geometry_params (Array)

  • polarization_mode (Literal['scalar', 'jones_diagonal'])

Return type:

None

Methods

__init__(library, raw_geometry_params, ...)

bounded_geometry_params()

Map unconstrained raw parameters into physical bounds via sigmoid.

forward(field)

Apply interpolated meta-atom transmission to the input field.

parameters()

Return raw and bounded geometry parameters plus optimization bounds.

validate_for(field)

Validate field compatibility and library wavelength coverage.

Attributes

library: MetaAtomLibrary#
raw_geometry_params: Array#
min_geometry_params: Array#
max_geometry_params: Array#
polarization_mode: Literal['scalar', 'jones_diagonal'] = 'scalar'#
bounded_geometry_params()#

Map unconstrained raw parameters into physical bounds via sigmoid.

Returns:

Bounded geometry parameters in the same layout as raw_geometry_params.

Return type:

Array

forward(field)#

Apply interpolated meta-atom transmission to the input field.

Parameters:

field (Field) – Scalar field for polarization_mode="scalar" or Jones field for polarization_mode="jones_diagonal".

Returns:

Field with the same grid, spectrum, domain, and batch axes as the input, modulated by the interpolated complex transmission.

Return type:

Field

validate_for(field)#

Validate field compatibility and library wavelength coverage.

Parameters:

field (Field)

Return type:

None

parameters()#

Return raw and bounded geometry parameters plus optimization bounds.

Return type:

dict[str, Array]