⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1d sase.m

📁 自由电子激光
💻 M
字号:
gamma0=312.7;
current=0.3;
emittance=6E-6;
beta=2.5;
sigemax=(beta*emittance/gamma0)^0.5;
undulatorperiod=2.5e-2;
wavelength=262e-9;  %为已知设计值
K=sqrt((wavelength*2*gamma0^2./undulatorperiod-1)*2);
KK=K*K/(1+K*K/2)/4;   %KK即为b
FB=besselj(0,KK)-besselj(1,KK);
pierceparameter=((current/17.045)*(FB*undulatorperiod*K/2/pi/sigemax/sqrt(2)).^2)^(1/3)*(1/2/gamma0);
Pbeam=gamma0*0.511*current*1000;

m1=500;

e=1.6E-19;
m=1.67E-27/1836;
c=3.0E+8;
Z0=377;

theta=zeros(1,1000);
p=zeros(1,1000);
A=zeros(1,m1);
B=zeros(1,m1);
bunch=zeros(1,m1);
absbunch=zeros(1,m1);
z=zeros(1,m1);
P=zeros(1,m1);
z(1)=0;
A(1)=1E-4;
B(1)=1E-4;
bunch(1)=0;
P(1)=B(1)^2*pierceparameter*Pbeam;

Random=rand(1,100)*pi/5;
for j=1:1:10
    for k=1:1:100      % 初始化相位和能量
    l=(j-1)*100+k;
    theta(l)=Random(k)+(j-1)*pi/5;
    p(l)=0.4;
    end
end

dz=4*pierceparameter*pi;
for k=2:1:m1
    bunch(k)=0;
    z(k)=k*undulatorperiod;
    for j=1:1:1000
    p(j)=p(j)-  ))*FB*exp(i*theta(j)))*dz;
    theta(j)=theta(j)+p(j)*dz;    
    bunch(k)=bunch(k)+exp(-i*theta(j))/1000;
    end
    A(k)=A(k-1)+bunch(k-1)*FB*dz;
    B(k)=abs(A(k));
    absbunch(k)=abs(bunch(k));
    P(k)=B(k)^2*pierceparameter*Pbeam;
end

plot(z,B,z,absbunch)
plot(z,P)
plot(z,log(P/1E-6)/log(10))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -