Hi
I am using &aperture_input to describe the physical aperture of my storage ring. I am a bit confused on how elegant deals with it and I 'd be happy to have a thorough understanding. As an example I paste here a piece of my aperture file:
SDDS1
&column name=s, units=m, type=double, &end &column name=xHalfAperture, units=m, type=double, &end &column name=xCenter, units=m, type=double, &end &column name=yHalfAperture, units=m, type=double, &end &column name=yCenter, units=m, type=double, &end &data mode=ascii, &end ! page number 1
317
0.000000e+00 2.500000e-02 9.000000e-03 1.750000e-02 0.000000e+00
9.350000e-01 2.500000e-02 9.000000e-03 1.750000e-02 0.000000e+00
9.351000e-01 4.000000e-02 0.000000e+00 1.150000e-02 0.000000e+00
2.855000e+00 4.000000e-02 0.000000e+00 1.150000e-02 0.000000e+00
2.855100e+00 4.000000e-02 0.000000e+00 1.150000e-02 0.000000e+00
the way I undestrand it is:
at s=0m I have a horizontal window 2.5cm wide, offset by 9mm. This is kept constant until the next line is reached in the file, at s=0.935m. Then at s=0.9351m a new aperture is defined, which is constant until s=2.855m ... Is there any interpolation where I change the size of the aperture?
Any better comment than my naive interpretation?
Thanks a lot
Marco
physical aperture
Moderators: cyao, michael_borland
-
- Posts: 1959
- Joined: 19 May 2008, 09:33
- Location: Argonne National Laboratory
- Contact:
Re: physical aperture
Marco,
Your understanding of the input is correct. If you want to interpolate between the data points, you can use sddsinterp. For example, assume your original file is called "aperture1.sdds". You can interpolate it at 0.1m intervals as follows:
sddsinterp aperture1.sdds aperture2.sdds -columns=s,xHalfAperture,yHalfAperture,xCenter,yCenter -equispaced=0.1
You'd then use aperture2.sdds with elegant. However, please note that the aperture is typically evaluated only at the ends of elements, so you'd want to divide your elements as well (using the ÷_elements command) if this was really important.
--Michael
Your understanding of the input is correct. If you want to interpolate between the data points, you can use sddsinterp. For example, assume your original file is called "aperture1.sdds". You can interpolate it at 0.1m intervals as follows:
sddsinterp aperture1.sdds aperture2.sdds -columns=s,xHalfAperture,yHalfAperture,xCenter,yCenter -equispaced=0.1
You'd then use aperture2.sdds with elegant. However, please note that the aperture is typically evaluated only at the ends of elements, so you'd want to divide your elements as well (using the ÷_elements command) if this was really important.
--Michael
Re: physical aperture
Hi Michael
thanks very much for your reply.
The evaluation of the aperture at the ends of elements is something I
need to understand for my specific case, so I appreciate your 'caveat' about it.
Also the tip on the (sdds)interpolation might turn quite useful.
Marco
thanks very much for your reply.
The evaluation of the aperture at the ends of elements is something I
need to understand for my specific case, so I appreciate your 'caveat' about it.
Also the tip on the (sdds)interpolation might turn quite useful.
Marco