def periodic_boundary(): periodic_boundary = fdtd.PeriodicBoundary(name="periodic_boundary") return periodic_boundary
# detectors grid[12e-6, :, 0] = fdtd.LineDetector(name="detector") # x boundaries # grid[0, :, :] = fdtd.PeriodicBoundary(name="xbounds") grid[0:10, :, :] = fdtd.PML(name="pml_xlow") grid[-10:, :, :] = fdtd.PML(name="pml_xhigh") # y boundaries # grid[:, 0, :] = fdtd.PeriodicBoundary(name="ybounds") grid[:, 0:10, :] = fdtd.PML(name="pml_ylow") grid[:, -10:, :] = fdtd.PML(name="pml_yhigh") # z boundaries grid[:, :, 0] = fdtd.PeriodicBoundary(name="zbounds") # objects grid[11:32, 30:84, 0:1] = fdtd.AnisotropicObject(permittivity=2.5, name="object") print(grid) print(f"courant number: {grid.courant_number}") # run simulation grid.run(50, progress_bar=False) ## Plots # Fields if True: