Exemplo n.º 1
0
mmt = (kx, ky)
#mmt = (0, 0)

########## Harmonic source
smth = source.Smoothing(dt, 1000)
src1 = source.Harmonic(dt)
src1.set_wvlen(wvlen)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 140*nm), (Lx, 140*nm+dy), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
setter1 = source.Setter(TF, (140 * nm, 0), (140 * nm + dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
#setter1 = source.Setter(TF, (100*nm, 140*nm), (100*nm+dx, 140*nm+dy), mmt)
#setter2 = source.Setter(TF, (200*nm, 300*nm), (200*nm+dx, 300*nm+dy), mmt)
#setter3 = source.Setter(TF, (300*nm, 400*nm), (300*nm+dx, 400*nm+dy), mmt)
#setter4 = source.Setter(TF, (400*nm, 220*nm), (400*nm+dx, 220*nm+dy), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
#------------------------------------------------------------------#

########## Box
Exemplo n.º 2
0
#mmt = (0, 0)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (140*nm, 0), (140*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
setter1 = source.Setter(TF, (100*nm, 140*nm), (100*nm+dx, 140*nm+dy), mmt)
setter2 = source.Setter(TF, (200*nm, 300*nm), (200*nm+dx, 300*nm+dy), mmt)
setter3 = source.Setter(TF, (300*nm, 400*nm), (300*nm+dx, 400*nm+dy), mmt)
setter4 = source.Setter(TF, (400*nm, 220*nm), (400*nm+dx, 220*nm+dy), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
#------------------------------------------------------------------#

########## Box
#srt = ( 800*um,    0*um,    0*um)
#end = (1000*um, 1280*um, 1280*um)
#box = structure.Box(TF, srt, end, 4., 1.)

########## Circle
radius = 114.8*nm
#setter4 = source.Setter(TF, (0, 0,350*nm), (Lx, Ly,350*nm+dz), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (140*nm, 0), (140*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
setter1 = source.Setter(TF, (0, 160 * nm, 430 * nm),
                        (Lx, 160 * nm + dx, 430 * nm + dy), mmt)
setter2 = source.Setter(TF, (0, 200 * nm, 500 * nm),
                        (Lx, 200 * nm + dx, 500 * nm + dy), mmt)
setter3 = source.Setter(TF, (0, 300 * nm, 100 * nm),
                        (Lx, 300 * nm + dx, 100 * nm + dy), mmt)
setter4 = source.Setter(TF, (0, 450 * nm, 200 * nm),
                        (Lx, 450 * nm + dx, 200 * nm + dy), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
#------------------------------------------------------------------#

########## Box
#srt = ( 800*um,    0*um,    0*um)
#end = (1000*um, 1280*um, 1280*um)
#box = structure.Box(TF, srt, end, 4., 1.)
Exemplo n.º 4
0
#setter4 = source.Setter(TF, (0, 0,350*nm), (Lx, Ly,350*nm+dz), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (140*nm, 0), (140*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
setter1 = source.Setter(TF, ( 50*nm, Ly/2, 400*nm), ( 50*nm+dx, Ly/2+dy, 400*nm+dz), mmt)
setter2 = source.Setter(TF, ( 70*nm, Ly/2,   Lz/2), ( 70*nm+dx, Ly/2+dy,   Lz/2+dz), mmt)
setter3 = source.Setter(TF, ( 30*nm, Ly/2, 400*nm), ( 30*nm+dx, Ly/2+dy, 400*nm+dz), mmt)
setter4 = source.Setter(TF, ( 90*nm, Ly/2,   Lz/2), ( 90*nm+dx, Ly/2+dy,   Lz/2+dz), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
#------------------------------------------------------------------#

########## Box
srt = (100*nm,  0,  0)
end = (500*nm, Ly, Lz)
box = structure.Box(TF, srt, end, 3.4, 1.)

########## Circle
radius = a / 5
Exemplo n.º 5
0
#setter4 = source.Setter(TF, (0, 0,350*nm), (Lx, Ly,350*nm+dz), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (140*nm, 0), (140*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
setter1 = source.Setter(TF, (0, 100 * nm, 140 * nm),
                        (Lx, 100 * nm + dx, 140 * nm + dy), mmt)
setter2 = source.Setter(TF, (0, 200 * nm, 300 * nm),
                        (Lx, 200 * nm + dx, 300 * nm + dy), mmt)
setter3 = source.Setter(TF, (0, 300 * nm, 400 * nm),
                        (Lx, 300 * nm + dx, 400 * nm + dy), mmt)
setter4 = source.Setter(TF, (0, 400 * nm, 220 * nm),
                        (Lx, 400 * nm + dx, 220 * nm + dy), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
#------------------------------------------------------------------#

########## Box
#srt = ( 800*um,    0*um,    0*um)
#end = (1000*um, 1280*um, 1280*um)
#box = structure.Box(TF, srt, end, 4., 1.)
Exemplo n.º 6
0
lamz = float(sys.argv[1])*nm
kx = 0
ky = 2*np.pi / lamy
kz = 2*np.pi / lamz
phi, theta = 0, np.arctan(lamy/lamz)
wvlen = lamy*np.cos(theta)

mmt = (kx, ky, kz)

########## Harmonic source
smth = source.Smoothing(dt, 1000)
src1 = source.Harmonic(dt)
src1.set_wvlen(wvlen)

########## Plane wave normal to y-axis.
setter1 = source.Setter(TF, (0, 250*nm, 0), (Lx,  250*nm+dy, Lz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 0), (Lx, 150*nm+dy, Lz), mmt)
#setter3 = source.Setter(TF, (0, 250*nm, 0), (Lx, 250*nm+dy, Lz), mmt)
#setter4 = source.Setter(TF, (0, 350*nm, 0), (Lx, 350*nm+dy, Lz), mmt)

########## Plane wave normal to z-axis.
#setter1 = source.Setter(TF, (0, 0, 50*nm), (Lx, Ly, 50*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 0,150*nm), (Lx, Ly,150*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 0,250*nm), (Lx, Ly,250*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 0,350*nm), (Lx, Ly,350*nm+dz), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)
# phi is the angle between k0 vector and yz-plane.
# theta is the angle between k0cos(phi) and z-axis.
kx = k0 * np.sin(phi)
ky = k0 * np.cos(phi) * np.sin(theta)
kz = k0 * np.cos(phi) * np.cos(theta)

mmt = (kx, ky, kz)

########## Plane wave normal to x-axis.
#setter = source.Setter(TF, (200*um, 0, 0), (210*um, Ly, Lz), mmt)

########## Plane wave normal to y-axis.
#setter = source.Setter(TF, (0, 63*um, 0), (Lx, 64*um, Lz), mmt)

########## Plane wave normal to z-axis.
setter = source.Setter(TF, (0, 0, 50 * nm), (Lx, Ly, 50 * nm + dx), mmt)
setter1 = source.Setter(TF, (0, 0, 150 * nm), (Lx, Ly, 150 * nm + dz), mmt)
setter2 = source.Setter(TF, (0, 0, 250 * nm), (Lx, Ly, 250 * nm + dz), mmt)
setter3 = source.Setter(TF, (0, 0, 350 * nm), (Lx, Ly, 350 * nm + dz), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0,  100*nm,  100*nm), (Lx,  105*nm, 105*nm), mmt)
#setter2 = source.Setter(TF, (0*um,  30*um, 200*um), (31*um,  31*um, 201*um), mmt)
#setter3 = source.Setter(TF, (0*um, 127*um, 127*um), (31*um, 128*um, 128*um), mmt)
#setter4 = source.Setter(TF, (0*um, 200*um, 200*um), (31*um, 201*um, 201*um), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (640*um, 0, 640*um), (645*um, Ly, 645*um), mmt)
#setter2 = source.Setter(TF, (400*um, 0, 300*um), (410*um, Ly, 310*um), mmt)
#setter3 = source.Setter(TF, (400*um, 0, 400*um), (410*um, Ly, 410*um), mmt)
#setter4 = source.Setter(TF, (400*um, 0, 500*um), (410*um, Ly, 510*um), mmt)
Exemplo n.º 8
0
# mmt for plane wave normal to x axis
# theta is the angle between k0 and x-axis.
#kx = k0 * np.cos(theta)
#ky = k0 * np.sin(theta)

# mmt for plane wave normal to y axis
# theta is the angle between k0cos(phi) and y-axis.
kx = k0 * np.sin(theta)
ky = k0 * np.cos(theta)

mmt = (kx, ky)
#mmt = (0, 0)

########## Line src along x-axis.
setter1 = source.Setter(TF, (0, 240 * nm), (Lx, 240 * nm + dy), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (240*nm, 0), (240*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
#setter1 = source.Setter(TF, (100*nm, 140*nm), (100*nm+dx, 140*nm+dy), mmt)
#setter2 = source.Setter(TF, (200*nm, 300*nm), (200*nm+dx, 300*nm+dy), mmt)
#setter3 = source.Setter(TF, (300*nm, 400*nm), (300*nm+dx, 400*nm+dy), mmt)
#setter4 = source.Setter(TF, (400*nm, 220*nm), (400*nm+dx, 220*nm+dy), mmt)
Exemplo n.º 9
0
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (140*nm, 0), (140*nm+dx, Ly), mmt)
#setter2 = source.Setter(TF, (200*nm, 0), (410*nm+dx, Ly), mmt)
#setter3 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)
#setter4 = source.Setter(TF, (100*nm, 0), (410*nm+dx, Ly), mmt)

########## Point src.
#setter1 = source.Setter(TF, ( 50*nm, 3*Ly/8, 3*Lz/8), ( 50*nm+dx, 3*Ly/8+dy, 3*Lz/8+dz), mmt)
#setter2 = source.Setter(TF, ( 70*nm, 3*Ly/8, 6*Lz/8), ( 70*nm+dx, 3*Ly/8+dy, 6*Lz/8+dz), mmt)
#setter3 = source.Setter(TF, ( 30*nm, 6*Ly/8, 3*Lz/8), ( 30*nm+dx, 6*Ly/8+dy, 3*Lz/8+dz), mmt)
#setter4 = source.Setter(TF, ( 90*nm, 6*Ly/8, 6*Lz/8), ( 90*nm+dx, 6*Ly/8+dy, 6*Lz/8+dz), mmt)
setter1 = source.Setter(TF, (50 * nm, 1 * Ly / 16, 1 * Lz / 16),
                        (50 * nm + dx, 1 * Ly / 16 + dy, 1 * Lz / 16 + dz),
                        mmt)
setter2 = source.Setter(TF, (70 * nm, 1 * Ly / 16, 8 * Lz / 16),
                        (70 * nm + dx, 1 * Ly / 16 + dy, 8 * Lz / 16 + dz),
                        mmt)
setter3 = source.Setter(TF, (30 * nm, 1 * Ly / 16, 15 * Lz / 16),
                        (30 * nm + dx, 1 * Ly / 16 + dy, 15 * Lz / 16 + dz),
                        mmt)
setter4 = source.Setter(TF, (90 * nm, 8 * Ly / 16, 1 * Lz / 16),
                        (90 * nm + dx, 8 * Ly / 16 + dy, 1 * Lz / 16 + dz),
                        mmt)
setter5 = source.Setter(TF, (90 * nm, 8 * Ly / 16, 8 * Lz / 16),
                        (90 * nm + dx, 8 * Ly / 16 + dy, 8 * Lz / 16 + dz),
                        mmt)

#------------------------------------------------------------------#
Exemplo n.º 10
0
#setter = source.Setter(TF, (200*um, 0, 0), (210*um, Ly, Lz), mmt)

########## Plane wave normal to y-axis.
#setter = source.Setter(TF, (0, 63*um, 0), (Lx, 64*um, Lz), mmt)

########## Plane wave normal to z-axis.
#setter1 = source.Setter(TF, (0, 0, 100*nm), (Lx, Ly, 100*nm+dx), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 300*nm), (Lx, 200*nm+dy, 300*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 100*nm), (Lx, 150*nm+dy, 100*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 300*nm, 450*nm), (Lx, 300*nm+dy, 450*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 450*nm, 196*nm), (Lx, 450*nm+dy, 196*nm+dz), mmt)

########## Line src along y-axis.
setter1 = source.Setter(TF, (440 * nm, 0, 140 * nm),
                        (440 * nm + dx, Ly, 140 * nm + dz), mmt)
setter2 = source.Setter(TF, (100 * nm, 0, 200 * nm),
                        (100 * nm + dx, Ly, 200 * nm + dz), mmt)
setter3 = source.Setter(TF, (200 * nm, 0, 300 * nm),
                        (200 * nm + dx, Ly, 300 * nm + dz), mmt)
setter4 = source.Setter(TF, (300 * nm, 0, 400 * nm),
                        (300 * nm + dx, Ly, 400 * nm + dz), mmt)

########## Line src along z-axis.
#TF.set_src_pos((xpos, ypos, 0), (xpos+1, ypos+1, Nz))

########## Point src at the center.
#setter = source.Setter(TF, (xpos, ypos, zpos), (xpos+dx, ypos+dy, zpos+dz), mmt)

#------------------------------------------------------------------#
#-------------------- Structure object settings -------------------#
# phi is the angle between k0 vector and yz-plane.
# theta is the angle between k0cos(phi) and z-axis.
kx = k0 * np.sin(phi)
ky = k0 * np.cos(phi) * np.sin(theta)
kz = k0 * np.cos(phi) * np.cos(theta)

mmt = (kx, ky, kz)

########## Plane wave normal to x-axis.
#setter = source.Setter(TF, (200*um, 0, 0), (210*um, Ly, Lz), mmt)

########## Plane wave normal to y-axis.
#setter = source.Setter(TF, (0, 63*um, 0), (Lx, 64*um, Lz), mmt)

########## Plane wave normal to z-axis.
setter1 = source.Setter(TF, (0, 0, 50 * nm), (Lx, Ly, 50 * nm + dx), mmt)

########## Line src along x-axis.
#setter1 = source.Setter(TF, (0,  100*nm,  100*nm), (Lx,  105*nm, 105*nm), mmt)
#setter2 = source.Setter(TF, (0*um,  30*um, 200*um), (31*um,  31*um, 201*um), mmt)
#setter3 = source.Setter(TF, (0*um, 127*um, 127*um), (31*um, 128*um, 128*um), mmt)
#setter4 = source.Setter(TF, (0*um, 200*um, 200*um), (31*um, 201*um, 201*um), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (640*um, 0, 640*um), (645*um, Ly, 645*um), mmt)
#setter2 = source.Setter(TF, (400*um, 0, 300*um), (410*um, Ly, 310*um), mmt)
#setter3 = source.Setter(TF, (400*um, 0, 400*um), (410*um, Ly, 410*um), mmt)
#setter4 = source.Setter(TF, (400*um, 0, 500*um), (410*um, Ly, 510*um), mmt)

########## Line src along z-axis.
#TF.set_src_pos((xpos, ypos, 0), (xpos+1, ypos+1, Nz))
Exemplo n.º 12
0
ky = k0 * np.cos(phi) * np.sin(theta)
kz = k0 * np.cos(phi) * np.cos(theta)

mmt = (kx, ky, kz)

########## Plane wave normal to x-axis.
#setter = source.Setter(TF, (200*um, 0, 0), (210*um, Ly, Lz), mmt)

########## Plane wave normal to y-axis.
#setter = source.Setter(TF, (0, 63*um, 0), (Lx, 64*um, Lz), mmt)

########## Plane wave normal to z-axis.
#setter1 = source.Setter(TF, (0, 0, 100*nm), (Lx, Ly, 100*nm+dx), mmt)

########## Line src along x-axis.
setter1 = source.Setter(TF, (0, 97 * nm, 100 * nm),
                        (Lx, 97 * nm + dy, 100 * nm + dz), mmt)
setter2 = source.Setter(TF, (0, 50 * nm, 30 * nm),
                        (Lx, 50 * nm + dy, 30 * nm + dz), mmt)
setter3 = source.Setter(TF, (0, 430 * nm, 120 * nm),
                        (Lx, 430 * nm + dy, 120 * nm + dz), mmt)
setter4 = source.Setter(TF, (0, 300 * nm, 66 * nm),
                        (Lx, 300 * nm + dy, 66 * nm + dz), mmt)

########## Line src along y-axis.
#setter1 = source.Setter(TF, (640*um, 0, 640*um), (645*um, Ly, 645*um), mmt)
#setter2 = source.Setter(TF, (400*um, 0, 300*um), (410*um, Ly, 310*um), mmt)
#setter3 = source.Setter(TF, (400*um, 0, 400*um), (410*um, Ly, 410*um), mmt)
#setter4 = source.Setter(TF, (400*um, 0, 500*um), (410*um, Ly, 510*um), mmt)

########## Line src along z-axis.
#TF.set_src_pos((xpos, ypos, 0), (xpos+1, ypos+1, Nz))
Exemplo n.º 13
0
#src1 = source.Sine(dt, np.float64)
#wvlen = 250*lunit
#src1.set_wvlen(wvlen)

########## Harmonic source
#smth = source.Smoothing(dt, 1000)
#src1 = source.Harmonic(dt)
#wvlen = 250*lunit
#src1.set_wvlen(wvlen)

########## Delta source
#src1 = source.Delta(10)

########## Plane wave normal to x-axis.
xsrt = Lx * 0.2
setterT1 = source.Setter(TF, (xsrt, 0, 0), (xsrt, Ly, Lz), mmt)
setterI1 = source.Setter(IF, (xsrt, 0, 0), (xsrt, Ly, Lz), mmt)
#sys.exit()

########## Plane wave normal to y-axis.
#setter1 = source.Setter(TF, (0, 200*lunit, 0), (Lx, 200*lunit+dy, Lz), mmt)
#setter2 = source.Setter(TF, (0, 150*lunit, 0), (Lx, 150*lunit+dy, Lz), mmt)
#setter3 = source.Setter(TF, (0, 250*lunit, 0), (Lx, 250*lunit+dy, Lz), mmt)
#setter4 = source.Setter(TF, (0, 350*lunit, 0), (Lx, 350*lunit+dy, Lz), mmt)

########## Plane wave normal to z-axis.
#setter1 = source.Setter(TF, (0, 0, 50*lunit), (Lx, Ly, 50*lunit+dz), mmt)
#setter2 = source.Setter(TF, (0, 0,150*lunit), (Lx, Ly,150*lunit+dz), mmt)
#setter3 = source.Setter(TF, (0, 0,250*lunit), (Lx, Ly,250*lunit+dz), mmt)
#setter4 = source.Setter(TF, (0, 0,350*lunit), (Lx, Ly,350*lunit+dz), mmt)
########## Harmonic source
#smth = source.Smoothing(dt, 1000)
#src1 = source.Harmonic(dt)
#wvlen = 250*nm
#src1.set_wvlen(wvlen)

########## Delta source
src1 = source.Delta(10)
src2 = source.Delta(20)
src3 = source.Delta(50)
src4 = source.Delta(30)
#wvlen = Lz/2

########## Plane wave normal to x-axis.
setter1 = source.Setter(TF, (70*nm, 0, 0), (70*nm+dx, Ly, Lz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 0), (Lx, 150*nm+dy, Lz), mmt)
#setter3 = source.Setter(TF, (0, 250*nm, 0), (Lx, 250*nm+dy, Lz), mmt)
#setter4 = source.Setter(TF, (0, 350*nm, 0), (Lx, 350*nm+dy, Lz), mmt)

########## Plane wave normal to y-axis.
#setter1 = source.Setter(TF, (0, 200*nm, 0), (Lx, 200*nm+dy, Lz), mmt)
#setter2 = source.Setter(TF, (0, 150*nm, 0), (Lx, 150*nm+dy, Lz), mmt)
#setter3 = source.Setter(TF, (0, 250*nm, 0), (Lx, 250*nm+dy, Lz), mmt)
#setter4 = source.Setter(TF, (0, 350*nm, 0), (Lx, 350*nm+dy, Lz), mmt)

########## Plane wave normal to z-axis.
#setter1 = source.Setter(TF, (0, 0, 50*nm), (Lx, Ly, 50*nm+dz), mmt)
#setter2 = source.Setter(TF, (0, 0,150*nm), (Lx, Ly,150*nm+dz), mmt)
#setter3 = source.Setter(TF, (0, 0,250*nm), (Lx, Ly,250*nm+dz), mmt)
#setter4 = source.Setter(TF, (0, 0,350*nm), (Lx, Ly,350*nm+dz), mmt)