9.2. Refection and refraction

9.2.1. Refection and refraction at a surface

[1]:
from diffractio import np
from diffractio import degrees, um
from diffractio.scalar_sources_X import Scalar_source_X
from diffractio.scalar_masks_XZ import Scalar_mask_XZ

from diffractio.vector_fields_X import Vector_field_X
from diffractio.vector_fields_XZ import Vector_field_XZ
[2]:
from py_pol.jones_vector import Jones_vector
[3]:

x0 = np.linspace(-100*um, 100*um, 1024) z0 = np.linspace(-100*um, 100*um, 1024) wavelength = 5*um u0 = Scalar_source_X(x=x0, wavelength=wavelength) u0.gauss_beam(A=1, x0=0*um, w0=10*um, z0=0*um) u_xz = Scalar_mask_XZ(x=x0, z=z0, wavelength=wavelength) u_xz.incident_field(u0) u_xz.semi_plane(r0=(0*um, 0*um), refractive_index=1.5, angle=60*degrees) u_xz.draw_refractive_index(scale='scaled')
../../_images/source_examples_vector_reflection_refraction_4_0.png
[4]:
j0 = Jones_vector().general_azimuth_ellipticity(azimuth=0*degrees, ellipticity=0*degrees)
print(j0)
E =
[+1.000]
[+0.000]

[12]:
EH_xz = Vector_field_XZ(x0,z0, wavelength)
EH_xz.incident_field(u0=u0, j0=j0)
EH_xz.refractive_index_from_scalarXZ(u_xz)
[13]:
EH_xz.FP_WPM(has_edges=True,  verbose=True)
Time = 1.24 s, time/loop = 1.211 ms
[14]:
EH_xz.draw('intensities', logarithm=1e1, draw_borders=True, scale='scaled')
../../_images/source_examples_vector_reflection_refraction_8_0.png
[15]:
EH_xz.draw('EH', draw_z=True, draw_borders=True, scale='scaled', color='k.')
../../_images/source_examples_vector_reflection_refraction_9_0.png
[17]:
P_vector = EH_xz.draw('poynting_vector_averaged', draw_borders=True,
                                 scale='scaled', color='k.')
../../_images/source_examples_vector_reflection_refraction_10_0.png

9.2.2. At a layer

[18]:

x0 = np.linspace(-150*um, 150*um, 1024) z0 = np.linspace(0*um, 300*um, 1024) wavelength = 5*um u0 = Scalar_source_X(x=x0, wavelength=wavelength) u0.gauss_beam(A=1, x0=0*um, w0=20*um, z0=100*um) angle=25*degrees refractive_index = 1/np.arctan(np.pi/2-angle) print("n = {:2.2f}".format(refractive_index)) u_xz = Scalar_mask_XZ(x=x0, z=z0, wavelength=wavelength) u_xz.incident_field(u0) u_xz.square(r0=(0*um, 200), size=(75,500), refractive_index = refractive_index, angle=angle) u_xz.draw_refractive_index(scale='scaled')
n = 1.18
../../_images/source_examples_vector_reflection_refraction_12_1.png
[19]:
j0 = Jones_vector().general_azimuth_ellipticity(azimuth=0*degrees, ellipticity=0*degrees)
print(j0)
E =
[+1.000]
[+0.000]

[20]:
EH_xz = Vector_field_XZ(x0,z0, wavelength)
EH_xz.incident_field(u0=u0, j0=j0)
EH_xz.refractive_index_from_scalarXZ(u_xz)
[21]:
EH_xz.FP_WPM(has_edges=True)
[22]:
EH_xz.draw('intensities', scale='scaled', logarithm=1e1)

../../_images/source_examples_vector_reflection_refraction_16_0.png
[24]:
EH_xz.draw('E2H2', logarithm=False, normalize= False, cut_value=None, draw_z=True, color='w.')
../../_images/source_examples_vector_reflection_refraction_17_0.png
[25]:
P_vector = EH_xz.draw('poynting_vector_averaged', color='k.', scale='scaled')
../../_images/source_examples_vector_reflection_refraction_18_0.png
[26]:
Irr= EH_xz.draw('irradiance', scale='scaled')
../../_images/source_examples_vector_reflection_refraction_19_0.png