simulation_size = 4 simulation_time = 10 * simulation_size / C print("Simulation time (seconds):", simulation_time) # initiate solver with user input variables solver = Solver(points_per_wavelength=s, stability=stability, eps_r_max=1, mu_r_max=1, simulation_size=simulation_size, simulation_time=simulation_time) pulse1 = solver.add_oscillating_pulse(sigma_w, (2, 0.1), omega_0, direction="right") pulse1 = solver.add_ material = solver.create_material() # double slits where slit separation is wavelength, slit width is wavelength slit_space_upper = (simulation_size / 2) - wavelength / 2 slit_space_lower = (simulation_size / 2) + wavelength / 2 solver.set_reflect_square((0, 1), (1.62, 1.05)) solver.set_reflect_square((1.76, 1), (2.24, 1.05)) solver.set_reflect_square((2.38, 1), (simulation_size, 1.05)) solver.set_reflect_boundaries(up=False, down=False, left=False, right=False)
sigma_w = 1 * 10**9 # frequency bandwidth omega_0 = 5 * 10**9 # central frequency s = 10 # mesh points per wavelength stability = 0.2 # time mesh stability factor # initiate solver with user input variables solver = Solver(points_per_wavelength=s, stability=stability, eps_r_max=4, mu_r_max=1, simulation_size=3, simulation_time=2.5 * 10**(-8)) # REQUIRED - add a pulse my_pulse = solver.add_oscillating_pulse(sigma_w, (0.8, 0.4), omega_0) # this adds a point pulse my_pulse.plot_time() # REQUIRED - create the background material my_material = solver.create_material() # OPTIONAL - creating reflecting shapes solver.set_reflect_square((0.98, 0.8), (solver.size, 1)) # OPTIONAL - create the material my_material.set_fixed_length_waveguide(wire_length=5, thickness=0.1, start_point=(0.2, 1.5), curved_ratio=1, epsilon_rel=4) my_material.plot_time()
simulation_size = 4 simulation_time = 4 * simulation_size / C print("Simulation time (seconds):", simulation_time) # initiate solver with user input variables solver = Solver(points_per_wavelength=s, stability=stability, eps_r_max=3.5, mu_r_max=1, simulation_size=simulation_size, simulation_time=simulation_time) solver.set_reflect_boundaries(False, False, False, False) pulse = solver.add_oscillating_pulse(sigma_w, (0.7, 0), omega_0) # pulse = solver.add_sinusoidal_pulse(omega_0, (0.7, 0)) # pulse.plot_time(scaled_plot=False) material = solver.create_material() material.set_fixed_length_waveguide((0.5, 0), 6, 0.1, 0.4, 2.7) # material.plot() solver.set_reflect_square((0, 0.25), (0.5, 0.35)) solver.set_reflect_square((0.9, 0.25), (4, 0.35)) solver.record_energy((0.7, 0.1)) # solver.save("waveguide_freqs/07") solver.solve(step_frequency=5, solve_only=True)