Hi all,
I am looking into slice beam properties in a bunch compressor, so I have watch files along the lattice, some of which are at the centre of dipoles. I then slice these into longitudinal slices and use sddsanalyzebeam get the slice data for the bunch. In the output of these files there is horizontal dispersion etax and etaxp, which I have noticed are near constant along the centre of the bunch, but differ at the extreme head/tail slices of the bunch. From what I understand dispersion is a property of the lattice so it should be constant for each slice of the bunch.
I have attached a plot of Ct vs etax/etaxp and the file from which it was generated. The watch file was at the centre of a dipole.
How is etax/etaxp calculated in sddsanalyzebeam? Do you know why I have this result?
Thanks,
Adam
Slice dispersion?
Moderators: cyao, michael_borland
-
- Posts: 16
- Joined: 05 Nov 2021, 08:33
Slice dispersion?
- Attachments
-
- slice_dispersion.png (6.21 KiB) Viewed 7034 times
-
- Posts: 1945
- Joined: 19 May 2008, 09:33
- Location: Argonne National Laboratory
- Contact:
Re: Slice dispersion?
Adam,
The dispersion, beta functions, and other properties can be defined for the lattice or for a beam (or slice of a beam).
In defining these for a lattice, we have to give an initial condition or declare some boundary conditions (typically periodicity). For a beam, the properties are defined from the beam moments; for example, the monoenergetic rms beam size Sx, emittance ex, and beam beta function betaxBeam are related by Sx^2 = ex*betaxBeam. If a beam is matched to the transport line, betax=betaxBeam, betay=betayBeam, etax=etaxBeam, etc. For a mismatched beam, this isn't true.
The horizontal dispersion in the beam characterizes how x and delta=(p-pRef)/pRef are related. It's defined as <x*delta>/<delta^2> (assuming for simplicity <x>=0 and <delta>=0). You can see this by writing the total x coordinate as x = xb + delta*etax, where xb is the betatron component. Multiplying by delta and taking the average over all particles, we get <x*delta> = <xb*delta> + <delta^2>*etax; the first term is zero by definition.
--Michael
The dispersion, beta functions, and other properties can be defined for the lattice or for a beam (or slice of a beam).
In defining these for a lattice, we have to give an initial condition or declare some boundary conditions (typically periodicity). For a beam, the properties are defined from the beam moments; for example, the monoenergetic rms beam size Sx, emittance ex, and beam beta function betaxBeam are related by Sx^2 = ex*betaxBeam. If a beam is matched to the transport line, betax=betaxBeam, betay=betayBeam, etax=etaxBeam, etc. For a mismatched beam, this isn't true.
The horizontal dispersion in the beam characterizes how x and delta=(p-pRef)/pRef are related. It's defined as <x*delta>/<delta^2> (assuming for simplicity <x>=0 and <delta>=0). You can see this by writing the total x coordinate as x = xb + delta*etax, where xb is the betatron component. Multiplying by delta and taking the average over all particles, we get <x*delta> = <xb*delta> + <delta^2>*etax; the first term is zero by definition.
--Michael
-
- Posts: 16
- Joined: 05 Nov 2021, 08:33
Re: Slice dispersion?
Thanks for the explanation Michael! That makes a lot of sense and cleared that up.
I have another question about the sddsanalyzebeam. As I mentioned above, I am slicing the beam and then I am using sddsanalyzebeam to track the evolution of the slice parameters for each slice along the bunch compressor. Typically I do this with a 2,000,000 macro-particles and have used 20-600 longitudinal slices, but the slice beta functions and slice alpha were larger than I expected, larger than the whole beam beta and alpha. So I ran the same simulation with 1 longitudinal slice, so the single 'slice' beta and alpha should match the beta and alpha from the *twiss output file, but it is much larger than the *twiss output values.
I have attached plots of beta, ecx and Sx along the bunch compressor using *twiss and *sigma output files, and using the equivalent single 'slice' beta, ecx and Sx from sddsanalyzebeam at each watch file. Can also attach *ele and *lte file, and the script used to slice the bunch if needed.
Do you understand why the beta from *twiss output and sddsanalyzebeam are different here?
Thanks,
Adam
I have another question about the sddsanalyzebeam. As I mentioned above, I am slicing the beam and then I am using sddsanalyzebeam to track the evolution of the slice parameters for each slice along the bunch compressor. Typically I do this with a 2,000,000 macro-particles and have used 20-600 longitudinal slices, but the slice beta functions and slice alpha were larger than I expected, larger than the whole beam beta and alpha. So I ran the same simulation with 1 longitudinal slice, so the single 'slice' beta and alpha should match the beta and alpha from the *twiss output file, but it is much larger than the *twiss output values.
I have attached plots of beta, ecx and Sx along the bunch compressor using *twiss and *sigma output files, and using the equivalent single 'slice' beta, ecx and Sx from sddsanalyzebeam at each watch file. Can also attach *ele and *lte file, and the script used to slice the bunch if needed.
Do you understand why the beta from *twiss output and sddsanalyzebeam are different here?
Thanks,
Adam
- Attachments
-
- sigma_xy.png (5.89 KiB) Viewed 7026 times
-
- emittance_geom.png (5.11 KiB) Viewed 7026 times
-
- BetaFunctions.png (7.71 KiB) Viewed 7026 times