Skip to content

Commit e92269c

Browse files
authored
Merge pull request #276 from jgray-19/rbend_fixes
Element Map Fixes: RBend
2 parents ce89d64 + c42293c commit e92269c

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
@@ -741,11 +741,14 @@ M.sbend_kick = \el,m,lw -> M.curex_kick(el,m,lw,true) ; --
741741

742742
-- TKT [INTER_STREX] ----------------------------------------------------------o
743743

744-
function M.rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
744+
745+
local function rbend_thick_new (elm, m, lw) -- [SPAR] -- checked
745746
m.atdebug(elm, m, lw, 'rbend_thick:0')
746747

747748
local el, eld, knl, beam, T in m
748-
local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
749+
-- local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
750+
local l, ld, k0 = el*lw, (eld or el)*lw, knl[1]/abs(eld)
751+
local lw = (el/eld)*lw
749752
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
750753

751754
for i=1,m.npar do
@@ -762,11 +765,12 @@ function M.rbend_thick_new (elm, m, lw) -- [SPAR] --
762765
local xi = px*_ptt
763766
local zeta = npx*_ptt
764767
local xtd = xi*sqrt(1-zeta^2) + zeta*sqrt(1-xi^2)
765-
local xt = ld*(2*px - k0lq)*_ptt^2 / xtd
768+
local xt = l*(2*px - k0lq)*_ptt^2 / xtd
766769
local dxs = asinc(xt*k0q)*xt
767770

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

778-
function M.rbend_thick (elm, m, lw) -- [SPAR] -- checked
782+
local function rbend_thick_old (elm, m, lw) -- [SPAR] -- checked
779783
m.atdebug(elm, m, lw, 'rbend_thick:0')
780784

781785
local el, eld, knl, beam, T in m
782-
local ld, k0 = (eld or el)*lw, knl[1]/abs(el)
786+
local ld, k0 = (eld or el)*lw, knl[1]/abs(eld)
787+
local lw = (el/eld)*lw
783788
local beta, k0q, k0lq = beam.beta, k0*beam.charge, knl[1]*lw*beam.charge
784789

785790
for i=1,m.npar do
@@ -805,7 +810,14 @@ function M.rbend_thick (elm, m, lw) -- [SPAR] --
805810
m.atdebug(elm, m, lw, 'rbend_thick:1')
806811
end
807812

808-
M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
813+
if new_bend_thick then
814+
M.rbend_thick = rbend_thick_new
815+
else
816+
M.rbend_thick = rbend_thick_old
817+
end
818+
819+
M.rbend_strex = \el,m,lw -> M.strex_kick(el,m,(m.el/m.eld)*lw)
820+
M.rbend_kick = \el,m,lw -> M.strex_kick(el,m,lw,true) -- checked
809821

810822
-- TKT [INTER_TKTF] -----------------------------------------------------------o
811823

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,
@@ -346,7 +346,7 @@ local function track_rbend (elm, m)
346346
m.el, m.eld, m.eh = arc2cord(ds,angle), ds, angle/ds*tdir
347347
m.e1, m.e2, m.elc = e1, e2, m.el
348348

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

351351
if nmul < 3 then
352352
m.nmul = max(abs(knl[3])+abs(ksl[3]) ~= 0 and 3 or
@@ -359,7 +359,7 @@ local function track_rbend (elm, m)
359359
local inter, thick, kick
360360

361361
if model == 'DKD' then
362-
inter, thick, kick = DKD[method], strex_drift, strex_kick
362+
inter, thick, kick = DKD[method], strex_drift, rbend_strex
363363
else
364364
inter, thick, kick = DKD[method], rbend_thick, rbend_kick
365365
end

0 commit comments

Comments
 (0)