1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| function [sigmaTcal]=calcu(I)
global Aq A energy beta gamma nelm numq c mu q z dl lengthQ f ex ey ez Xini ll firsttimecal m zer sigmaTcal
if firsttimecal == 0
% Line construction
SP=0.01*[65 19 84.5 19 19 69]; % length between the quadpole
ll=zeros(1,11);
ll(1)=SP(1);
for j=2:length(ll)
if (-1)^j==1
ll(j)=ll(j-1)+lengthQ(1);
else
ll(j)=ll(j-1)+SP((j+1)/2);
end
end
L=ll(length(ll)); % length of the line
dl=L/nelm; %infinitesimal element
z=linspace(0,L,nelm); % z axis
% GRADIENT CONVERSION
m=zeros(1,4);
m(1) = 0;
m(2) = (1/(10.8))/2.6;
m(3) = (-2.699029619469e-5)/2.6;
m(4) = (-3.81181036994644e-7)/2.6;
zer = zeros(2,2);
sigmaTcal = zeros(6,6,nelm);
firsttimecal=1;
end
gradient=zeros(1,numq);
qdp=zeros(6,6,numq);
% Calculate the sigma matrix :
ext = ex/1e6;
eyt = ey/1e6;
ezt =(beta*c/f)/(gamma*(gamma+1)*A*energy*1e3*360)*ez;
BB = (beta*c/f)*gamma*(gamma+1)/360*A*energy*1e3*Xini(6);
sigmax = ext*[Xini(2) -Xini(1); -Xini(1) ((1+Xini(1)^2)/Xini(2))];
sigmay = eyt*[Xini(4) -Xini(3); -Xini(3) ((1+Xini(3)^2)/Xini(4))];
sigmaz = ezt*[BB Xini(5); Xini(5) (1+Xini(5)^2)/BB];
sigma = [ sigmax zer zer; zer sigmay zer; zer zer sigmaz];
%%%%%%%%%%%%%%%% Calculate the matrix for the transformastion of the beam %%%%%%%%%%%%%%%%%%%%%%%
% Free field drift matrix
drift=[1 dl 0 0 0 0; 0 1 0 0 0 0; 0 0 1 dl 0 0; 0 0 0 1 0 0; 0 0 0 0 1 (dl/gamma^2); 0 0 0 0 0 1]';
for j=1:numq
gradient(j) = (m(1) + m(2)*I(j) + m(3)*I(j)^2 + m(4)*I(j)^3)*10;
end
% Polarity conversion :
gradient = [-gradient(1) gradient(2) gradient(3) -gradient(4) gradient(5)];
% end of polarity conversion.
kq = sqrt(gradient*q/(Aq*c*beta*gamma*mu));
%%%%%%%%%%%%%%%%%%%% ZERO PROTECTION %%%%%%%%%%%%%%%%%%%%%%%%%%
for j=1:numq
if abs(kq(j))==0
kq(j)=eps;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Quadrupole matrixs
for j=1:numq
qdp(:,:,j)=[cos(kq(j)*dl) 1/kq(j)*sin(kq(j)*dl) 0 0 0 0; -kq(j)*sin(kq(j)*dl) cos(kq(j)*dl) 0 0 0 0; 0 0 cosh(kq(j)*dl) 1/kq(j)*sinh(kq(j)*dl) 0 0; 0 0 kq(j)*sinh(kq(j)*dl) cosh(kq(j)*dl) 0 0; 0 0 0 0 1 dl/(gamma^2); 0 0 0 0 0 1]';
end
%%%%%%% Processing to the transformation for extent and for divergence %%%%%%
sigmaTcal(:,:,1) = sigma;
% DRIFT TRANSFORMATION
for j=2:round(ll(1)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
% QUADPOLE TRANSFORMATION
for j=round(ll(1)/dl)+1:round(ll(2)/dl)
sigmaTcal(:,:,j)=qdp(:,:,1)'*sigmaTcal(:,:,j-1)*qdp(:,:,1);
end
% DRIFT TRANSFORMATION
for j=round(ll(2)/dl)+1:round(ll(3)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
% QUADPOLE TRANSFORMATION
for j=round(ll(3)/dl)+1:round(ll(4)/dl)
sigmaTcal(:,:,j)=qdp(:,:,2)'*sigmaTcal(:,:,j-1)*qdp(:,:,2);
end
% DRIFT TRANSFORMATION
for j=round(ll(4)/dl)+1:round(ll(5)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
% QUADPOLE TRANSFORMATION
for j=round(ll(5)/dl)+1:round(ll(6)/dl)
sigmaTcal(:,:,j)=qdp(:,:,3)'*sigmaTcal(:,:,j-1)*qdp(:,:,3);
end
% DRIFT TRANSFORMATION
for j=round(ll(6)/dl)+1:round(ll(7)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
% QUADPOLE TRANSFORMATION
for j=round(ll(7)/dl)+1:round(ll(8)/dl)
sigmaTcal(:,:,j)=qdp(:,:,4)'*sigmaTcal(:,:,j-1)*qdp(:,:,4);
end
% DRIFT TRANSFORMATION
for j=round(ll(8)/dl)+1:round(ll(9)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
% QUADPOLE TRANSFORMATION
for j=round(ll(9)/dl)+1:round(ll(10)/dl)
sigmaTcal(:,:,j)=qdp(:,:,5)'*sigmaTcal(:,:,j-1)*qdp(:,:,5);
end
% DRIFT TRANSFORMATION
for j=round(ll(10)/dl)+1:round(ll(11)/dl)
sigmaTcal(:,:,j)=drift'*sigmaTcal(:,:,j-1)*drift;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%% END OF TRANSFORMATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
Partager