Page 1 of 1

Using ibsEmittance (fixing vertical)

Posted: 04 Apr 2023, 11:20
by Seb_Wilkes
Hello everyone,

I hope this is a quick question! I am using ibsEmittance because I want to plot how the beam-dimensions vary with current. For the lattice I am dealing with, there is no coupling between the two planes (I.E. no skew quadrupoles), nor any vertical dispersion. If I supply the vertical emittance as

Code: Select all

 -emityInput=1e-12 
I get a really small value for the emittance. I know that it gets smaller, https://uspas.fnal.gov/materials/12MSU/ ... cture6.pdf, but this seems rather small. I try alternatively setting the coupling to something very small, like 0.0001 but still get small values.

Am I using ibsEmittance correctly? The value of the vertical emittance that I supply comes from the ring's natural emittance (from quantum excitations), so if the ibsEmittance calculator is using this very small value of the (ibs) vertical emittance, then how can we be sure that the horizontal emittance is accurate (they are mathematically coupled)? For this use-case, does it mean I would have to write my own solver? :?

Re: Using ibsEmittance

Posted: 04 Apr 2023, 12:20
by michael_borland
There's actually a bug in the implementation of emityInput; the fix will be distributed in the next release. However, you can get completely equivalent results using the -coupling parameter, since ibsEmittance translates emityInput and emitxInput (or the natural emittance) into a value for the "coupling" (which is really the emittance ratio).

In ibsEmittance, the two emittances are mathematically coupled via the imposition of the requirement that ey/ex=constant (the "coupling" value from the commandline).

The assumption of ibsEmittance is that all of the sychrotron-radiation-related diffusion in the vertical plane comes from coupling of horizontal-plane diffusion. If there really is no x-y coupling and no vertical dispersion, then the vertical emittance would be determined by IBS and the radiation recoil effect. That effect is very small, so in real rings we can neglect it because there is always some coupling and vertical emittance. The vertical emittance will still be very small, but the horizontal emittance and energy spread will be large because of the high IBS rate.

--Michael

Re: Using ibsEmittance

Posted: 05 Apr 2023, 05:00
by Seb_Wilkes
Thanks Michael, that's helpful clarification. I think it also helped to put things into context.

This is now risking turning into a feature request, but if I knew I would have a particular vertical emittance, then I could I not regard that as a constant in the horizontal emittance calculations?

I ask because for my situation, I am trying to look at the effects of an ideal ring with no vertical dispersion and no skew quadrupoles (therefore no coupling). Hence, as I know see, the vertical emittance (from IBS) would indeed be entirely negligable. But in reality we can be confident the vertical emittance will be greater than that. In fact, Diamond, for instance, plan to artifically increase their vertical emittance using a multibunch feedback system. In that case, particularly, the vertical emittance is a free parameter, but otherwise fixed within the equations.

If this is not something readily modifiable within the elegant ecosystem, I suspect I would just have to code up the equations, and the iterative solving routine, myself in python? It sounds like a lot of work! What are your thoughts on this? Dive into elegant; start from scratch in python; or not bother with either as it would not change the other IBS results much?

Re: Using ibsEmittance

Posted: 05 Apr 2023, 10:51
by michael_borland
It turns out that ibsEmittance almost does what you want, so it was easy to add this feature. The new version is attached, in case you build from source.

The new option is -fixEmity={0|1}. E.g.,

Code: Select all

ibsEmittance -emityInput=1e-15 -fixEmity=1 ...
--Michael

Re: Using ibsEmittance

Posted: 07 Apr 2023, 02:31
by Seb_Wilkes
Hi Michael,

Thanks for putting that together. I compiled it, but I just want to check something please. Without using the new fixEmity command, I just wanted to check that they were the same. Is the discrepancy related to the bug you mentioned about using -emityInput? (For context, 'oldRunScript' uses ibsEmittance that shipped with elegant 2019.1.1; the new one is the one you sent me)

Code: Select all

$ ./oldRunScript; ./newRunScript 
****
Input values:
emitxInput ($gp$rm) =  1.616545e-10  emityInput ($gp$rm) =  1.000000e-12  sigmaDeltaInput =      9.355127e-04

IBS-inflated values:
emitx ($gp$rm) =  1.090417e-10  emity ($gp$rm) =  1.090417e-10  sigmaDelta =      9.508862e-04  sigmaz (m) =      3.800854e-03

****
IBS-inflated values:
emitx (m) =   2.166084e-10  emity (m) =   1.339947e-12  sigmaDelta =  1.069316e-03  sigmaz (m) =  4.274238e-03

****
Comparing the results, it would seem that the latter makes more sense.

I plotted the difference between fixedEmit={1|0}, if you're curious:
ibs_graph.png
So I think that was indeed worth the modification (thanks again Michael).

Re: Using ibsEmittance (fixing vertical)

Posted: 07 Apr 2023, 09:01
by michael_borland
Yes, that's the bug you are seeing in the first set of results. It made the two emittances equal.

--Michael