| 查看: 6482 | 回复: 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 |
» 猜你喜欢
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有9人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有10人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有5人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有8人回复
遇见不省心的家人很难过
已经有24人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有6人回复
酰胺脱乙酰基
已经有13人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有10人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】薛定谔方程转换成矩阵形式的理论依据
已经有4人回复
【讨论】密度泛函理论与薛定谔方程的关系?
已经有7人回复
【求助】紧束缚模型与薛定谔方程的区别与联系
已经有13人回复
【求助】一道博士生面试题:薛定谔方程和热传导方程
已经有10人回复
【求助】解含时薛定谔方程的问题
已经有5人回复
【求助】O3的薛定谔方程表达式,及每一项的物理意义
已经有4人回复
【求助】ALGaN/GaN 薛定谔泊松方程自洽求解(插AlN层)
已经有5人回复
16楼2011-01-12 16:11:48
2楼2010-05-07 12:03:28
3楼2010-05-08 21:48:17
4楼2010-05-09 23:30:36













回复此楼