CompoundOpticalSystem

class poppy.CompoundOpticalSystem(optsyslist=None, name=None, **kwargs)[source]

Bases: OpticalSystem

A concatenation of two or more optical systems, acting as a single larger optical system.

This can be used to combine together multiple existing OpticalSystem instances, including mixed lists of both Fraunhofer and Fresnel type systems.

Create combined optical system,

Parameters:
optsyslistList of OpticalSystem and/or FresnelOpticalSystem instances.

Attributes Summary

planes

A merged list containing all the planes in all the included optical systems

Methods Summary

input_wavefront([wavelength, inwave])

Create input wavefront for a CompoundOpticalSystem

propagate(wavefront[, normalize, ...])

Core low-level routine for propagating a wavefront through an optical system

Attributes Documentation

planes

A merged list containing all the planes in all the included optical systems

Methods Documentation

input_wavefront(wavelength=<Quantity 1.e-06 m>, inwave=None)[source]

Create input wavefront for a CompoundOpticalSystem

Input wavefronts for a compound system are defined by the first OpticalSystem in the list. We tweak the _display_hint_expected_planes to reflect the full compound system however.

propagate(wavefront, normalize='none', return_intermediates=False, display_intermediates=False)[source]

Core low-level routine for propagating a wavefront through an optical system

See docstring of OpticalSystem.propagate for details