WedgeSegmentedDeformableMirror
- class poppy.WedgeSegmentedDeformableMirror(name='WedgeSegDM', radius=<Quantity 1. m>, rings=1, nsections=4, gap_radii=None, gap=<Quantity 0.01 m>, include_factor_of_two=False, **kwargs)[source]
Bases:
SegmentedDeformableMirror
,WedgeSegmentedCircularAperture
Circularly segmented DM. Each actuator is controllable in piston, tip, and tilt (and any zernike term)
- Parameters:
- rings, segment_radius, gap, centervarious
All keywords for defining the segmented aperture geometry are inherited from the MultiCircularAperture class. See that class for details.
- include_factor_of_twoBool
include the factor of two due to reflection in the OPD function (optional, default False). If this is set False (default), actuator commands are interpreted as being in units of desired wavefront error directly; the returned WFE will be directly proportional to the requested values (convolved with the actuator response function etc). If this is set to True, then the actuator commands are interpreted as being in physical surface units, and the WFE is therefore a factor of two larger. The returned WFE will be twice the amplitude of the requested values (convolved with the actuator response function etc.)
Define a circular aperture made of pie-wedge or keystone shaped segments.
- Parameters:
- namestring
Descriptive name
- radiusfloat
Radius of the pupil, in meters.
- ringsint
Number of rings of segments
- nsectionsint or list of ints
Number of segments per ring. If one int, same number of segments in each ring. Or provide a list of ints to set different numbers per ring. To exclude the center for an on-axis aperture, provide a 0 as the first element of nsections to indicate 0 segments in the first ring.
- gap_radiiquantity length
Radii from the center for the gaps between rings
- gapquantity length
Width of gaps between segments, in both radial and azimuthal directions
- gray_pixelbool, optional
Apply gray pixel approximation to return fractional transmission for edge pixels that are only partially within this aperture? (Note, currently this gives a warning; disabled by default)
- kwargsother kwargs are passed to CircularAperture
- Potential TODO: also have this inherit from MultiSegmentedAperture and subclass
- some of those functions as appropriate. Consider refactoring from gap_radii to instead
- provide the widths of each segment. Add option for including the center segment or having
- a missing one in the middle for on-axis apertures. Use grayscale approximation for rasterizing
- the circular gaps between the rings.