from numpy import * from scipy import * import matplotlib.pyplot as plt from numpy.fft import fftshift import PyOFTK import time from pycuda.tools import make_default_context import pycuda.driver as cuda cuda.init() context = make_default_context() lambdaZero = 1.55e-6 T = 5.0 nt = pow(2,11) dt = T/float(nt) t = linspace(-T/2, T/2, nt) C = 2.99792458e-4 nz = 2048 dz = 0.01 betap = array([0,0,-0.02104, 0.13/1000, (-2.4E-3)/1000]) gamma = 0.065 # Gain profil omega = PyOFTK.wspace(T,nt) vs = fftshift(omega/(2*pi)) wavelength = (1/((vs/C)+1/(lambdaZero)))*1e9 alpha = array([0.0]) gainBandwidth = 30.0 alphaVec = PyOFTK.gainProfil(wavelength, alpha[0], gainBandwidth) dureePulse = 1.0 puissanceCrete = 10.0 u_ini = PyOFTK.gaussianPulse(t,dureePulse,0,puissanceCrete,1,0) [u_out, i_arch] = PyOFTK.ssfgpuFull(u_ini, dt, dz, nz, alpha, betap, gamma, context, 500, 1e-5) context.pop() plt.imshow(i_arch, aspect='normal') plt.show() |
July 19, 2009
