# Physical parameters setup.wavelength = 835 # nm setup.fiber_length = 0.15 # m setup.nonlinearity = 0.11 # 1/W/m setup.raman_model = gnlse.raman_blowwood setup.self_steepening = True # The dispersion model is built from a Taylor expansion with coefficients # given below. loss = 0 betas = np.array([ -0.024948815481502, 8.875391917212998e-05, -9.247462376518329e-08, 1.508210856829677e-10 ]) setup.dispersion_model = gnlse.DispersionFiberFromTaylor(loss, betas) # Input impulse parameters power = 10000 # pulse duration [ps] tfwhm = 0.05 # hyperbolic secant 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()
# read mat file for neffs mat_path = os.path.join(os.path.dirname(__file__), '..', 'data', 'neff_pcf.mat') mat = gnlse.read_mat(mat_path) # neffs neff = mat['neff'][:, 1] # wavelengths in nm lambdas = mat['neff'][:, 0] * 1e9 # Visualization ########################################################################### # Set type of dispersion function simulation_type = { 'Results for Taylor expansion': gnlse.DispersionFiberFromTaylor(loss, betas), 'Results for interpolation': gnlse.DispersionFiberFromInterpolation(loss, neff, lambdas, setup.wavelength) } count = len(simulation_type) plt.figure(figsize=(15, 7), facecolor='w', edgecolor='k') for (i, (name, dispersion_model)) in enumerate(simulation_type.items()): setup.dispersion_model = dispersion_model solver = gnlse.GNLSE(setup) solution = solver.run() plt.subplot(2, count, i + 1) plt.title(name) gnlse.plot_wavelength_vs_distance(solution, WL_range=[400, 1400])