setup.impulse_model = gnlse.SechEnvelope(power, tfwhm) # Simulation ########################################################################### # Type of dyspersion operator: build from Taylor expansion setup.dispersion = gnlse.DispersionFiberFromTaylor(loss, betas) solver = gnlse.GNLSE(setup) solution = solver.run() # Visualization ########################################################################### plt.figure(figsize=(10, 8)) plt.subplot(2, 2, 1) plt.title("Results for Taylor expansion") gnlse.plot_wavelength_vs_distance(solution, WL_range=[400, 1400]) plt.subplot(2, 2, 3) gnlse.plot_delay_vs_distance(solution, time_range=[-.5, 5]) # read mat file for neffs mat = gnlse.read_mat('../data/neff_pcf.mat') # neffs neff = mat['neff'][:, 1] # wavelengths in nm lambdas = mat['neff'][:, 0] * 1e9 # Type of dyspersion operator: build from interpolation of given neffs setup.dispersion = gnlse.DispersionFiberFromInterpolation( loss, neff, lambdas, setup.wavelength) solver = gnlse.GNLSE(setup) solution = solver.run()
# Input pulse: peak power [W] power = 1 / (LNL * setup.nonlinearity) # Fiber length [m] setup.fiber_length = 10 * LD # Type of pulse: gaussian setup.pulse_model = gnlse.GaussianEnvelope(power, tFWHM) # Loss coefficient [dB/m] loss = 0 # Type of dyspersion operator: build from Taylor expansion setup.dispersion_model = gnlse.DispersionFiberFromTaylor(loss, betas) # Type of Ramman scattering function: None (default) # Selftepening: not accounted setup.self_steepening = False # Simulation ########################################################################### solver = gnlse.gnlse.GNLSE(setup) solution = solver.run() # Visualization ########################################################################### plt.figure(figsize=(15, 7)) plt.subplot(1, 2, 1) gnlse.plot_wavelength_vs_distance(solution, WL_range=[780, 900]) plt.subplot(1, 2, 2) gnlse.plot_delay_vs_distance(solution, time_range=[-.5, .5]) plt.show()