|
4 | 4 | # import importLongDescription
|
5 | 5 | # long_description = importLongDescription.output()
|
6 | 6 | long_description = u"""
|
7 |
| -Package xrt (XRayTracer) is a python software library for ray tracing and wave |
8 |
| -propagation in x-ray regime. It is primarily meant for modeling synchrotron |
9 |
| -sources, beamlines and beamline elements. Includes a GUI for creating a |
10 |
| -beamline and interactively viewing it in 3D. |
| 7 | +Package xrt is a python software library for ray tracing and wave propagation |
| 8 | +in x-ray regime. It is primarily meant for modeling synchrotron sources, |
| 9 | +beamlines and beamline elements. Includes a GUI for creating a beamline and |
| 10 | +interactively viewing it in 3D. |
11 | 11 |
|
12 | 12 | Features of xrt
|
13 | 13 | ---------------
|
|
17 | 17 | lens or paraxial. The optical surfaces may have figure errors, analytical or
|
18 | 18 | measured. In wave propagation, partially coherent radiation is treated by
|
19 | 19 | incoherent addition of coherently diffracted fields generated per electron.
|
| 20 | + Propagation of _individual_ coherent source modes is possible as waves, |
| 21 | + hybrid waves (i.e. partially as rays and then as waves) and only rays. |
20 | 22 |
|
21 | 23 | * *Publication quality graphics*. 1D and 2D position histograms are
|
22 | 24 | *simultaneously* coded by hue and brightness. Typically, colors represent
|
|
42 | 44 | throughout the series.
|
43 | 45 |
|
44 | 46 | * *Synchrotron sources*. Bending magnet, wiggler, undulator and elliptic
|
45 |
| - undulator are calculated internally within xrt. There is also a legacy |
46 |
| - approach to sampling synchrotron sources using the codes `ws` and `urgent` |
47 |
| - which are parts of XOP package. Please look the section "Comparison of |
48 |
| - synchrotron source codes" for the comparison between the implementations. If |
49 |
| - the photon source is one of the synchrotron sources, the total flux in the |
50 |
| - beam is reported not just in number of rays but in physical units of ph/s. |
51 |
| - The total power or absorbed power can be opted instead of flux and is |
| 47 | + undulator are calculated internally within xrt. Please look the section |
| 48 | + "Comparison of synchrotron source codes" for the comparison other popular |
| 49 | + codes. If the photon source is one of the synchrotron sources, the total flux |
| 50 | + in the beam is reported not just in number of rays but in physical units of |
| 51 | + ph/s. The total power or absorbed power can be opted instead of flux and is |
52 | 52 | reported in W. The power density can be visualized by isolines. The magnetic
|
53 | 53 | gap of undulators can be tapered. Undulators can be calculated in near field.
|
54 | 54 | Custom magnetic field is also possible. Undulators can be calculated on GPU,
|
55 | 55 | with a high gain in computation speed, which is important for tapering and
|
56 | 56 | near field calculations.
|
57 | 57 |
|
58 | 58 | * *Shapes*. There are several predefined shapes of optical elements implemented
|
59 |
| - as python classes. The inheritance mechanism simplifies creation of other |
60 |
| - shapes. The user specifies methods for the surface height and the surface |
61 |
| - normal. For asymmetric crystals, the normal to the atomic planes can be |
62 |
| - additionally given. The surface and the normals are defined either in local |
63 |
| - (x, y) coordinates or in user-defined parametric coordinates. Parametric |
| 59 | + as python classes. The python inheritance mechanism simplifies creation of |
| 60 | + other shapes: the user specifies methods for surface height and surface |
| 61 | + normal. The surface and the normal are defined either in local Cartesian |
| 62 | + coordinates or in user-defined parametric coordinates. Parametric |
64 | 63 | representation enables closed shapes such as capillaries or wave guides. It
|
65 |
| - also enables exact solutions for complex shapes (e.g. a logarithmic spiral) |
66 |
| - without any expansion. The methods of finding the intersections of rays with |
67 |
| - the surface are very robust and can cope with pathological cases as sharp |
68 |
| - surface kinks. Notice that the search for intersection points does not |
69 |
| - involve any approximation and has only numerical inaccuracy which is set by |
70 |
| - default as 1 fm. Any surface can be combined with a (differently and variably |
71 |
| - oriented) crystal structure and/or (variable) grating vector. Surfaces can be |
72 |
| - faceted. |
| 64 | + also enables exact solutions for complex shapes (e.g. a logarithmic spiral or |
| 65 | + an ellipsoid) without any expansion. The methods of finding the intersections |
| 66 | + of rays with the surface are very robust and can cope with pathological cases |
| 67 | + such as sharp surface kinks. Notice that the search for intersection points |
| 68 | + does not involve any approximation and has only numerical inaccuracy which is |
| 69 | + set by default as 1 fm. Any surface can be combined with a (differently and |
| 70 | + variably oriented) crystal structure and/or (variable) grating vector. |
| 71 | + Surfaces can be faceted. |
73 | 72 |
|
74 | 73 | * *Energy dispersive elements*. Implemented are crystals in dynamical
|
75 | 74 | diffraction, gratings (also with efficiency calculations), Fresnel zone
|
|
118 | 117 | -------------------------------------
|
119 | 118 |
|
120 | 119 | The main interface to xrt is through a python script. Many examples of such
|
121 |
| -scripts can be found in the supplied folder 'examples'. The script imports the |
122 |
| -modules of xrt, instantiates beamline parts, such as synchrotron or geometric |
123 |
| -sources, various optical elements, apertures and screens, specifies required |
124 |
| -materials for reflection, refraction or diffraction, defines plots and sets job |
125 |
| -parameters. |
126 |
| -
|
127 |
| -The Qt tool xrtQook takes these ingredients and prepares a ready to use script |
128 |
| -that can be run within the tool itself or in an external Python context. |
129 |
| -xrtQook features a parallelly updated help panel that, unlike the main |
130 |
| -documentation, provides a complete list of parameters for the used classes, |
131 |
| -also including those from the parental classes. xrtQook writes/reads the |
| 120 | +scripts can be found in the supplied folders 'examples' and 'tests'. The script |
| 121 | +imports the modules of xrt, instantiates beamline parts, such as synchrotron or |
| 122 | +geometric sources, various optical elements, apertures and screens, specifies |
| 123 | +required materials for reflection, refraction or diffraction, defines plots and |
| 124 | +sets job parameters. |
| 125 | +
|
| 126 | +The Qt tool xrtQook takes these ingredients as GUI elements and prepares a |
| 127 | +ready to use script that can be run within the tool itself or in an external |
| 128 | +Python context. xrtQook has a parallelly updated help panel that provides a |
| 129 | +complete list of parameters for the used objects. xrtQook writes/reads the |
132 | 130 | recipes of beamlines into/from xml files.
|
133 | 131 |
|
134 | 132 | xrtGlow -- an interactive 3D beamline viewer
|
|
154 | 152 | for xrtQook. Spyder (as library of Spyder IDE) is highly recommended for nicer
|
155 | 153 | view of xrtQook. OpenGL is required for xrtGlow.
|
156 | 154 |
|
157 |
| -Python 2 and 3 |
158 |
| --------------- |
159 |
| -
|
160 |
| -The code should run in both Python branches without any modification, although |
161 |
| -compatibility with Python 2 is not checked any longer. |
162 |
| -
|
163 | 155 | Get xrt
|
164 | 156 | -------
|
165 | 157 |
|
|
180 | 172 |
|
181 | 173 | setup(
|
182 | 174 | name='xrt',
|
183 |
| - version='1.4.0', |
| 175 | + version='1.5.0', |
184 | 176 | description='Ray tracing and wave propagation in x-ray regime, primarily '
|
185 | 177 | 'meant for modeling synchrotron sources, beamlines and '
|
186 | 178 | 'beamline elements. Includes a GUI for creating a beamline '
|
|
0 commit comments