[1]:
from diffractio import degrees, np, um
from diffractio.scalar_masks_XY import Scalar_mask_XY
from diffractio.scalar_masks_XYZ import Scalar_mask_XYZ

6.2.4. Sphere

[3]:
length = 100 * um
numdataX = 128
numdataZ = 128


x0 = np.linspace(-length / 2, length / 2, numdataX)
y0 = np.linspace(-length / 2, length / 2, numdataX)
z0 = np.linspace(-length / 2, length / 2, numdataX)
wavelength = 0.55 * um

uxyz = Scalar_mask_XYZ(
    x=x0, y=y0, z=z0, wavelength=wavelength, n_background=1., info='')
uxyz.sphere(
    r0=(0 * um, 0 * um, 0 * um),
    radius=(50 * um, 50 * um, 50 * um),
    refractive_index=2,
    angles=(0 * degrees, 0 * degrees, 45 * degrees))

uxyz.draw_refractive_index()

ab1d165374294c4eb60d61ad5ce79c20

6.2.5. Square

[3]:
length = 100 * um
numdataX = 128
numdataZ = 128


x0 = np.linspace(-length / 2, length / 2, numdataX)
y0 = np.linspace(-length / 2, length / 2, numdataX)
z0 = np.linspace(-length / 2, length / 2, numdataX)
wavelength = 0.55 * um


uxyz = Scalar_mask_XYZ(
    x=x0, y=y0, z=z0, wavelength=wavelength, n_background=1., info='')
uxyz.square(
    r0=(0 * um, 0 * um, 0 * um),
    length=(50 * um, 50 * um, 50 * um),
    refractive_index=2,
    angles=None,
    rotation_point=None)
uxyz.draw_refractive_index()

close the window to continue

f616d9d08c3f4fa09a4fde3d33843b0c

6.2.6. Cylinder

[4]:
length = 100 * um
numdataX = 128
numdataZ = 128

longitud = 50 * um

x0 = np.linspace(-length / 2, length / 2, numdataX)
y0 = np.linspace(-length / 2, length / 2, numdataX)
z0 = np.linspace(-longitud, longitud, numdataZ)
wavelength = 0.55 * um


uxyz = Scalar_mask_XYZ(
    x=x0, y=y0, z=z0, wavelength=wavelength, n_background=1., info='')
uxyz.cylinder(
                 r0=(0 * um, 0 * um, 0 * um),
                 radius=(25 * um, 25 * um),
                 length=25 * um,
                 refractive_index=2,
                 eje=(1, 1, 1),
                 angle=45 * degrees)
uxyz.draw_refractive_index()
close the window to continue

5b55b3a4642848a0b47df01131d94a3b