Skip to content

Latest commit

 

History

History
189 lines (143 loc) · 5.87 KB

command-reference.md

File metadata and controls

189 lines (143 loc) · 5.87 KB

#Command reference

Axicon(phi, n1, x_shift, y_shift, Field)

propagates the Field through an axicon. phi: top angle in radians;
n1: refractive index (must be real);
x_shift, y_shift: shift from the centre.

BeamMix(Field1, Field2)

Addition of Field1 and Field2.

Begin(grid_size, lambda, grid_dimension)

initialises a uniform field with unity amplitude and zero phase. grid_size: the size of the grid in units you choose, lambda: the wavelength of the field with the same units as the grid size, grid_dimension: the dimension of the grid. This must be an even number.

###CircAperture(R, x_shift, y_shift, Field) circular aperture. R=radius, x_shift, y_shift = shift from centre.

###CircScreen(R, x_shift, y_shift, Field) circular screen. R=radius, x_shift, y_shift = shift from centre.

###Convert(Field) converts the field from a spherical grid to a normal grid.

###CylLens(fx, fy, x_shift, y_shift, Field) Cylinder lens. *fx, fy = focallengths in x- and y direction. x_shift, y_shift = shift from centre. *

###Forvard(z, Field) propagates the field a distance z using FFT.

###Forward(z, new_size, new_number, Field) propagates the field a distance z, using direct integration of the Kirchoff-Fresnel integral.

###Fresnel(z, Field) propagates the field a distance z. A convolution method has been used to calculate the diffraction integral

###Gain(Isat, gain, length, Field) Laser saturable gain sheet. Isat=saturation intensity, gain= small signal gain, length=length of gain medium

###GaussAperture(R, x_shift, y_shift, T, Field) Gauss aperture. R=radius, x_shift, y_shift = shift from centre; T= centre transmission

###GaussHermite(n, m, A, w0, Field) substitutes a TEMm,n Gauss Hermite mode with waist w0 and amplitude A into the Field

###GaussLaguerre(p, m, A, w0, Field) substitutes a TEMp,m Gauss Laguerre mode with waist w0 and amplitude A into the Field

###GaussScreen(R, x_shift, y_shift, T, Field) Gauss screen. R=radius, x_shift, y_shift = shift from centre; T= centre transmission

###IntAttenuator(Att, Field) Intensity Attenuator. Attenuates the field-intensity by a factor Att

###Intensity(flag, Field) calculates the intensity of the field. flag=0: no scaling; flag=1: normalisation of the intensity; flag=2: bitmap with gray scales

###Interpol(new_size, new_n, xs, ys, phi, magn, Field) interpolates the field to a new grid. new_size: new grid size; new_n: new grid dimension; xs, ys : the shifts of the field in the new grid; phi: angle of rotation (after the shifts); magn: magnification (last applied)

###Lens(f, x_shift, y_shift, Field) propagates the field through a lens. f: focal length; x_shift, y_shift: transverse shifts of the lens optical axis

###LensForvard(f, z, Field) propagates the field a distance z using a variable coordinate system. f: focal length of the input lens: z: distance to propagate

###LensFresnel(f, z, Field) propagates the field a distance z using a variable coordinate system. f: focal length of the input lens; z: distance to propagate

###MultIntensity(Intensity, Field) multiplies the field with an intensity profile stored in the array: Intensity

###MultPhase(Phase, Field) multiplies the field with a phase profile stored in the array: Phase

###Normal(Field) normalizes the field.

###Phase(Field) calculates the phase of the field

###PhaseUnwrap(Phase) unwraps phase.

###PipFFT(Direction, Field) Performs a Fourier transform to the Field. Direction = 1: Forward transform; Direction = -1: Inverse transform

###Power(Field) get the total power of the Field

###RandomIntensity(seed, Field) Random intensity mask. 'seed' is an arbitrary number to initiate the random number generator

###RandomPhase(seed, max, Field) Random phase mask. 'seed' is an arbitrary number to initiate the random number generator; 'max' is the maximum value of the phase.

###RectAperture(sx, sy, x_shift, y_shift, phi, Field) rectangular aperture. sx, sy: dimensions of the aperture; x_shift, y_shift: shift from centre; phi: rotation angle.

###RectScreen(sx, sy, x_shift, y_shift, phi, Field) rectangular screen. sx, sy: dimensions of the screen; x_shift, y_shift: shift from centre; phi: rotation angle.

###Steps(z, N_steps, Refract[N, N], Field) Propagates 'Field' a distance z in 'N_steps' steps in a medium with a complex refractive index stored in the NxN matrix 'Refract'. 'N' is the grid dimension.

###Strehl(Field) calculates the Strehl ratio.

###SubIntensity(intensity, Field) substitutes an intensity profile into the field. The profile must be stored in the array: Intens

###SubPhase(phase, Field) substitutes a phase profile into the field.The phase profile must be stored in the array: phase.

###Tilt(tx, ty, Field) introduces tilt in to the field distribution. tx, ty = tilt components in radians.

###Zernike(n, m, R, A, Field) Introduces arbitrary Zernike aberration into the field. n and m are the integer orders, (See Born and Wolf, 6th edition p.465, Pergamon 1993). R is the radius at which the phase amplitude reaches A (in radians)

###version() output the version of LightPipes

###description() get a short description of LightPipes()

###getGridSize() get the current grid size

###setGridSize(newSize) set the grid size to newSize

###getWavelength() get the current wavelength

###setWavelength(newWavelength) set the wavelength to newWavelength

###getGridDimension() get the grid dimension

###Help() output help

###Example() output the Young interferometer example