380 likes | 623 Views
Zhejiang Normal University. Split-Step Fourier Transform Method. 李画眉. 2009 年 11 月. Outline. 一、 Algorithms 二、 Stationary solution for 1+1D NLSE 三、 Propagation for 1+1D NLSE 四、 Stability Analysis 五、 Conclusions. Algorithms : Image-time method.
E N D
Zhejiang Normal University Split-Step Fourier Transform Method 李画眉 2009年11月
Outline 一、 Algorithms 二、 Stationary solution for 1+1D NLSE 三、Propagation for 1+1D NLSE 四、 Stability Analysis 五、Conclusions
Algorithms:Image-time method By making use of a substitution t-it, then one can employ other appropriate algorithms (FFT, difference scheme, etc.) to obtain stationary solution. Advantage: independence of initial guess value Disadvantage: only ground state can be obtained
linear nonlinear linear Stationary solution for 1+1D NLSE • FFT Linear part Nonlinear part
Program clear all p=1; omega=2; %%------------------- n=2048; hx=0.06; x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx); w=fftshift((-n/2:n/2-1)*hw); %%------------------- % q=exp(-1*(x).^2/2); q=sech(x); intensity=4.6; u1(:,1)=(abs(q).^2)'; %------------------- V=cos(omega*x);
Program %-------------------- L=50; nm=5000; h=L/nm; %------------------- for j=1:nm j D=exp(((i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q)); N=exp((p*V+(abs(qstep1)).^2)*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2)); q=sqrt(intensity)*q/sqrt(sum(abs(q).^2)*hx); u=abs(q); r=floor(2+(j-1)/50); u1(:,r)=u'; end
Program kin=-sum((q(3:end)-q(1:end-2)).^2)/4/hx; p_i=sum(2*q.^2.*(abs(q).^2+V))*hx; b=(kin+p_i)/2/intensity z=0:h*50:50; figure(1) mesh(x,z,u1'); view(0,90) figure(2) plot(x,u1(:,end),'r',x,V,'b')
Energy_b Energy_b
Program clear all p=1; omega=2; %%------------------- n=2048; hx=0.06; x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx); w=fftshift((-n/2:n/2-1)*hw); %%------------------- loop=0;
Program for intensity=1:0.1:5 % q=exp(-1*(x).^2/2); q=sech(x); u1(:,1)=(abs(q).^2)'; %------------------- V=cos(omega*x); %-------------------- L=50; nm=1000; h=L/nm; loop=loop+1 %-------------------
Program for j=1:nm j; D=exp(((i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q)); N=exp((p*V+(abs(qstep1)).^2)*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2)); q=sqrt(intensity)*q/sqrt(sum(abs(q).^2)*hx); end kin=-sum((q(3:end)-q(1:end-2)).^2)/4/hx; p_i=sum(2*q.^2.*(q.^2+p*V))*hx; b(loop)=(kin+p_i)/2/intensity end intensity=1:0.1:5 plot(b,intensity)
Numerical results Iterative process Energy_b Stationary solution
Program clear all p=1; omega=2; %%------------------- n=2048; hx=0.06; x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx); w=fftshift((-n/2:n/2-1)*hw); %%------------------- % q=exp(-1*(x).^2/2); q=sech(x); intensity=1; %------------------- V=cos(omega*x);
Program %%%%%%%%%%%%%%%% L=50; nm=5000; h=L/nm; u1(:,1)=(abs(q).^2)'; %------------------- for j=1:nm j D=exp((i*(i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q)); N=exp((i*p*V+i*(abs(qstep1)).^2)*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2)); u=abs(q).^2; r=floor(2+(j-1)/50); u1(:,r)=u'; end
Program z=0:50*h:L; mesh(x,z,u1'); view(0,90)
Numerical results Propagation
Stability Analysis for 1+1D NLSE Assuming the stationary solution is of the form We consider the stability of the stationary solution w(x) by employing the following algorithms: Eigenvalue method Split-step Fourier method
Eigenvalue method In eigenvalue method, there are two assumptions for the perturbed stationary solution First assumption: Physica D 237, 3252 (2008) where the perturbation components u, v could grow with a complex rate λduring propagation. Substitute the perturbed solution into equation, we obtained the linear eigen-equations The solution is stable if the imaginary parts of λ equal zero.
We begin by discretizing the domain x∈[-a,a] by placing a grid over the domain. We will use the grid with grid spacing h=2a/N in axis x. We will attempt to approximate the solution at the points on this lattice, and define uk and vk to be functions defined at the point xk≡-a+(k-1)h or the lattice point k, where k=1, 2, ⋯, N+1. Thus we can obtain the difference scheme as follows with Espically and due to
namely where The soliton is stable if the imaginary parts λ of equal zero. stability_1D_eigenvalue_1.m
Second assumption: PRL93, 153903 (2004) with the complex rate δ: After substituting this perturbed solution into equation and linearizing, we obtain a linear eigenvalue problem as follows The soliton is stable if the real parts of δequal zero.
Discretizing Namely where stability_1D_eigenvalue_2.m
Discretizing Namely where stability_1D_eigenvalue_2.m
Split-step Fourier method JOSAB21, 973 (2004) By denoting where w(x) is the fundamental soliton and U(x,z)<<1 is the infinitesimal perturbation, the linearized equation for U(x,z)is Starting from a white-noise initial condition, we simulate above linear equation for a long distance (hundreds of z units).
FFT RK method FFT Note FFT RK method
Program clear all tic p=1;omega=2; %%------------------- n=1024;hx=0.08; x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx); w=fftshift((-n/2:n/2-1)*hw); %%------------------- q=exp(-1*(x).^2/2); q=sech(x); intensity=4.6; u1(:,1)=(abs(q).^2)'; %------------------- V=cos(omega*x);
Program %-------------------- L=50; nm=5000; h=L/nm; %------------------- for j=1:nm j D=exp(((i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q)); N=exp((p*V+(abs(qstep1)).^2)*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2)); q=sqrt(intensity)*q/sqrt(sum(abs(q).^2)*hx); u=abs(q); r=floor(2+(j-1)/50); u1(:,r)=u'; end
Program kin=-sum((q(3:end)-q(1:end-2)).^2)/4/hx; p_i=sum(2*q.^2.*(abs(q).^2+V))*hx; b=(kin+p_i)/2/intensity %%-------------------------- alpha=1/(2*hx^2); w=u1(:,end)'; beta=2*w.^2+p*cos(omega*x)-b-1/hx^2; kai=w.^2; growth_rate1=stability_1D_eigenvalue_1(alpha,beta,kai,w,n) %%------------------- % alpha=1/(2*h^2); % w=phi; p=2*alpha-p*cos(omega*x)+b; % kai=w.^2; growth_rate2=stability_1D_eigenvalue_2(alpha,p,kai,w,n) toc
Subprogram1 function growth_rate=stability_1D_eigenvalue_1(alpha,beta,kai,phi,N) A=[beta(2) kai(2);-kai(2) -beta(2)]; B=[alpha 0;0 -alpha]; for kk=3:N A=[A [zeros(2*(kk-3),2);B];zeros(2,2*(kk-3)) B [beta(kk) kai(kk);-kai(kk) -beta(kk)]]; end growth_rate=max(abs(imag(eig(A))));
Subprogram2 function growth_rate=stability_1D_eigenvalue_2(alpha,p,kai,phi,N) for mm=1:N-2 AA2(mm,mm)=-p(mm+1)+3*kai(mm+1); AA2(mm,mm+1)=alpha; AA2(mm+1,mm)=alpha; BB2(mm,mm)=p(mm+1)-kai(mm+1); BB2(mm,mm+1)=-alpha; BB2(mm+1,mm)=-alpha; end AA2(N-1,N-1)=-p(N)+3*kai(N); BB2(N-1,N-1)=p(N)-kai(N); CC2=[zeros(N-1,N-1) AA2;BB2 zeros(N-1,N-1)]; delta2=eig(CC2); NN2=length(delta2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% growth_rate=max(abs(real(delta2)));
Numerical results stability_eigen_newton_1D_LU_growth.m
Conclusions • As far as ground state is concerned, image-time method is a most effective algorithm to deal with it due to insignificance of initial guess value. It is worth noting that energy conservation law must be met when image-time method is employed. • Split-step Fourior algorithm is a feasible method for stability analysis.