FDTD · 480×240 · TM · cwsrccell
−E+E
Building lattice…
Bragg
Bandgap
Bragg gap. Bloch modes are evanescent — the lattice is a mirror.
- n_eff
- 1.81
- ε_eff
- 3.29
- μ_eff
- 1.00
- a/λ
- 0.251
- T
- 0.00
Transmission T(ω)live 0.00
# WAVEFORGE · Photonic crystal unit cell# a = 8 µm fill = 0.36 ε = 11.7 gap = 0.28# drive = 9.4 THz a/λ = 0.251 TM cw# regime: Bandgap n_eff ≈ 1.81 ε_eff ≈ 3.29 μ_eff ≈ 1.00# Generated Meep script — 2D TM through a PhC lattice.# pip install meep (or conda install -c conda-forge pymeep)import meep as mpimport numpy as npa = 8 # lattice constant (µm)f = 9.4 # drive (THz)c = 299.792458 # µm·THzfcen = a * f / c # Meep frequency in units of c/adf = 0.2 * fcenresolution = 32ncell = 6dpml = 1.0metal = mp.Medium(epsilon=1, D_conductivity=1e6)solid = mp.Medium(epsilon=11.7)geometry = [mp.Cylinder(radius=0.261 * a,height=mp.inf,material=mp.Medium(epsilon=11.7),center=mp.Vector3()),]cell = mp.Vector3((ncell + 2*dpml + 4) * a, a, 0)sim = mp.Simulation(cell_size=cell,geometry=geometry,sources=[mp.Source(mp.ContinuousSource(frequency=fcen) if "cw" == "cw"else mp.GaussianSource(frequency=fcen, fwidth=df),component=mp.Ez if "TM" == "TM" else mp.Hz,center=mp.Vector3(-0.5*cell.x + dpml*a + a, 0, 0),size=mp.Vector3(0, a, 0),)],boundary_layers=[mp.PML(dpml * a)],resolution=resolution,default_material=mp.air,)tran = sim.add_flux(fcen, df, 27,mp.FluxRegion(center=mp.Vector3(0.5*cell.x - dpml*a - 0.6*a, 0, 0),size=mp.Vector3(0, a, 0)))sim.run(until=400)print("WAVEFORGE n_eff target:", 1.81)print("transmitted flux:", mp.get_fluxes(tran))