Chromaticity to adjust K2 of Sextupoles in a Linac
Posted: 28 Jan 2013, 16:56
Hi,
I am attempting to use the "chromaticity" command to use Sextupoles to correct for chromatic errors in several Quadrupoles. Each of the Sextupoles is placed shortly after one of the quads. I am attempting to use this in a linac, whereas the example files are in rings (as far as I can tell). The elegant file runs without errors, I can tell that it is at least seeing the &chromaticity command, but it does not appear to be changing the K2 values at all (looking at the .matext file shows that they are still at the default values). I have change_defined_values=1; are more steps necessary to make it actually adjust the values to change the K2 values used for tracking? Is it for some reason believing that the chromaticity targets are met, and isn't adjusting the sextupole strength as a result?
The relevant part of the command file:
&chromaticity
sextupoles = "SEXT1, SEXT2, SEXT3, SEXT4,"
dnux_dp = 1.0e-4,
dnuy_dp = 1.0e-4,
sextupole_tweek = 1e-3,
strength_log = %.ssl,
correction_fraction = 0.9,
change_defined_values = 1,
n_iterations = 500
tolerance = 0.00001
strength_limit = 100,
&end
The quadrupoles used are defined as:
SEXT1: SEXT,L=0.15, K2=1.0e-50
SEXT2: SEXT,L=0.15, K2=1.0e-50
SEXT3: SEXT,L=0.15, K2=1.0e-50
SEXT4: SEXT,L=0.15, K2=1.0e-50
... though I also tried them as KSEXT, to no difference.
In the output of the file, the following is displayed during the :
&chromaticity
sextupoles = "SEXT1, SEXT2, SEXT3, SEXT4",
dnux_dp = 1.000000000000000e-04,
dnuy_dp = 1.000000000000000e-04,
sextupole_tweek = 1.000000000000000e-03,
correction_fraction = 9.000000000000000e-01,
n_iterations = 500,
tolerance = 1.000000000000000e-05,
strength_log = %.ssl,
change_defined_values = 1,
strength_limit = 1.000000000000000e+02,
use_perturbed_matrix = 0,
exit_on_failure = 0,
verbosity = 2,
&end
family dCHROMx/dK2 dCHROMy/dK2
SEXT1: -1.8861076e-04 1.4811970e-02
SEXT2: 1.3943548e-02 -4.4981873e-03
SEXT3: 9.5674361e-03 -2.5339965e-03
SEXT4: 3.0220175e-04 -1.5364004e-04
family dK2/dCHROMx dK2/dCHROMy
SEXT1: 3.0925781e+01 7.0992188e+01
SEXT2: 1.0715625e+02 -6.8656250e+01
SEXT3: -2.8500000e+01 3.1968750e+01
SEXT4: 1.9890000e+03 1.1195000e+03
After this, it is clearly just skipping to the next &run_setup.
The &chromaticity command is done in a separate &run_setup section of the input file, after all of the quads are fit and before the bunch is tracked. My assumption would be that the target chromaticities dnux_dp are already being met, but where do I inspect to see where they are?
Any help on this would be appreciated.
Thanks,
Chris
I am attempting to use the "chromaticity" command to use Sextupoles to correct for chromatic errors in several Quadrupoles. Each of the Sextupoles is placed shortly after one of the quads. I am attempting to use this in a linac, whereas the example files are in rings (as far as I can tell). The elegant file runs without errors, I can tell that it is at least seeing the &chromaticity command, but it does not appear to be changing the K2 values at all (looking at the .matext file shows that they are still at the default values). I have change_defined_values=1; are more steps necessary to make it actually adjust the values to change the K2 values used for tracking? Is it for some reason believing that the chromaticity targets are met, and isn't adjusting the sextupole strength as a result?
The relevant part of the command file:
&chromaticity
sextupoles = "SEXT1, SEXT2, SEXT3, SEXT4,"
dnux_dp = 1.0e-4,
dnuy_dp = 1.0e-4,
sextupole_tweek = 1e-3,
strength_log = %.ssl,
correction_fraction = 0.9,
change_defined_values = 1,
n_iterations = 500
tolerance = 0.00001
strength_limit = 100,
&end
The quadrupoles used are defined as:
SEXT1: SEXT,L=0.15, K2=1.0e-50
SEXT2: SEXT,L=0.15, K2=1.0e-50
SEXT3: SEXT,L=0.15, K2=1.0e-50
SEXT4: SEXT,L=0.15, K2=1.0e-50
... though I also tried them as KSEXT, to no difference.
In the output of the file, the following is displayed during the :
&chromaticity
sextupoles = "SEXT1, SEXT2, SEXT3, SEXT4",
dnux_dp = 1.000000000000000e-04,
dnuy_dp = 1.000000000000000e-04,
sextupole_tweek = 1.000000000000000e-03,
correction_fraction = 9.000000000000000e-01,
n_iterations = 500,
tolerance = 1.000000000000000e-05,
strength_log = %.ssl,
change_defined_values = 1,
strength_limit = 1.000000000000000e+02,
use_perturbed_matrix = 0,
exit_on_failure = 0,
verbosity = 2,
&end
family dCHROMx/dK2 dCHROMy/dK2
SEXT1: -1.8861076e-04 1.4811970e-02
SEXT2: 1.3943548e-02 -4.4981873e-03
SEXT3: 9.5674361e-03 -2.5339965e-03
SEXT4: 3.0220175e-04 -1.5364004e-04
family dK2/dCHROMx dK2/dCHROMy
SEXT1: 3.0925781e+01 7.0992188e+01
SEXT2: 1.0715625e+02 -6.8656250e+01
SEXT3: -2.8500000e+01 3.1968750e+01
SEXT4: 1.9890000e+03 1.1195000e+03
After this, it is clearly just skipping to the next &run_setup.
The &chromaticity command is done in a separate &run_setup section of the input file, after all of the quads are fit and before the bunch is tracked. My assumption would be that the target chromaticities dnux_dp are already being met, but where do I inspect to see where they are?
Any help on this would be appreciated.
Thanks,
Chris