Skip to content

Commit c42293c

Browse files
committed
Add fixes to make maps the same as ptc
1 parent d8e6ade commit c42293c

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

src/madl_dynmap.mad

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -745,11 +745,14 @@ M.sbend_kick = \el,m,lw -> M.curex_kick(el,m,lw,true) ; --
745745

746746
-- TKT [INTER_STREX] ----------------------------------------------------------o
747747

748-
function M.rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
748+
749+
local function rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
749750
m.atdebug(elm, m, lw, 'rbend_thick:0')
750751

751752
local el, eld, knl, beam, T in m
752-
local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
753+
-- local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
754+
local l, ld, k0 = el*lw, (eld or el)*lw, knl[1]/abs(eld)
755+
local lw = (el/eld)*lw
753756
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
754757

755758
for i=1,m.npar do
@@ -766,11 +769,12 @@ function M.rbend_thick_new (elm, m, lw) -- [SPAR] --
766769
local xi = px*_ptt
767770
local zeta = npx*_ptt
768771
local xtd = xi*sqrt(1-zeta^2) + zeta*sqrt(1-xi^2)
769-
local xt = ld*(2*px - k0lq)*_ptt^2 / xtd
772+
local xt = l*(2*px - k0lq)*_ptt^2 / xtd
770773
local dxs = asinc(xt*k0q)*xt
771774

775+
-- MAD.dbg()
772776
-- eq. 129 in Forest06 with modif. from Sagan
773-
m[i].x = x + ld*(2*px - k0lq) / (pz+pzs)
777+
m[i].x = x + l*(2*px - k0lq) / (pz+pzs)
774778
m[i].px = npx
775779
m[i].y = y + dxs*py
776780
m[i].t = t - dxs*(1/beta+pt) + (1-T)*ld/beta
@@ -779,11 +783,12 @@ function M.rbend_thick_new (elm, m, lw) -- [SPAR] --
779783
m.atdebug(elm, m, lw, 'rbend_thick:1')
780784
end
781785

782-
function M.rbend_thick (elm, m, lw) -- [SPAR] -- checked
786+
local function rbend_thick_old (elm, m, lw) -- [SPAR] -- checked
783787
m.atdebug(elm, m, lw, 'rbend_thick:0')
784788

785789
local el, eld, knl, beam, T in m
786-
local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
790+
local ld, k0 = (eld or el)*lw, knl[1]/abs(eld)
791+
local lw = (el/eld)*lw
787792
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
788793

789794
for i=1,m.npar do
@@ -809,7 +814,14 @@ function M.rbend_thick (elm, m, lw) -- [SPAR] --
809814
m.atdebug(elm, m, lw, 'rbend_thick:1')
810815
end
811816

812-
M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
817+
if new_bend_thick then
818+
M.rbend_thick = rbend_thick_new
819+
else
820+
M.rbend_thick = rbend_thick_old
821+
end
822+
823+
M.rbend_strex = \el,m,lw -> M.strex_kick(el,m,(m.el/m.eld)*lw)
824+
M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
813825

814826
-- TKT [INTER_TKTF] -----------------------------------------------------------o
815827

src/madl_etrck.mad

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ local sbend_thick, sbend_kick,
6868
sbend_thickf, sbend_kickf , dipeg_fringe in MAD.dynmap
6969

7070
-- rbend (TKT)
71-
local rbend_thick, rbend_kick in MAD.dynmap
71+
local rbend_thick, rbend_kick, rbend_strex in MAD.dynmap
7272

7373
-- quadrupole (TKT)
7474
local quad_thick, quad_kick,
@@ -349,7 +349,7 @@ local function track_rbend (elm, m)
349349
m.el, m.eld, m.eh = arc2cord(ds,angle), ds, angle/ds*tdir
350350
m.e1, m.e2, m.elc = e1, e2, m.el
351351

352-
io.write("eh=", m.eh, ", el=", m.el, ", eld=", m.eld, ", elc=", m.elc, ", e1=", m.e1, ", e2=", m.e2, "\n")
352+
-- io.write("eh=", m.eh, ", el=", m.el, ", eld=", m.eld, ", elc=", m.elc, ", e1=", m.e1, ", e2=", m.e2, "\n")
353353

354354
if nmul < 3 then
355355
m.nmul = max(abs(knl[3])+abs(ksl[3]) ~= 0 and 3 or
@@ -362,7 +362,7 @@ local function track_rbend (elm, m)
362362
local inter, thick, kick
363363

364364
if model == 'DKD' then
365-
inter, thick, kick = DKD[method], strex_drift, strex_kick
365+
inter, thick, kick = DKD[method], strex_drift, rbend_strex
366366
else
367367
inter, thick, kick = DKD[method], rbend_thick, rbend_kick
368368
end

0 commit comments

Comments
 (0)