Exemplo n.º 1
0
                 np.sqrt(3) / 2 * X, 0),
    meep.Vector3(-X / 2, -np.sqrt(3) / 2 * X, 0)
]
geometry.append(
    meep.Prism(center=meep.Vector3(0, 0, 0),
               height=H,
               vertices=vertices,
               axis=meep.Vector3(0, 0, 1),
               material=material))

D = W * 3**.5 / 2
box = [D, D, H]
resolution = 1 / (8 * nm)
medium = meep.Medium(index=1)

fcen, df = meep_ext.freq_data(1 / (400 * nm), 1 / (1000 * nm))
nfreq = 40
polarization = 'x'

src_time = meep.GaussianSource(frequency=1.3 / um, fwidth=4.0 / um)
if polarization == 'x':
    source = lambda sim: meep_ext.x_polarized_plane_wave(sim, src_time)
    decay = meep.Ex
else:
    source = lambda sim: meep_ext.y_polarized_plane_wave(sim, src_time)
    decay = meep.Ey

### monitor info
particle_monitor_gap = 50 * nm
pml_monitor_gap = 50 * nm
norm_file_ext = 'norm_box'
Exemplo n.º 2
0
### geometry
radius = 75 * nm
gold = meep_ext.material.Au(multiplier=1 / scale**2)
# gold = meep.Medium(index=3.5/scale)

sep = 400 * nm
p1 = meep.Vector3(-sep / 2, 0, 0)
p2 = meep.Vector3(sep / 2, 0, 0)
geometry = [
    meep.Sphere(center=p1, radius=radius, material=gold),
    meep.Sphere(center=p2, radius=radius, material=gold)
]

### source
fcen, df = meep_ext.freq_data(scale / (400 * nm), scale / (1000 * nm))
nfreq = 40
src_time = meep.GaussianSource(frequency=1.3 * scale / um,
                               fwidth=4.0 * scale / um)
polarization = meep.Ex  # used in convergence check 'decay_by'
source = lambda sim: meep_ext.rhc_polarized_plane_wave(sim, src_time)

### monitor info
particle_monitor_gap = 50 * nm
pml_monitor_gap = 50 * nm

### grid
resolution = 1 / (7.5 * nm)
pml = meep.PML(100 * nm)
lx = sep + 2 * radius + 2 * particle_monitor_gap + 2 * pml_monitor_gap + 2 * pml.thickness
ly = lz = 2 * radius + 2 * particle_monitor_gap + 2 * pml_monitor_gap + 2 * pml.thickness