lens_forvard - propagates the field in spherical coordinates system.
The principle of beam propagation in the ''fixed'' and ''floating'' coordinate systems (for the case of a lens waveguide) are shown in below figure:
The spherical coordinates follow the geometrical section of the divergent or convergent light beam. Propagation in spherical coordinates is implemented with programs lens_forvard and lens_fresn . Both filters accept two parameters: the focal distance of the lens placed in the input of the propagation distance, and the distance of propagation. When lens_forvard or lens_fresn is called, it ''bends'' the coordinate system so that it follows the divergent or convergent spherical wavefront, and then propagates the field to the distance Z in the transformed coordinates. Filter convert should be used to convert the field back to the rectangular coordinate system. Some SAO functions can not be applied to the field in spherical coordinates.
As the coordinates follow the geometrical section of the light beam, operator lens_forvard (f,10,10) will produce floating exception because the calculations just can not be conducted in a grid with zero size (that is so in the geometrical approximation of a focal point). On the other hand, diffraction to the focus is equivalent to the diffraction to the far field (infinity), thus FFT convolution algorithm will not work properly anyway. To model the diffraction into the focal point, a more complicated trick should be used:(see the below example)
Here we calculate the diffraction to the focus of a lens with a focal distance of 1m. It is represented as a combination of a weak phase mask lens 10 and a ''strong'' geometrical coordinate transform lens_fresn 1.111111 1. The grid after propagation is 10 times narrower than in the input plane. The focal intensity is 650 times higher than the input intensity and the wavefront is plain as expected.
Diffraction behind the beam waist is more tricky: it can be done with lens_forvard but will not work with lens_fresn .
f1=begin(0.01,1e-6); f2=rect_ap(f1,0.005); f3=lens(f2,10); f4=lens_forvard(f3,1.111111,1); f5=convert(f4); field_plot(f5);
Chen jingyuan, Gan guangyong (IAPCM, Beijing,China.)
lens , convert , forvard , lens_fresnel ,