HartmannWfsDft

Top  Previous  Next

LL_HartmannWfsDft

View Inside HartmannWfsDft:

LL_HartmannWfsDft_Inside

 

HartmannWfsDft models a Hartmann-Shack wavefront sensor. For any incident wavefront, the complex field over each subaperture is propagated to the sensor plane (usually at the common focal plane of the subaperture lenslets) using a DFT, then the fields from all the subapertures are superposed and the net intensity is computed. Finally, the net intensity is integrated over the exposure length to produce an "integratedIntensity" output in units of J/m^2.

In addition to integratedIntensity in the sensor plane, HartmannWfsDft also computes subaperture centroids to yield noise-free, high-resolution subapertures slopes. See the LightLike User Guide for discussion of these slopes compared to noisy slopes obtained by appending further subsystems to HartmannWfsDft.

HartmannWfsDft can model any number of subapertures, in any geometry. Subaperture geometries are generally created using the LightLike suite's AOGeom GUI. That GUI can create a data file whose relevant subaperture specifications can be easily read into the {xSubap, ySubap} parameters of HartmannWfsDft.

The temporal triggering and exposure parameters of HartmannWfsDft are identical to those of those of the more basic LightLike sensors. See the LightLike User Guide for a detailed discussion of the triggering of sensor exposures. Note in particular that the input "sampleInterval" is only used to generate multiple samples within one "exposureLength". To obtain one sample per "exposureLength" (the typical practice), set "sampleInterval" to 0.0.

HartmannWfsDft also allows an optional delay used to model readout time: if this is set non-zero, then the output only becomes available at that delay after the end of the exposure length window.

Like all LightLike optical sensors, HartmannWfsDft works with both pulsed and continuous wave illumination. If multiple wavefronts (i.e., from separate sources) are received simultaneously they are assumed to be mutually incoherent, so their intensities add.

HartmannWfsDft is a complex module: the LightLike User Guide gives further guidance on its usage and the setting of parameters.

Note that two of the parameters are annotated as "Used ONLY with Wavesharing". For essentially all LightLike usage, these parameters have NO effect whatsoever: leave the values at their defaults (for advanced usage, see LightLike User Guide for details).

C++ type

name

value

description

Parameters

double

wavelength

1.0e-06

Wavelength at which sensor is sensitive (m)

int

nxyPupil

512

Used ONLY with Wavesharing (see LightLike User Guide)

double

dxyPupil

0.01

Used ONLY with Wavesharing (see LightLike User Guide)

int

nxyDetector

512

Number of sample points across FULL sensor plane

double

dxyDetector

10.0e-06

Spacing of sample points in sensor plane (m)

double

subapWidth

0.1

Width of subapertures in the pupil plane (m)

double

detectorPlaneDistance

1.0

(m) Usually equal to focalDistance, but allowed to differ.

double

focalDistance

1.0

Focal length of lenslets (m)

double

magnification

1.0

Magnification of lenslet array

double

overlapRatio

0.0

Controls overlap of propagated subaperture fields (0.0->abutting)

Vector<double>

xSubap

Vector()

X-coordinates of the subap centers in the pupil plane (m)

Vector<double>

ySubap

Vector()

Y-coordinates of the subap centers in the pupil plane (m)

double

xSlope0

0.0

X slopes to be output prior to the first complete sample (rad)

double

ySlope0

0.0

Y slopes to be output prior to the first complete sample (rad)

Inputs

Light

incident

Light()

Describes all light incident from the "incoming" direction

bool

on

true

on/off switch (on=true, off=false)

double

exposureInterval

0.001

Time between start of successive exposure windows (s)

double

exposureLength

0.000001

Length of each exposure window (s)

double

sampleInterval

0.0

Time between samples within one exposureLength (s)

Outputs

Grid<double>

integrated_intensity


Temporally-integrated intensity at focal plane (J/m^2)

Vector<double>

slopes


Subaperture wavefront x-slopes followed by y-slopes (radians of tilt angle)