source: MML/trunk/at/atphysics/thickmpoleraddiffm.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 1.6 KB
Line 
1function [Bcum, Mcum, r] = findthickmpoleraddifm(rin, PolynomA, PolynomB,L, irho, E0, max_order,num_steps)
2%FINDTHICKMPOLERADDIFFM
3
4% Fourth order-symplectic integrator constants
5persistent DRIFT1 DRIFT2 KICK1 KICK2
6if isempty(DRIFT1)
7    DRIFT1   = 0.6756035959798286638;
8    DRIFT2   = -0.1756035959798286639;
9    KICK1    =  1.351207191959657328;
10    KICK2    = -1.702414383919314656;
11end
12
13
14
15SL = L/num_steps;
16L1 = SL*DRIFT1;
17L2 = SL*DRIFT2;
18K1 = SL*KICK1;
19K2 = SL*KICK2;
20
21Mcum = eye(6);
22Bcum = zeros(6);
23r = rin;
24
25for m=1:num_steps % Loop over slices
26   
27    [M, r] = driftm66(L1,r);
28    Bcum = M*Bcum*M';
29    Mcum = M*Mcum;
30   
31    [B, M, r] = findthinmpoleraddiffm(r, PolynomA, PolynomB, K1, irho, E0, max_order);
32    Bcum = M*Bcum*M' + B;
33    Mcum = M*Mcum;
34   
35    [M, r] = driftm66(L2,r);
36    Bcum = M*Bcum*M';
37    Mcum = M*Mcum;
38   
39    [B, M, r] = findthinmpoleraddiffm(r, PolynomA, PolynomB, K2, irho, E0, max_order);
40    Bcum = M*Bcum*M' + B;
41    Mcum = M*Mcum;
42                               
43    [M, r] = driftm66(L2,r);
44    Bcum = M*Bcum*M';
45    Mcum = M*Mcum;
46       
47    [B, M, r] = findthinmpoleraddiffm(r, PolynomA, PolynomB, K1, irho, E0, max_order);
48    Bcum = M*Bcum*M' + B;
49    Mcum = M*Mcum;
50   
51    [M, r] = driftm66(L1,r);
52    Bcum = M*Bcum*M';
53    Mcum = M*Mcum;
54
55end
56
57
58function [M, rout] = driftm66(L,r);
59% transfer matrix of a drift - map linearized at r
60
61Pnorm = 1/(1+r(5));
62NormL = L*Pnorm;
63M = eye(6);
64M([7 21]) = NormL;
65
66
67M([1 3],5) = -NormL*r([2,4])*Pnorm;
68M(6,[2 4]) = -M([1 3],5)';
69M(6,5) =  -NormL*Pnorm*sum(r([2,4]).^2);
70
71rout = r;
72rout([1 3]) = r([1 3]) + r([2 4])*NormL;
73rout(6) = r(6) + NormL*Pnorm*sum(r([2,4]).^2)/2;
74
Note: See TracBrowser for help on using the repository browser.