{ "info": { "author": "Konstantin Klementiev, Roman Chernikov", "author_email": "konstantin.klementiev@gmail.com, rchernikov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Physics", "Topic :: Scientific/Engineering :: Visualization" ], "description": "Package xrt (XRayTracer) is a python software library for ray tracing and wave\npropagation in x-ray regime. It is primarily meant for modeling synchrotron\nsources, beamlines and beamline elements. Includes a GUI for creating a\nbeamline and interactively viewing it in 3D.\n\nFeatures of xrt\n---------------\n\n* *Rays and waves*. Classical ray tracing and wave propagation via Kirchhoff\n integrals, also freely intermixed. No further approximations, such as thin\n lens or paraxial. The optical surfaces may have figure errors, analytical or\n measured. In wave propagation, partially coherent radiation is treated by\n incoherent addition of coherently diffracted fields generated per electron.\n\n* *Publication quality graphics*. 1D and 2D position histograms are\n *simultaneously* coded by hue and brightness. Typically, colors represent\n energy and brightness represents beam intensity. The user may select other\n quantities to be encoded by colors: angular and positional distributions,\n various polarization properties, beam categories, number of reflections,\n incidence angle etc. Brightness can also encode partial flux for a selected\n polarization and incident or absorbed power. Publication quality plots are\n provided by matplotlib with image formats PNG, PostScript, PDF and SVG.\n\n* *Unlimited number of rays*. The colored histograms are *cumulative*. The\n accumulation can be stopped and resumed.\n\n* *Parallel execution*. xrt can be run in parallel in several threads or\n processes (can be opted), which accelerates the execution on multi-core\n computers. Alternatively, xrt can use the power of GPUs via OpenCL for\n running special tasks such as the calculation of an undulator source or\n performing wave propagation.\n\n* *Scripting in Python*. xrt can be run within Python scripts to generate a\n series of images under changing geometrical or physical parameters. The image\n brightness and 1D histograms can be normalized to the global maximum\n throughout the series.\n\n* *Synchrotron sources*. Bending magnet, wiggler, undulator and elliptic\n undulator are calculated internally within xrt. There is also a legacy\n approach to sampling synchrotron sources using the codes `ws` and `urgent`\n which are parts of XOP package. Please look the section \"Comparison of\n synchrotron source codes\" for the comparison between the implementations. If\n the photon source is one of the synchrotron sources, the total flux in the\n beam is reported not just in number of rays but in physical units of ph/s.\n The total power or absorbed power can be opted instead of flux and is\n reported in W. The power density can be visualized by isolines. The magnetic\n gap of undulators can be tapered. Undulators can be calculated in near field.\n Custom magnetic field is also possible. Undulators can be calculated on GPU,\n with a high gain in computation speed, which is important for tapering and\n near field calculations.\n\n* *Shapes*. There are several predefined shapes of optical elements implemented\n as python classes. The inheritance mechanism simplifies creation of other\n shapes. The user specifies methods for the surface height and the surface\n normal. For asymmetric crystals, the normal to the atomic planes can be\n additionally given. The surface and the normals are defined either in local\n (x, y) coordinates or in user-defined parametric coordinates. Parametric\n representation enables closed shapes such as capillaries or wave guides. It\n also enables exact solutions for complex shapes (e.g. a logarithmic spiral)\n without any expansion. The methods of finding the intersections of rays with\n the surface are very robust and can cope with pathological cases as sharp\n surface kinks. Notice that the search for intersection points does not\n involve any approximation and has only numerical inaccuracy which is set by\n default as 1 fm. Any surface can be combined with a (differently and variably\n oriented) crystal structure and/or (variable) grating vector. Surfaces can be\n faceted.\n\n* *Energy dispersive elements*. Implemented are crystals in dynamical\n diffraction, gratings (also with efficiency calculations), Fresnel zone\n plates, Bragg-Fresnel optics and multilayers in dynamical diffraction.\n Crystals can work in Bragg or Laue cases, in reflection or in transmission.\n The two-field polarization phenomena are fully preserved, also within the\n Darwin diffraction plateau, thus enabling the ray tracing of crystal-based\n phase retarders.\n\n* *Materials*. The material properties are incorporated using three different\n tabulations of the scattering factors, with differently wide and differently\n dense energy meshes. Refractive index and absorption coefficient are\n calculated from the scattering factors. Two-surface bodies, such as plates or\n refractive lenses, are treated with both refraction and absorption.\n\n* *Multiple reflections*. xrt can trace multiple reflections in a single\n optical element. This is useful, for example in 'whispering gallery' optics\n or in Montel or Wolter mirrors.\n\n* *Non-sequential optics*. xrt can trace non-sequential optics where different\n parts of the incoming beam meet different surfaces. Examples of such optics\n are poly-capillaries and Wolter mirrors.\n\n* *Singular optics*. xrt correctly propagates vortex beams, which can be used\n for studying the creation of vortex beams by transmissive or reflective\n optics.\n\n* *Global coordinate system*. The optical elements are positioned in a global\n coordinate system. This is convenient for modeling a real synchrotron\n beamline. The coordinates in this system can be directly taken from a CAD\n library. The optical surfaces are defined in their local systems for the\n user's convenience.\n\n* *Beam categories*. xrt discriminates rays by several categories: `good`,\n `out`, `over` and `dead`. This distinction simplifies the adjustment of\n entrance and exit slits. An alarm is triggered if the fraction of dead rays\n exceeds a specified level.\n\n* *Portability*. xrt runs on Windows and Unix-like platforms, wherever you can\n run python.\n\n* *Examples*. xrt comes with many examples; see the galleries, the links are at\n the top bar.\n\nxrtQook -- a GUI for creating scripts\n-------------------------------------\n\nThe main interface to xrt is through a python script. Many examples of such\nscripts can be found in the supplied folder 'examples'. The script imports the\nmodules of xrt, instantiates beamline parts, such as synchrotron or geometric\nsources, various optical elements, apertures and screens, specifies required\nmaterials for reflection, refraction or diffraction, defines plots and sets job\nparameters.\n\nThe Qt tool xrtQook takes these ingredients and prepares a ready to use script\nthat can be run within the tool itself or in an external Python context.\nxrtQook features a parallelly updated help panel that, unlike the main\ndocumentation, provides a complete list of parameters for the used classes,\nalso including those from the parental classes. xrtQook writes/reads the\nrecipes of beamlines into/from xml files.\n\nxrtGlow -- an interactive 3D beamline viewer\n--------------------------------------------\n\nThe beamline created in xrtQook can be interactively viewed in an OpenGL based\nwidget xrtGlow. It visualizes beams, footprints, surfaces, apertures and\nscreens. The brightness represents intensity and the color represents an\nauxiliary user-selected distribution, typically energy. A virtual screen can be\nput at any position and dragged by mouse with simultaneous observation of the\nbeam distribution on it.\n\nThe primary purpose of xrtGlow is to demonstrate the alignment correctness\ngiven the fact that xrtQook can automatically calculate several positional and\nangular parameters.\n\nDependencies\n------------\n\nnumpy, scipy and matplotlib are required. If you use OpenCL for calculations on\nGPU or CPU, you need AMD/NVIDIA drivers, ``Intel CPU only OpenCL runtime``\n(these are search key words), pytools and pyopencl. PyQt4 or PyQt5 are needed\nfor xrtQook. Spyder (as library of Spyder IDE) is highly recommended for nicer\nview of xrtQook. OpenGL is required for xrtGlow.\n\nPython 2 and 3\n--------------\n\nThe code can run in both Python branches without any modification.\n\nGet xrt\n-------\n\nxrt is available as source distribution from `pypi.python.org\n`_ and from `GitHub\n`_. The distribution archive also includes tests,\nand examples. The complete documentation is available online at\n`Read the Docs `_ and offline as zip file at\n`GitHub `_.\n\nGet help\n--------\n\nFor getting help and/or reporting a bug please use `GitHub xrt Issues\n`_.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://xrt.readthedocs.io", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "xrt", "package_url": "https://pypi.org/project/xrt/", "platform": "OS Independent", "project_url": "https://pypi.org/project/xrt/", "project_urls": { "Homepage": "http://xrt.readthedocs.io" }, "release_url": "https://pypi.org/project/xrt/1.3.3/", "requires_dist": null, "requires_python": "", "summary": "Ray tracing and wave propagation in x-ray regime, primarily meant for modeling synchrotron sources, beamlines and beamline elements. Includes a GUI for creating a beamline and viewing it in 3D.", "version": "1.3.3" }, "last_serial": 4927084, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "3ba7bd30b4d30d272a232acc64214ebf", "sha256": "03a3bee0bf311cee215d7b8eebe4b79be3af91a1020eebfedd6ea8b77d5d07f6" }, "downloads": -1, "filename": "xrt-0.9.0.zip", "has_sig": false, "md5_digest": "3ba7bd30b4d30d272a232acc64214ebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2429415, "upload_time": "2014-01-03T11:17:14", "url": "https://files.pythonhosted.org/packages/d6/64/c1cb50d696380c1adb670bcede5d902567b35225dd3caea47c24b771849c/xrt-0.9.0.zip" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "cc928a2e8b7637a9092ac76a6b2e3efe", "sha256": "57b556c9ca3561af13495b812afa531d2268b31a2ecd0a17340a82d270437faf" }, "downloads": -1, "filename": "xrt-0.9.1.zip", "has_sig": false, "md5_digest": "cc928a2e8b7637a9092ac76a6b2e3efe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2429884, "upload_time": "2014-01-07T23:19:36", "url": "https://files.pythonhosted.org/packages/74/a4/c95aff591373f8683f76caccd834d40e62e36e6c0765d6d82f7ed2ef941f/xrt-0.9.1.zip" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "82af078d21d5a4a1a2f4be215446da65", "sha256": "873b52f51fa847576b64175bb3f776370f29fb50a54214c3f1e752725cff4c27" }, "downloads": -1, "filename": "xrt-0.9.2.zip", "has_sig": false, "md5_digest": "82af078d21d5a4a1a2f4be215446da65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2432584, "upload_time": "2014-04-03T21:06:14", "url": "https://files.pythonhosted.org/packages/d0/28/8ff9a2679ac5a21451e939bb56124205f8c141ab256b6303948e48e9b44e/xrt-0.9.2.zip" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "0856bedd093e9ec85008b4c07b5db708", "sha256": "1cda9ff5ab44ccafe484c600a2121a54abce4a89d13bf477603a617497b131c5" }, "downloads": -1, "filename": "xrt-0.9.3.zip", "has_sig": false, "md5_digest": "0856bedd093e9ec85008b4c07b5db708", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2434440, "upload_time": "2014-04-23T09:57:37", "url": "https://files.pythonhosted.org/packages/ec/98/702a4038bd41e37cc958f7f4a2420e1d32bf0038c5d860271afc9dee0674/xrt-0.9.3.zip" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "53f89fe6d94b59a66bb4a66a6326f95e", "sha256": "3f0dd2515de9b1ac53bc7639319be98dd9ba839819f3e5305060f5f14ac367e1" }, "downloads": -1, "filename": "xrt-0.9.4.zip", "has_sig": false, "md5_digest": "53f89fe6d94b59a66bb4a66a6326f95e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2432530, "upload_time": "2014-06-14T08:35:47", "url": "https://files.pythonhosted.org/packages/d7/17/77517286531756e11ae048f403d92f12bd9c899b396ee28d8483709a7e46/xrt-0.9.4.zip" } ], "0.9.99": [ { "comment_text": "", "digests": { "md5": "0ee48cde3f4817ed610e4577e26fb444", "sha256": "0f9da118f8bee61e1ef66c0a1e31238067f5fb5ef8ad120afd6cbf4515c0e1a7" }, "downloads": -1, "filename": "xrt-0.9.99.zip", "has_sig": false, "md5_digest": "0ee48cde3f4817ed610e4577e26fb444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2525511, "upload_time": "2015-04-12T16:46:39", "url": "https://files.pythonhosted.org/packages/a0/ac/cea6425fd851e16d8872840a9efdc5ff1394b0a93b69e4733ea7ec5186a0/xrt-0.9.99.zip" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e74ae53e673e2c7c0db91d76ffb6787d", "sha256": "8168d3b6cb4051cea6c6ef813bbb4ef71f56747d3ad3cdc770f5989b99433f17" }, "downloads": -1, "filename": "xrt-1.0.0.zip", "has_sig": false, "md5_digest": "e74ae53e673e2c7c0db91d76ffb6787d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2633449, "upload_time": "2016-01-05T13:23:47", "url": "https://files.pythonhosted.org/packages/d7/da/ce44c603f303a26904f1f5f63a49f0dd735e81d4e1a741b7dd1472dbc02f/xrt-1.0.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "41eb16901a7c84500431be70e60ec5b8", "sha256": "bfccf761ac17315771267590152ba9ccf127b62db6c066fd9556f76ec8d30e4c" }, "downloads": -1, "filename": "xrt-1.0.1.zip", "has_sig": false, "md5_digest": "41eb16901a7c84500431be70e60ec5b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2630895, "upload_time": "2016-01-07T15:16:01", "url": "https://files.pythonhosted.org/packages/6e/0c/1a13bff5797cd99c12fd3f123bb42c130170c4e9e8e8299ab4148a155a0a/xrt-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ee1c8fa6ca75036ed5805569c3667094", "sha256": "9434e83e11a5bf35bba1bcf3fd6b90a9bd6b13c39a259eae72e5dbc85dca8d71" }, "downloads": -1, "filename": "xrt-1.0.2.zip", "has_sig": false, "md5_digest": "ee1c8fa6ca75036ed5805569c3667094", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2660297, "upload_time": "2016-01-22T09:49:23", "url": "https://files.pythonhosted.org/packages/ed/92/d439076ad586da6ef1c247f11685204a8c8a750668fa35e2d7493a689807/xrt-1.0.2.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6c894bafc37951d92a9387020ddcdb21", "sha256": "0cf2a669c9bf1d28c1a15b58ffb03b443478e5a3e7a4862291c462b4c5230aaf" }, "downloads": -1, "filename": "xrt-1.1.0.zip", "has_sig": false, "md5_digest": "6c894bafc37951d92a9387020ddcdb21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3545035, "upload_time": "2016-03-26T21:39:19", "url": "https://files.pythonhosted.org/packages/27/af/3bf8263b6c5e78f300d05fb960bb54f3cb37fb9c29ec1984467204a97586/xrt-1.1.0.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "88798e870eaa6c2fdda0015c9573ef9b", "sha256": "433fd02cb7c09516472941761eaa28894d2e6128ccf9cca4497b2a6c50340732" }, "downloads": -1, "filename": "xrt-1.2.0.zip", "has_sig": false, "md5_digest": "88798e870eaa6c2fdda0015c9573ef9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6377904, "upload_time": "2016-07-09T10:42:10", "url": "https://files.pythonhosted.org/packages/99/d5/bd62a9e019cfee144584d61aaab40841786a41316fbdea1b0b4128b328d4/xrt-1.2.0.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "942b5da67f1ed6a3a97f38826bfc3be0", "sha256": "561217f8d95132eb2a202480862543a558bf41e54d6cb075b689f304179660d9" }, "downloads": -1, "filename": "xrt-1.2.1.zip", "has_sig": false, "md5_digest": "942b5da67f1ed6a3a97f38826bfc3be0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4440752, "upload_time": "2016-09-20T21:39:40", "url": "https://files.pythonhosted.org/packages/24/cb/85b2da0c754b0a311dfce92b049b577ad994dcff109553c2d7a13b53ffd3/xrt-1.2.1.zip" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "34c6f52d02026478efdeb86413c3d04c", "sha256": "c0c2048219e1fc1b92d46aa9d0d62e467b10d316801b1b9108029edb9e9e2994" }, "downloads": -1, "filename": "xrt-1.2.2.zip", "has_sig": false, "md5_digest": "34c6f52d02026478efdeb86413c3d04c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4643318, "upload_time": "2017-03-17T17:29:16", "url": "https://files.pythonhosted.org/packages/6d/13/04d5ae1556425e1149cc6d4a599fb6e57ef680a9b2ccfbd64cd879cc980d/xrt-1.2.2.zip" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "7b44e7519f41cc8407e0952c7b7e477d", "sha256": "abc1c1046af72ff15b11485119a58aa2a335ae68e5e7b12f0663c9e746acbcc4" }, "downloads": -1, "filename": "xrt-1.2.3.zip", "has_sig": false, "md5_digest": "7b44e7519f41cc8407e0952c7b7e477d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4643500, "upload_time": "2017-03-19T11:55:30", "url": "https://files.pythonhosted.org/packages/9c/21/d887b0738d1017d16abd49afc5d87c6f5d1a6f80137593e725ec5c7399c2/xrt-1.2.3.zip" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "c67d8baa4dcdbf6c12ff4824d9b04b9f", "sha256": "b67250b9decc4c5113f4acc148cec846f18cdacd7ee2d8d06f1147174f15d95e" }, "downloads": -1, "filename": "xrt-1.2.4.zip", "has_sig": false, "md5_digest": "c67d8baa4dcdbf6c12ff4824d9b04b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4623557, "upload_time": "2017-05-03T11:30:29", "url": "https://files.pythonhosted.org/packages/2d/23/efa1c78e1e95625ddf5d0678ec09ddf55ee95619f9fbc1ddab901a18d6f8/xrt-1.2.4.zip" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8290585c44f749a0a1c0097604e1db0c", "sha256": "27ecb61ce81095df4f3c2f81548317e3148581d185cc44a1ac36e7a6df5e9e1f" }, "downloads": -1, "filename": "xrt-1.3.0.zip", "has_sig": false, "md5_digest": "8290585c44f749a0a1c0097604e1db0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8158950, "upload_time": "2018-03-25T21:44:24", "url": "https://files.pythonhosted.org/packages/a9/f6/c7771370aa0d69fde8b82e925e88694d34c29bead23a8934acb65416c5ed/xrt-1.3.0.zip" } ], "1.3.0beta": [ { "comment_text": "", "digests": { "md5": "8a4207c745085efa02e3b07bb287b3e3", "sha256": "476071ce62cc4eed189e374417e89d882a7d4105f42fd397c9cdae8d727226cf" }, "downloads": -1, "filename": "xrt-1.3.0beta.zip", "has_sig": false, "md5_digest": "8a4207c745085efa02e3b07bb287b3e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8124891, "upload_time": "2017-12-12T23:02:22", "url": "https://files.pythonhosted.org/packages/f7/d4/d20876ee37ee2d46b11f3f11041a1451193d60d90263458e8c1ad346bcb9/xrt-1.3.0beta.zip" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "6a232a7884c369a03842d7c2d80caf40", "sha256": "99f9b9819c4074c4fca6fea5bc4a825705a953c88d88e23b857f1d43f344df7b" }, "downloads": -1, "filename": "xrt-1.3.1.zip", "has_sig": false, "md5_digest": "6a232a7884c369a03842d7c2d80caf40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8614573, "upload_time": "2018-05-24T21:38:57", "url": "https://files.pythonhosted.org/packages/4a/5a/d4f1b09a6b6139379a9fcbc5959dfff8c7f6ab230e8ef5b0b7f1286f2b15/xrt-1.3.1.zip" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "27c4fa6c3c29e89518e344f0d6ba64e2", "sha256": "c100525ddcf33c342c30f94a9dafec63f5ab8d670086710a766c3bb86fe63c21" }, "downloads": -1, "filename": "xrt-1.3.2.zip", "has_sig": false, "md5_digest": "27c4fa6c3c29e89518e344f0d6ba64e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8615661, "upload_time": "2018-06-07T07:37:40", "url": "https://files.pythonhosted.org/packages/bb/e5/aa7d47a019cb9955f56d4739eeab555a206ce030a7c80bf2077170d70063/xrt-1.3.2.zip" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "1886c00888823ba6bdbcdb9c79a8faad", "sha256": "1360ca34a20aa8a1ee9b8bcdf9f4539f06955d1d0c535a539887143b102a4e39" }, "downloads": -1, "filename": "xrt-1.3.3.zip", "has_sig": false, "md5_digest": "1886c00888823ba6bdbcdb9c79a8faad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7358666, "upload_time": "2019-03-11T21:06:29", "url": "https://files.pythonhosted.org/packages/71/a5/f400c6d10a5596d5a5decf402430cfd2c40713524a5c150e4bf3739c8f60/xrt-1.3.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1886c00888823ba6bdbcdb9c79a8faad", "sha256": "1360ca34a20aa8a1ee9b8bcdf9f4539f06955d1d0c535a539887143b102a4e39" }, "downloads": -1, "filename": "xrt-1.3.3.zip", "has_sig": false, "md5_digest": "1886c00888823ba6bdbcdb9c79a8faad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7358666, "upload_time": "2019-03-11T21:06:29", "url": "https://files.pythonhosted.org/packages/71/a5/f400c6d10a5596d5a5decf402430cfd2c40713524a5c150e4bf3739c8f60/xrt-1.3.3.zip" } ] }