📄 1d sase.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 + -