Ejemplo n.º 1
0
pml_apply = {'x': '', 'y': '', 'z': '+-'}
pbc_apply = {'x': True, 'y': True, 'z': False}

fdtd.apply_PML(pml_apply)
fdtd.apply_PBC(pbc_apply)

wfreq0_NU = to_NU(fdtd, 'angular frequency', 2. * np.pi * freq0)

#----------------------------------structure-------------------------------------------------------------------

xc = fdtd.x[fdtd.nx / 2]
yc = fdtd.y[fdtd.ny / 2]
zc = fdtd.z[fdtd.nz / 2]

pec = Dielectric(to_epr(fdtd, n=10.**10))
air = Dielectric(to_epr(fdtd, n=1.))
GaAs = Dielectric(to_epr(fdtd, n=3.5))

a1 = 36 * um
a2 = 28 * um
b1 = 36 * um
b2 = 28 * um
c1 = 10 * um
c2 = 4 * um
c3 = 2 * um
d1 = 4 * um
thickness = 200 * nm

slab = structures.Box(GaAs,
                      ((0. * um, 0. * um, 1500 * um), (lx, ly, 1600 * um)))
Ejemplo n.º 2
0
#engine_name = 'intel_cpu'
fdtd = Basic_FDTD('3D',
                  space_grid,
                  dtype=np.complex64,
                  engine=engine_name,
                  device_id=0)

pml_apply = {'x': '+-', 'y': '', 'z': ''}
pbc_apply = {'x': False, 'y': True, 'z': True}
fdtd.apply_PML(pml_apply)
fdtd.apply_PBC(pbc_apply)

slab_thick = 5. * nm
gap = 80 * nm

diel = Dielectric(to_epr(fdtd, n=3.))
diep = Dielectric(to_epr(fdtd, n=10.**10))
#slab = stc.Box(diel, ((1000.*nm,0.*nm,0.*nm),(1000.*nm+slab_thick,ly,lz)))
slab = stc.Box(Gold, ((1000. * nm, 0. * nm, 0. * nm),
                      (1000. * nm + slab_thick, ly, lz)))
#slab = stc.Box(PA  , ((1000.*nm,0.*nm,0.*nm),(1000.*nm+slab_thick,ly,lz)))
pecs = stc.Box(diep, ((1000. * nm + slab_thick + gap, 0. * nm, 0. * nm),
                      (lx, ly, lz)))
#slab = stc.Box(Silver, ((1000.*nm,0.*nm,0.*nm),(1000.*nm+slab_thick,ly,lz)))
#structures = [slab, pecs]
structures = [slab]

from scipy.constants import c
wavelength = np.arange(300., 1001., 1.) * nm
freqs = c / wavelength
#freq0 = c/(650.*nm)
Ejemplo n.º 3
0
space_grid = (x, y, z)
engine_name = 'nvidia_cuda'
fdtd = Basic_FDTD('3D',
                  space_grid,
                  dtype=np.float32,
                  engine=engine_name,
                  device_id=0)

pml_apply = {'x': '+-', 'y': '', 'z': ''}
pbc_apply = {'x': False, 'y': True, 'z': True}
fdtd.apply_PML(pml_apply)
fdtd.apply_PBC(pbc_apply)

#slab_thick = 20.*nm

diel = Dielectric(to_epr(fdtd, n=3.))
slab = stc.Box(diel, ((1000. * nm, 0. * nm, 0. * nm), (lx, 1. * nm, 1. * nm)))
#slab = stc.Box(Gold, ((1000.*nm,0.*nm,0.*nm),(1000.*nm+slab_thick,1.*nm,1.*nm)))
#slab = stc.Box(Gold, ((1000.*nm,0.*nm,0.*nm),(1000.*nm+slab_thick,1.*nm,1.*nm)))
structures = [slab]
fdtd.set_structures(structures)

from scipy.constants import c
wavelength = np.arange(300., 1001., 1.) * nm
freqs = c / wavelength
freq0 = c / (650. * nm)
wfreq0_NU = to_NU(fdtd, 'angular frequency', 2. * np.pi * freq0)

rft_ey = fdtd.apply_RFT('ey', ((-5000, 0, 0), (-5000, -1, -1)), freqs)
inc = fdtd.apply_direct_source('ey', ((5000, 0, 0), (5000, -1, -1)))
print 'Setting Complete and READY to RUN'