I am trying to accelerate a beam in a ring. I am using multiple passes through a lattice containing an RFCA element with CHANGE_P0=1 but what I find is that the reference momentum is updated only on the first pass. On the subsequent passes the reference momentum remains constant and I believe there is no scaling of the magnetic field strengths. Here is a simple illustration.
A simple lattice file consisting of a single FODO cell (test.lte):
A command file (test.ele):DSXT: DRIF, L=0.05
DQAFE: DRIF, L=0.05
DBXAFE: DRIF, L=0.14
BXAF: CSBEND, L=8, ANGLE=0.07333499518, TILT=0, &
E1=0.03666749759, E2=0.03666749759, K1=0.0 ,N_KICKS=20
DAF01: DRIF, L=0.96
DAF02: DRIF, L=0.51
SXT02: KSEXT, L=0.5, K2=0.0, TILT=0, N_KICKS=10
QAF02: KQUAD, L=0.8, K1=-0.157938024375, TILT=0, N_KICKS=20
SXT01: KSEXT, L=0.5, K2=0.0, TILT=0, N_KICKS=10
QAF01: KQUAD, L=0.8, K1=0.158759981625, TILT=0, N_KICKS=20
RFCSIM: RFCA, L=0, VOLT=30.0E3, PHASE=210, FREQ=13059280.07573, &
MON: DRIF, L=0.15
BXYC: DRIF, L=0.5
Here is what I get when I do: sddsplot w1.sdds -par=Pass,pCentral or sddsplot w1.sdds -col=p,x The offset grows with momentum, which means that the fields are not being scaled.&change_particle
name = proton
lattice = test.lte,
use_beamline = FODO,
rootname = test,
default_order = 1,
p_central_mev = 8.0E3
n_steps = 2,
n_passes_fiducial = 1,
first_is_fiducial = 1,
restrict_fiducialization = 1,
reset_rf_for_each_step = 0,
n_passes = 10000
first_is_fiducial = 1
Can you help please? I tried many different options. It works okay in a storage mode but whenever I try to accelerate over multiple passes I do not seem to be able to update the reference momentum after the first pass.
I am using the latest version of Elegant (elegant 30.1.0, Aug 8 2016).
Thank you very much in advance!