| 查看: 6338 | 回复: 19 | |||
| 【奖励】 本帖被评价11次,作者514233增加金币 8.3 个 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[资源]
【资源】光纤中,分布傅里叶算法解非线性薛定谔方程MATLAB源程序
|
|||
|
function u1 = ssprop(u0,dt,dz,nz,alpha,betap,gamma,maxiter,tol); % This function solves the nonlinear Schrodinger equation for % pulse propagation in an optical fiber using the split-step % Fourier method. % % The following effects are included in the model: group velocity % dispersion (GVD), higher order dispersion, loss, and self-phase % modulation (gamma). % % USAGE % % u1 = ssprop(u0,dt,dz,nz,alpha,betap,gamma); % u1 = ssprop(u0,dt,dz,nz,alpha,betap,gamma,maxiter); % u1 = ssprop(u0,dt,dz,nz,alpha,betap,gamma,maxiter,tol); % % INPUT % % u0 - starting field amplitude (vector) % dt - time step % dz - propagation stepsize % nz - number of steps to take, ie, ztotal = dz*nz % alpha - power loss coefficient, ie, P=P0*exp(-alpha*z) % betap - dispersion polynomial coefs, [beta_0 ... beta_m] % gamma - nonlinearity coefficient % maxiter - max number of iterations (default = 4) % tol - convergence tolerance (default = 1e-5) % % OUTPUT % % u1 - field at the output % % NOTES The dimensions of the input and output quantities can % be anything, as long as they are self consistent. E.g., if % |u|^2 has dimensions of Watts and dz has dimensions of % meters, then gamma should be specified in W^-1*m^-1. % Similarly, if dt is given in picoseconds, and dz is given in % meters, then beta(n) should have dimensions of ps^(n-1)/m. % % See also: sspropc (compiled MEX routine) % % AUTHOR: Thomas E. Murphy (tem@umd.edu) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Copyright 2006, Thomas E. Murphy % % This file is part of SSPROP. % % SSPROP is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License % as published by the Free Software Foundation; either version % 2 of the License, or (at your option) any later version. % % SSPROP is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public % License along with SSPROP; if not, write to the Free Software % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA % 02111-1307 USA if (nargin<9) tol = 1e-5; end if (nargin<8) maxiter = 4; end nt = length(u0); w = 2*pi*[(0:nt/2-1),(-nt/2:-1)]'/(dt*nt); halfstep = -alpha/2; for ii = 0:length(betap)-1; halfstep = halfstep - j*betap(ii+1)*(w).^ii/factorial(ii); end halfstep = exp(halfstep*dz/2); u1 = u0; ufft = fft(u0); for iz = 1:nz, uhalf = ifft(halfstep.*ufft); for ii = 1:maxiter, uv = uhalf .* exp(-j*gamma*(abs(u1).^2 + abs(u0).^2)*dz/2); uv = fft(uv); ufft = halfstep.*uv; uv = ifft(ufft); if (norm(uv-u1,2)/norm(u1,2) < tol) u1 = uv; break; else u1 = uv; end end if (ii == maxiter) warning(sprintf('Failed to converge to %f in %d iterations',... tol,maxiter)); end u0 = u1; end http://www.photonics.umd.edu/software/ssprop/ssprop-3.0.1-windows.zip [ Last edited by 514233 on 2010-5-7 at 11:50 ] |
» 收录本帖的淘帖专辑推荐
matlab |
» 猜你喜欢
上海工程技术大学【激光智能制造】课题组招收硕士
已经有6人回复
带资进组求博导收留
已经有11人回复
自荐读博
已经有5人回复
求个博导看看
已经有16人回复
上海工程技术大学张培磊教授团队招收博士生
已经有4人回复
求助院士们,这个如何合成呀
已经有4人回复
临港实验室与上科大联培博士招生1名
已经有9人回复
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
中科院杭州医学所招收博士生一名(生物分析化学、药物递送)
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】薛定谔方程转换成矩阵形式的理论依据
已经有4人回复
【讨论】密度泛函理论与薛定谔方程的关系?
已经有7人回复
【求助】紧束缚模型与薛定谔方程的区别与联系
已经有13人回复
【求助】一道博士生面试题:薛定谔方程和热传导方程
已经有10人回复
【求助】解含时薛定谔方程的问题
已经有5人回复
【求助】O3的薛定谔方程表达式,及每一项的物理意义
已经有4人回复
【求助】ALGaN/GaN 薛定谔泊松方程自洽求解(插AlN层)
已经有5人回复
4楼2010-05-09 23:30:36
2楼2010-05-07 12:03:28
3楼2010-05-08 21:48:17
5楼2010-05-10 18:50:41







回复此楼
