[已答复] 求解释非线性薛定谔方程的程序

[复制链接]
cherishall 发表于 2014-5-5 16:20:13
求大神讲解红字部分什么意思,万分感谢!!!!


% 本程序是利用分步傅里叶算法解非线性薛定谔方程
%***************************************************
%---Specify input parameters
clear all; %
clc %%
distance = input('Enter fiber length (in units of L_D) ='); %
beta2 = input('Second order dispersion:(1 for normal, -1 for anomalous, 0 for none) =');%
N = input('Nonlinear parameter N = '); % soliton order
mshape = input('m = 0 for sech, m > 0 for super-Gaussian = ');
chirp0 = input('Input pulse initial chirp = ');  % input pulse chirp (default value)
%---set simulation parameters
nt = 1024*2; Tmax = 64; % FFT points and window size
step_num = round(20*distance*4^2); % No. of z steps to  round四舍五入函数
deltaz = distance/step_num; % step size in z
dtau = (2*Tmax)/nt; % step size in tau
%---tau and omega arrays
tau = (-nt/2:nt/2-1)*dtau; % temporal grid
omega = (pi/Tmax)*[(0:nt/2-1) (-nt/2:-1)]; % frequency grid
%---Input Field profile
if mshape==0
uu = sech(tau).*exp(-0.5*i*chirp0*tau.^2); % soliton
else % super-Gaussian
uu = exp(-0.5*(1+1*i*chirp0).*tau.^(2*mshape));
end
%---Plot input pulse shape and spectrum
temp = fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi); % spectrum
figure; subplot(2,1,1);
plot(tau, abs(uu).^2, ':k','Linewidth',2); hold on;
axis([-10, 10, 0, inf]);
%%xlabel('ok\','fontsize\',20) ;
xlabel('\fontsize{14} Normalized Time');
ylabel('\fontsize{14} Normalized Power');
title('\fontsize{14} Input and Output Pulse Shape and Spectrum');
subplot(2,1,2);
plot(fftshift(omega)/(2*pi), abs(temp).^2, ':k','Linewidth',2); hold on;
axis([-3, 3, 0, inf]);
xlabel('\fontsize{14} Normalized Frequency');
ylabel('\fontsize{14} Spectral Power');
%---store dispersive phase shifts to speedup code
dispersion = exp(i*0.5*beta2*omega.^2*deltaz); % phase factor
hhz = 1i*N^2*deltaz; % nonlinear phase factor
%*********[ Beginning of MAIN Loop]***********
% scheme: 1/2N -> D -> 1/2N; first half step nonlinear
temp = uu.*exp(abs(uu).^2.*hhz/2); % note hhz/2
for n=1:step_num
f_temp = ifft(temp).*dispersion;
uu = fft(f_temp);
temp = uu.*exp(abs(uu).^2.*hhz);
end
uu = temp.*exp(-abs(uu).^2.*hhz/2); % Final field
temp = fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi); %Final spectrum
%***************[ End of MAIN Loop ]**************
%----Plot output pulse shape and spectrum
subplot(2,1,1)
plot(tau, abs(uu).^2, '-b','Linewidth',2)
subplot(2,1,2)
plot(fftshift(omega)/(2*pi), abs(temp).^2, '-b','Linewidth',2)


2 条回复


sdfsgdshsh 发表于 2019-4-29 21:47:53
请问下·楼主知道了不呀

绿山墙的安妮 发表于 2021-10-12 15:09:04
我也正在学习,一起交流一下。
meshape是指输入光束的类型,看下面的if语句超高斯或sech;nt为采样数,Tmax指采样尺寸的半宽;dtau为采样间隔;tau为采样空间对应的网格。
不明白非线性系数N是什么含义,该怎么取?step_num:整个非线性介质分为step_num个小段进行分步傅里叶计算,不明白的是step_num与N有什么关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表