8.11. Focal shift

[2]:
from diffractio import um, mm
from diffractio import plt, np
from diffractio.scalar_masks_XY import Scalar_mask_XY
from diffractio.scalar_sources_XY import Scalar_source_XY

8.11.1. Long focal distance

[3]:
x0=np.linspace(-1000*um, 1000*um, 512)
y0=np.linspace(-1000*um, 1000*um, 512)
wavelength = 0.6328*um
[4]:
u0=Scalar_source_XY(x0,y0,wavelength)
u0.plane_wave()
[5]:
focal = 25*mm

t0 = Scalar_mask_XY(x0,y0,wavelength)
t0.lens(r0=(0,0), focal=focal)
t0.pupil()
[6]:
zout=np.linspace(0.8*focal, 1.2*focal, 256)
xout= np.linspace(-100,100,128)
yout=0

[7]:
u1=t0.CZT(z=zout, xout=xout, yout=yout)
[8]:
u1.draw(logarithm=1e-1, z_scale='mm')
../../_images/source_examples_scalar_focal_shift_8_0.png
[9]:
u2=t0.CZT(z=zout, xout=0, yout=0)
u2.normalize()
[10]:
u2.draw(z_scale='mm')
plt.grid('on')
../../_images/source_examples_scalar_focal_shift_10_0.png

8.11.2. Short focal distance

[11]:
x0=np.linspace(-100*um, 100*um, 512)
y0=np.linspace(-100*um, 100*um, 512)
wavelength = 0.6328*um
[12]:
u0=Scalar_source_XY(x0,y0,wavelength)
u0.plane_wave()
[13]:
focal = 250*um

t0 = Scalar_mask_XY(x0,y0,wavelength)
t0.lens(r0=(0,0), focal=focal)
t0.pupil()

[14]:
zout=np.linspace(0.8*focal, 1.2*focal, 256)
xout= np.linspace(-20,20,128)
yout=0
u1=t0.CZT(z=zout, xout=xout, yout=yout)
[15]:
u1.draw(logarithm=1e-1)
../../_images/source_examples_scalar_focal_shift_16_0.png
[16]:
u2=t0.CZT(z=zout, xout=0, yout=0)
u2.normalize()
[18]:
u2.draw()
plt.grid('on')
plt.plot([focal, focal], [0, 1], 'r--')
../../_images/source_examples_scalar_focal_shift_18_0.png
[ ]: