fouriax.OpticalLayer#
- class OpticalLayer#
Bases:
ABCBase interface for field-to-field optical transformations.
Subclasses must implement
forward(), which receives aFieldand returns a transformedFieldwith the same grid and spectrum (unless the layer explicitly changes them).Override
validate_for()to add layer-specific compatibility checks (e.g. domain or polarisation requirements). Overrideparameters()to expose trainable or configurable values used during gradient-based optimisation.- __init__()#
Methods
__init__()forward(field)Apply this layer's optical transformation to
field.Return trainable or configurable layer parameters.
validate_for(field)Check that field is compatible with this layer.
- abstractmethod forward(field)#
Apply this layer’s optical transformation to
field.
- validate_for(field)#
Check that field is compatible with this layer.
The default implementation validates the field itself. Subclasses should call
super().validate_for(field)and add any layer-specific checks such as domain, polarization, or shape requirements.- Parameters:
field (Field)
- Return type:
None
- parameters()#
Return trainable or configurable layer parameters.
Returns an empty dict by default. Subclasses override this to expose arrays that should be updated during optimisation.
- Return type:
dict[str, Array]