示例#1
0
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)
示例#2
0
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()
示例#3
0
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)