コード例 #1
0
ファイル: agrawal_fig3_6_ssf.py プロジェクト: cvarin/PyOFTK
import PyOFTK
from pylab import *


T = 48.0
nt = pow(2,10)
dt = T/nt
t = linspace(-T/2, T/2, nt)
dz = 5.0

u_ini_x = exp(-pow(t,2)/2)
u_ini_y = zeros(nt)
betap = array([0,0,0,1])
alpha = array([0])

u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, 1, alpha, betap, 0.000,4,1e-5)

betap = array([0,0,1,1])
u_out2_x = PyOFTK.ssf(u_ini_x,dt, dz, 1, alpha, betap, 0.000, 4,1e-5)

plot(t, pow(abs(u_out_x),2),t, u_ini_x, ':',t, pow(abs(u_out2_x),2), '--',color='black')
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
legend((r"$\beta_2 = 0$", "$z = 0$","$L_D = L_D'$"))
xlim([-12,12])
show()
コード例 #2
0
ファイル: bragg_soliton_lin.py プロジェクト: cvarin/PyOFTK
puissanceCrete = 478.8
LMBD = 1.03
nt = 24000
positionDetecteur = 4999

### Creation d'un fbg ###
fbgStart = 2000
fbgStop = 8000
# Pas du reseaux
#Longueur_onde_bragg = 1.03238
Longueur_onde_bragg = 1.03105615
#Longueur_onde_bragg = 1.0289438500000001
GrandLambda = Longueur_onde_bragg/(2*1.45)
# Difference d'indice
deltaIndex = 3.695e-3
fbg1 = PyOFTK.apodizedFBG(2.5, 62.5, 0.05, 0.0, 40e-2, deltaIndex, GrandLambda)
#gamma = fbg1.nlGamma(1.03)
gamma = 0.0
detZero = fbg1.detuning(LMBD)
detVec = zeros(nbrPoints_z,double)
detVec[fbgStart:fbgStop] += detZero
kapZero = fbg1.kappa(LMBD)
kapVec = zeros(nbrPoints_z,double)

#iz = arange(1.0,nbrPoints_z+1)/nbrPoints_z
#kapVec[3000:nbrPoints_z-1] = kapZero*(iz[3000:nbrPoints_z-1])
kapVec[fbgStart:fbgStop] = kapZero

# Initialisation du champ incident
d = linspace(-nbrPoints_z/2, nbrPoints_z/2, nbrPoints_z)
z = linspace(0,fbg1.length, nbrPoints_z)
コード例 #3
0
ファイル: fbg_transmission3.py プロジェクト: cvarin/PyOFTK
#
#
#
#	Author: 	Martin Laprise
#		    	Universite Laval
#				[email protected]
#                 
# *********************************************

import pylab as pl
import PyOFTK
LMBD=(1.0526+0.00047)/(2*1.45)
LMBD2=0.34485
LNGTH = 100

fbg1 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 1e-2, LMBD2)
fbg2 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 5e-3, LMBD2)
fbg3 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 1e-3, LMBD2)

print "Longueur d'onde de Bragg: " + str(fbg1.braggWavelength) + " um"
wvl1 = pl.linspace(fbg1.braggWavelength-0.00047, fbg1.braggWavelength-0.00050, LNGTH)
wvl2 = pl.linspace(fbg1.braggWavelength+0.010, fbg1.braggWavelength+0.050, LNGTH)

beta2Grating1 = pl.zeros(LNGTH, float)
beta2Grating2 = pl.zeros(LNGTH, float)
beta2Grating3 = pl.zeros(LNGTH, float)
beta3Grating1 = pl.zeros(LNGTH, float)
beta3Grating2 = pl.zeros(LNGTH, float)
beta3Grating3 = pl.zeros(LNGTH, float)

for i in range(LNGTH):
コード例 #4
0
z = pi / 2
nz = 500.0
nplot = plotRes
n1 = round(nz / nplot)
nz = n1 * nplot
dz = z / nz

betap = array([0, 0, -1])
alpha = array([0.0])

zv = (z / nplot) * arange(0, nplot)
u = zeros([len(t), len(zv)], complex)
uplot = zeros([plotRes, len(zv)], float32)

u[:, 0] = PyOFTK.solitonPulse(t, 0, 1.0, 3.0)
uplot[:, 0] = ss.resample(pow(abs(u[:, 0]), 2), plotRes)

for ii in arange(0, nplot - 1):
    #u[:,ii+1] = PyOFTK.ssf(u[:,ii], dt, dz, n1, 0.0, betap, 1.0, 10, 1e-5)
    u[:, ii + 1] = PyOFTK.scalar(u[:, ii], dt, dz, n1, alpha, betap, 1.0)
    uplot[:, ii + 1] = ss.resample(pow(abs(u[:, ii + 1]), 2), plotRes)

tplot = linspace(-T / 2.0, T / 2.0, plotRes)
X, Y = meshgrid(zv, tplot)
fig = plt.figure()
ax = axes3d.Axes3D(fig)
ax.plot_wireframe(X, Y, uplot)
ax.set_xlabel(r"$Z/Z_0$")
ax.set_ylabel(r"($t-\beta_1z)/T_0$")
ax.set_zlabel(r"$|u(z,t)|^2/P_0$")
コード例 #5
0
ファイル: agrawal_fig3_6.py プロジェクト: cvarin/PyOFTK
import PyOFTK
from pylab import *

T = 48.0
nt = pow(2, 10)
dt = T / nt
t = linspace(-T / 2, T / 2, nt)
dz = 5.0

u_ini_x = exp(-pow(t, 2) / 2)
u_ini_y = zeros(nt)
betap = array([0, 0, 0, 1])
alpha = array([0])

[u_out_x, outputParam] = PyOFTK.scalar(u_ini_x, dt, dz, 1, alpha, betap, 0.000)

betap = array([0, 0, 1, 1])
[u_out2_x, outputParam] = PyOFTK.scalar(u_ini_x, dt, dz, 1, alpha, betap,
                                        0.000)

plot(t,
     pow(abs(u_out_x), 2),
     t,
     u_ini_x,
     ':',
     t,
     pow(abs(u_out2_x), 2),
     '--',
     color='black')
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
コード例 #6
0
#
#
#
#	Author: 	Martin Laprise
#		    	Universite Laval
#				[email protected]
#
# *********************************************

import pylab as pl
import PyOFTK
LMBD = (1.0526 + 0.00047) / (2 * 1.45)
LMBD2 = 0.34485
LNGTH = 100

fbg1 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 1e-2, LMBD2)
fbg2 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 5e-3, LMBD2)
fbg3 = PyOFTK.apodizedFBG(3.0, 62.5, 0.04, 0.0, 1e-1, 1e-3, LMBD2)

print "Longueur d'onde de Bragg: " + str(fbg1.braggWavelength) + " um"
wvl1 = pl.linspace(fbg1.braggWavelength - 0.00047,
                   fbg1.braggWavelength - 0.00050, LNGTH)
wvl2 = pl.linspace(fbg1.braggWavelength + 0.010, fbg1.braggWavelength + 0.050,
                   LNGTH)

beta2Grating1 = pl.zeros(LNGTH, float)
beta2Grating2 = pl.zeros(LNGTH, float)
beta2Grating3 = pl.zeros(LNGTH, float)
beta3Grating1 = pl.zeros(LNGTH, float)
beta3Grating2 = pl.zeros(LNGTH, float)
beta3Grating3 = pl.zeros(LNGTH, float)
コード例 #7
0
from pylab import *
import scipy.interpolate
from scipy import integrate
import PyOFTK
import time

if __name__ == '__main__':

    t1 = time.time()

    lambdaZero = 1.030e-6
    T = 100.0
    nt = pow(2, 12)
    dt = T / float(nt)
    t = linspace(-T / 2, T / 2, nt)
    w = PyOFTK.wspace(T, nt)
    vs = fftpack.fftshift(w / (2 * pi))
    C = 2.99792458e-4
    nbSection = 4
    nbPass = 1024

    dz = zeros(nbSection)
    nz = zeros(nbSection, int)
    gamma = zeros(nbSection)
    betap = zeros([nbSection, 4], float)
    alpha = zeros([nbSection, 1], float)
    alphaSat = array([0.0])
    alphaProfil = zeros(nt, float)
    pulseEnergy = zeros(nbPass, float)
    phiNLArchive = zeros(nbPass, float)
    #pulseWidth = zeros(nbPass, float)
コード例 #8
0
ファイル: agrawal_fig4_16.py プロジェクト: cvarin/PyOFTK
nz = 1000
nplot = 2
n1 = round(nz/nplot)
nz = n1*nplot
dz = z/nz

t = linspace(-T/2.0, T/2.0, nt)

s = 0.01

zv = (z/nplot)*(0:nplot);
u = zeros(length(t),length(zv))
u_ini_y = zeros(nt)
U = zeros(length(t),length(zv))

u[:,1] = PyOFTK.gaussian(t,0,2*(sqrt(log(2.0))))
U[:,1] = fftshift(abs(dt*fft(u[:,1])/sqrt(2*pi)).^2)


for ii in arange(1:nplot)
	u[:,ii+1] = PyOFTK.scalar(u[:,ii],dt,dz,n1,0,0,1,0,2*pi*s)
	U[:,ii+1] = fftshift(abs(dt*fft(u[:,ii+1])/sqrt(2*pi)).^2)


plot (t,pow(abs(u),2))
xlim([-3,3])
grid(True)
xlabel ('(t-\beta_1z)/T_0')
ylabel ('|u(z,t)|^2/P_0')
show()
コード例 #9
0
ファイル: agrawal_fig3_1_ssf.py プロジェクト: cvarin/PyOFTK
from numpy import *
from pylab import *
from PyOFTK.utilities import *
import PyOFTK


T = 32.0
nt = pow(2,10)
dt = T/nt
t = linspace(-T/2.0, T/2.0, nt)
dz = 2.0
nz = 2

betap = array([0.0,0.0,1.0])
alpha = 0.0
u_ini_x = PyOFTK.gaussianPulse(t,2.0,0.0,1.0,1.0,0.0)
u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, nz, alpha, betap, 0.0, 10, 1e-5)

plot(t, pow(abs(u_out_x),2),t, pow(abs(u_ini_x),2))
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
xlim([-16,16])
grid(True)
show()

コード例 #10
0
from numpy import *
from pylab import *
from PyOFTK.utilities import *
import PyOFTK

T = 32.0
nt = pow(2, 10)
dt = T / nt
t = linspace(-T / 2.0, T / 2.0, nt)
dz = 2.0
nz = 2

betap = array([0.0, 0.0, 1.0])
alpha = 0.0
u_ini_x = PyOFTK.gaussianPulse(t, 2.0, 0.0, 1.0, 1.0, 0.0)
u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, nz, alpha, betap, 0.0, 10, 1e-5)

plot(t, pow(abs(u_out_x), 2), t, pow(abs(u_ini_x), 2))
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
xlim([-16, 16])
grid(True)
show()
コード例 #11
0
ファイル: agrawal_fig3_6.py プロジェクト: cvarin/PyOFTK
import PyOFTK
from pylab import *

T = 48.0
nt = pow(2,10)
dt = T/nt
t = linspace(-T/2, T/2, nt)
dz = 5.0

u_ini_x = exp(-pow(t,2)/2)
u_ini_y = zeros(nt)
betap = array([0,0,0,1])
alpha = array([0])

[u_out_x, outputParam] = PyOFTK.scalar(u_ini_x, dt, dz, 1, alpha, betap, 0.000)

betap = array([0,0,1,1])
[u_out2_x, outputParam] = PyOFTK.scalar(u_ini_x, dt, dz, 1, alpha, betap, 0.000)

plot(t, pow(abs(u_out_x),2),t, u_ini_x, ':',t, pow(abs(u_out2_x),2), '--',color='black')
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
legend((r"$\beta_2 = 0$", "$z = 0$","$L_D = L_D'$"))
xlim([-12,12])
show()


コード例 #12
0
nt = 50000
positionDetecteur = 30100

### Creation d'un fbg ###
fbgStart = 20000
fbgStop = 39660	
# Pas du reseaux
Longueur_onde_bragg = 1.55005
Longueur_onde_bragg1 = 1.02
Longueur_onde_bragg2 = 1.03
LBRG = linspace(Longueur_onde_bragg1, Longueur_onde_bragg2, fbgStop-fbgStart)

GrandLambda = Longueur_onde_bragg/(2*1.45)
# Difference d'indice
deltaIndex = 3.49e-5
fbg1 = PyOFTK.apodizedFBG(2.5, 62.5, 0.05, 0.0, 50e-2, deltaIndex, GrandLambda)
gamma = fbg1.nlGamma(1.03)
detZero = fbg1.detuning(LMBD)
detVec = zeros(nbrPoints_z,double)
detVec[fbgStart:fbgStop] += detZero
#for i in arange(fbgStop-fbgStart):
#	detVec[fbgStart+i] = detZero = fbg1.detuning(LBRG[i])


kapZero = fbg1.kappa(LMBD)
kapVec = zeros(nbrPoints_z,double)
alphaVec = zeros(nbrPoints_z,double)
alphaVec[fbgStart:fbgStop] += 0.0

# Initialisation du champ incident
d = linspace(-nbrPoints_z/2, nbrPoints_z/2, nbrPoints_z)
コード例 #13
0
ファイル: agrawal_fig5_4.py プロジェクト: cvarin/PyOFTK
z = pi/2
nz = 500.0
nplot = plotRes
n1 = round(nz/nplot)
nz = n1*nplot
dz = z/nz

betap = array([0,0,-1])
alpha = array([0.0])

zv = (z/nplot)*arange(0,nplot)
u = zeros([len(t),len(zv)], complex)
uplot = zeros([plotRes,len(zv)], float32)

u[:,0] = PyOFTK.solitonPulse(t,0,1.0,3.0)
uplot[:,0] = ss.resample(pow(abs(u[:,0]),2), plotRes)

for ii in arange(0,nplot-1):
	#u[:,ii+1] = PyOFTK.ssf(u[:,ii], dt, dz, n1, 0.0, betap, 1.0, 10, 1e-5)
	u[:,ii+1] = PyOFTK.scalar(u[:,ii], dt, dz, n1, alpha, betap, 1.0)
	uplot[:,ii+1] = ss.resample(pow(abs(u[:,ii+1]),2), plotRes)

tplot= linspace(-T/2.0, T/2.0, plotRes)
X, Y = meshgrid(zv, tplot)
fig = plt.figure()
ax = axes3d.Axes3D(fig)
ax.plot_wireframe(X, Y, uplot)
ax.set_xlabel (r"$Z/Z_0$");
ax.set_ylabel (r"($t-\beta_1z)/T_0$");
ax.set_zlabel (r"$|u(z,t)|^2/P_0$");
コード例 #14
0
ファイル: agrawal_fig3_6_ssf.py プロジェクト: akatumba/PyOFTK
import PyOFTK
from pylab import *

T = 48.0
nt = pow(2, 10)
dt = T / nt
t = linspace(-T / 2, T / 2, nt)
dz = 5.0

u_ini_x = exp(-pow(t, 2) / 2)
u_ini_y = zeros(nt)
betap = array([0, 0, 0, 1])
alpha = array([0])

u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, 1, alpha, betap, 0.000, 4, 1e-5)

betap = array([0, 0, 1, 1])
u_out2_x = PyOFTK.ssf(u_ini_x, dt, dz, 1, alpha, betap, 0.000, 4, 1e-5)

plot(t,
     pow(abs(u_out_x), 2),
     t,
     u_ini_x,
     ':',
     t,
     pow(abs(u_out2_x), 2),
     '--',
     color='black')
ylabel("$|u(z,T)|^2$")
xlabel("$T/T_0$")
legend((r"$\beta_2 = 0$", "$z = 0$", "$L_D = L_D'$"))
コード例 #15
0
ファイル: nlfbg3.py プロジェクト: cvarin/PyOFTK
nt = 40
positionDetecteur = 18500

### Creation d'un fbg ###
fbgStart = 2000
fbgStop = 38000	
# Pas du reseaux
Longueur_onde_bragg = 1.010
Longueur_onde_bragg1 = 1.02
Longueur_onde_bragg2 = 1.03
LBRG = linspace(Longueur_onde_bragg1, Longueur_onde_bragg2, fbgStop-fbgStart)

GrandLambda = Longueur_onde_bragg/(2*1.45)
# Difference d'indice
deltaIndex = 1e-2
fbg1 = PyOFTK.apodizedFBG(2.5, 62.5, 0.05, 0.0, 10e-2, deltaIndex, GrandLambda)
gamma = fbg1.nlGamma(1.03)
detZero = fbg1.detuning(LMBD)
detVec = zeros(nbrPoints_z,double)
detVec[fbgStart:fbgStop] += detZero
#for i in arange(fbgStop-fbgStart):
#	detVec[fbgStart+i] = detZero = fbg1.detuning(LBRG[i])


kapZero = fbg1.kappa(LMBD)
kapVec = zeros(nbrPoints_z,double)
alphaVec = zeros(nbrPoints_z,double)
alphaVec[fbgStart:fbgStop] += -80

# Initialisation du champ incident
d = linspace(-nbrPoints_z/2, nbrPoints_z/2, nbrPoints_z)
コード例 #16
0
nt = 50000
positionDetecteur = 30100

### Creation d'un fbg ###
fbgStart = 20000
fbgStop = 39660
# Pas du reseaux
Longueur_onde_bragg = 1.55005
Longueur_onde_bragg1 = 1.02
Longueur_onde_bragg2 = 1.03
LBRG = linspace(Longueur_onde_bragg1, Longueur_onde_bragg2, fbgStop - fbgStart)

GrandLambda = Longueur_onde_bragg / (2 * 1.45)
# Difference d'indice
deltaIndex = 3.49e-5
fbg1 = PyOFTK.apodizedFBG(2.5, 62.5, 0.05, 0.0, 50e-2, deltaIndex, GrandLambda)
gamma = fbg1.nlGamma(1.03)
detZero = fbg1.detuning(LMBD)
detVec = zeros(nbrPoints_z, double)
detVec[fbgStart:fbgStop] += detZero
#for i in arange(fbgStop-fbgStart):
#	detVec[fbgStart+i] = detZero = fbg1.detuning(LBRG[i])

kapZero = fbg1.kappa(LMBD)
kapVec = zeros(nbrPoints_z, double)
alphaVec = zeros(nbrPoints_z, double)
alphaVec[fbgStart:fbgStop] += 0.0

# Initialisation du champ incident
d = linspace(-nbrPoints_z / 2, nbrPoints_z / 2, nbrPoints_z)
z = linspace(0, fbg1.length, nbrPoints_z)
コード例 #17
0
ファイル: nlfbg3.py プロジェクト: cvarin/PyOFTK
nt = 40
positionDetecteur = 18500

### Creation d'un fbg ###
fbgStart = 2000
fbgStop = 38000
# Pas du reseaux
Longueur_onde_bragg = 1.010
Longueur_onde_bragg1 = 1.02
Longueur_onde_bragg2 = 1.03
LBRG = linspace(Longueur_onde_bragg1, Longueur_onde_bragg2, fbgStop - fbgStart)

GrandLambda = Longueur_onde_bragg / (2 * 1.45)
# Difference d'indice
deltaIndex = 1e-2
fbg1 = PyOFTK.apodizedFBG(2.5, 62.5, 0.05, 0.0, 10e-2, deltaIndex, GrandLambda)
gamma = fbg1.nlGamma(1.03)
detZero = fbg1.detuning(LMBD)
detVec = zeros(nbrPoints_z, double)
detVec[fbgStart:fbgStop] += detZero
# for i in arange(fbgStop-fbgStart):
# 	detVec[fbgStart+i] = detZero = fbg1.detuning(LBRG[i])


kapZero = fbg1.kappa(LMBD)
kapVec = zeros(nbrPoints_z, double)
alphaVec = zeros(nbrPoints_z, double)
alphaVec[fbgStart:fbgStop] += -80

# Initialisation du champ incident
d = linspace(-nbrPoints_z / 2, nbrPoints_z / 2, nbrPoints_z)
コード例 #18
0
from pylab import *
from scipy import fftpack

T = 100
nt = pow(2,12)
dt = T/float(nt)
t = linspace(-T/2, T/2, nt)

z = 0.08
nz = 500
dz = z/nz

alpha = array([0])
betap = array([0,0,+1])

u_ini_x =  PyOFTK.gaussianPulse(t,2*sqrt(log(2)),0,1,1,0)
u_ini_y = zeros(nt)

u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, nz, alpha, betap, pow(30,2),50, 1e-5)
[WL,U] = PyOFTK.pulseSpectrum(t, u_out_x)

figure(figsize=(15,6))
subplot(121)
plot(t,pow(abs(u_out_x),2), color='blue')
xlim([-5,5])
xlabel (r"($t-\beta_1z)/T_0$")
ylabel (r"$|u(z,t)|^2/P_0$")

subplot(122)
plot(WL,U, color='blue')
xlabel (r"$(\nu-\nu_0)T_0$")
コード例 #19
0
import scipy.interpolate
from scipy import integrate
import PyOFTK
import time


if __name__ == '__main__':

	t1 = time.time()

	lambdaZero = 1.030e-6
	T = 100.0
	nt = pow(2,12)
	dt = T/float(nt)
	t = linspace(-T/2, T/2, nt)
	w = PyOFTK.wspace(T,nt)
	vs = fftpack.fftshift(w/(2*pi))
	C = 2.99792458e-4
	nbSection = 4
	nbPass =  1024
	
	dz = zeros(nbSection)
	nz = zeros(nbSection, int)
	gamma = zeros(nbSection)
	betap = zeros([nbSection, 4], float)
	alpha = zeros([nbSection, 1], float)
	alphaSat = array([0.0])
	alphaProfil = zeros(nt, float)
	pulseEnergy = zeros(nbPass, float)
	phiNLArchive = zeros(nbPass, float)
	#pulseWidth = zeros(nbPass, float)