import scipy import pickle sigma_theta = .36 EXTENTS = 30e-6 STEP = .05e-6 x = numpy.arange(-EXTENTS, EXTENTS, STEP) y = numpy.arange(-EXTENTS, EXTENTS, STEP) [XX, YY] = numpy.meshgrid(x, y) theta_list = numpy.random.randn(20) theta_vals = sigma_theta * theta_list print len(theta_vals) length = 10.0 step_length = 1.0 diameter = 10e-6 test_fiber = fiber.LargeCoreMMF(length=length, step_length=step_length, a=diameter) admissible_modes = test_fiber.admissible_modes M = len(admissible_modes) w = test_fiber.w print w offset_x = .5e-6 * numpy.ones(20) offset_y = .5e-6 * numpy.ones(20) print len(offset_x) for K in range(20): test_fiber = fiber.GHModes(w, XX, YY, theta=0.0) test_fiber1 = fiber.GHModes(w, XX, YY, theta=theta_vals[K], offset_x=offset_x[K],
import math, sys from math import factorial,log10 from numpy import linalg as LA from scipy.linalg import expm length=100000 step_length=1 n_sections=int(length / step_length) sigma_kappa = [1.0, 3.0, 7.0, 10.0] sigma_theta = 0.36 radius = 5e-6 W = 1.55e-6 c=3e8 for j in range(10): Kappa_list = numpy.random.randn(n_sections) theta_list = numpy.random.randn(n_sections) test_fiber=fiber.LargeCoreMMF(length=length,step_length=step_length,a=radius,NA=.14) M=len(test_fiber.admissible_modes) print M for l in range(4): kappa_vals = numpy.abs(sigma_kappa[l]*Kappa_list) theta_vals = sigma_theta*theta_list t = numpy.arange(0, 1.01e11, 1e9) U01,U01_d = test_fiber.calculate_matrix(L=W, kappa_vals=kappa_vals, theta_vals=theta_vals) U01=numpy.mat(U01) U01_d = numpy.mat(U01_d) F1 = 1.0j*numpy.dot(U01.H,U01_d) F1 = 0.5 * (F1 + F1.H) G1,P1= LA.eig(F1) Q1 = numpy.dot(U01,P1[:,0]) def calculate_mag_resp(Omega, U, P1, Q1): return numpy.abs(numpy.dot(Q1.H,numpy.dot(U, P1[:,0])))