CompoundAnalyticOptic
- class poppy.CompoundAnalyticOptic(opticslist=None, name='unnamed', mergemode='and', verbose=True, **kwargs)[source]
Bases:
AnalyticOpticalElement
Define a compound analytic optical element made up of the combination of two or more individual optical elements.
This is just a convenience routine for semantic organization of optics. It can be useful to keep the list of optical planes cleaner, but you can certainly just add a whole bunch of planes all in a row without using this class to group them.
All optics should be of the same plane type (pupil or image); propagation between different optics contained inside one compound is not supported.
- Parameters:
- opticslistlist
A list of AnalyticOpticalElements to be merged together.
- mergemodestring, default = ‘and’
- Method for merging transmissions:
- ‘and’resulting transmission is product of constituents. (E.g
trans = trans1*trans2)
- ‘or’resulting transmission is sum of constituents, with overlap
subtracted. (E.g. trans = trans1 + trans2 - trans1*trans2)
In both methods, the resulting OPD is the sum of the constituents’ OPDs.
Methods Summary
get_opd
(wave)Return the optical path difference, given a wavelength.
get_transmission
(wave)Note that this is the amplitude transmission, not the total intensity transmission.
Methods Documentation
- get_opd(wave)[source]
Return the optical path difference, given a wavelength.
- In this base class instance, the wavefront parameter ‘wave’ is not used,
and the .opd attribute of the optic is returned directly. Subclasses may change this behavior, for instance to evaluate optical aberrations on the sampling defined for that wavefront, or to compute the wavelength-dependent aberrations of a refractive optic.
- Parameters:
- wavefloat or obj
either a scalar wavelength or a Wavefront object
- Returns:
- ndarray giving OPD in meters