I am defining the coupling in my machine using a set of 96 skew quads disseminated around the ring and using a standard optimization procedure.
So if I want to define a 0.3% coupling I use lines like
&optimization_term term = "MRK1#1.s33m MRK1#1.s44m * MRK1#1.s34m sqr - sqrt MRK1#1.s11m MRK1#1.s22m * MRK1#1.s12m sqr - sqrt / 0.003 .0001 sene" &end
&optimization_variable name=QSKEW.2A.1, item=K1, lower_limit=-0.9, upper_limit=0.9, step_size=0.0001 &end
...
&optimization_variable name=QSKEW.1D.12, item=K1, lower_limit=-0.9, upper_limit=0.9, step_size=0.0001 &end
Where e2/e1 are defined using the sij moment matrices.
This works, however it is not exactly what we do in the machine where we (a) set the coupling to "zero" (i.e. minimum achievable value), and then
(b) apply a common offset to ALL the skew quadrupoles, until the right coupling is found. In other words a 96 elements vector [skew1, skew2 .. skew96] is found to zero the coupling, and then I try to find the best delta such that [skew1+delta, skew2+delta, ... skew96+delta] gives a target coupling of 0.3%.
I am not sure of the best strategy to do (b), the point is how to define an external optimization variable to be used on top of the initial skew values defined by (a). Maybe the best trick is scanning these values?
thanks Marco
coupling definition
Moderators: cyao, michael_borland
-
- Posts: 1951
- Joined: 19 May 2008, 09:33
- Location: Argonne National Laboratory
- Contact:
Re: coupling definition
Marco,
We use essentially the same method in operations as you do. There is a script that is distributed with elegant that implements this method. The script is called "correctCoupling". There's another script called "makeSkewResponseCP" that computes the response matrix for the skew quads.
There are some examples in the elegantExamples file of using (similar) scripts. See couplingCorrection1 and couplingCorrection2.
--Michael
We use essentially the same method in operations as you do. There is a script that is distributed with elegant that implements this method. The script is called "correctCoupling". There's another script called "makeSkewResponseCP" that computes the response matrix for the skew quads.
There are some examples in the elegantExamples file of using (similar) scripts. See couplingCorrection1 and couplingCorrection2.
--Michael