OASYS2-SRW 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. oasys2_srw-1.0.0/LICENSE +28 -0
  2. oasys2_srw-1.0.0/MANIFEST.in +6 -0
  3. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/PKG-INFO +37 -0
  4. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/SOURCES.txt +137 -0
  5. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/dependency_links.txt +1 -0
  6. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/entry_points.txt +12 -0
  7. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/not-zip-safe +1 -0
  8. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/requires.txt +6 -0
  9. oasys2_srw-1.0.0/OASYS2_SRW.egg-info/top_level.txt +1 -0
  10. oasys2_srw-1.0.0/PKG-INFO +37 -0
  11. oasys2_srw-1.0.0/README.md +2 -0
  12. oasys2_srw-1.0.0/orangecontrib/__init__.py +0 -0
  13. oasys2_srw-1.0.0/orangecontrib/srw/__init__.py +0 -0
  14. oasys2_srw-1.0.0/orangecontrib/srw/menu/__init__.py +1 -0
  15. oasys2_srw-1.0.0/orangecontrib/srw/menu/srw_tools_menu.py +225 -0
  16. oasys2_srw-1.0.0/orangecontrib/srw/util/__init__.py +0 -0
  17. oasys2_srw-1.0.0/orangecontrib/srw/util/python_script.py +340 -0
  18. oasys2_srw-1.0.0/orangecontrib/srw/util/scanning.py +428 -0
  19. oasys2_srw-1.0.0/orangecontrib/srw/util/srw_objects.py +81 -0
  20. oasys2_srw-1.0.0/orangecontrib/srw/util/srw_util.py +1121 -0
  21. oasys2_srw-1.0.0/orangecontrib/srw/widgets/__init__.py +0 -0
  22. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/__init__.py +0 -0
  23. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/misc/crystal_usage.png +0 -0
  24. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/misc/dabam_height_profile_usage.png +0 -0
  25. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/misc/height_error_profile_usage.png +0 -0
  26. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/misc/propagator_info.png +0 -0
  27. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/misc/reflectivity_generator_usage.png +0 -0
  28. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_absorber.py +111 -0
  29. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_crystal.py +153 -0
  30. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_grating.py +255 -0
  31. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_mirror.py +329 -0
  32. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_optical_element.py +910 -0
  33. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_power_density_viewer.py +84 -0
  34. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_source.py +668 -0
  35. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_wavefront_viewer.py +482 -0
  36. oasys2_srw-1.0.0/orangecontrib/srw/widgets/gui/ow_srw_widget.py +54 -0
  37. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/__init__.py +20 -0
  38. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/3d.png +0 -0
  39. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/bending_magnet.png +0 -0
  40. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/gaussian_source.png +0 -0
  41. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/power_density.png +0 -0
  42. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/radiation.png +0 -0
  43. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/source.png +0 -0
  44. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/spectrum.png +0 -0
  45. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/icons/undulator.png +0 -0
  46. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/misc/symmetry.png +0 -0
  47. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_3d_light_source.py +148 -0
  48. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_bending_magnet.py +89 -0
  49. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_gaussian_source.py +316 -0
  50. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_power_density.py +334 -0
  51. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_radiation.py +380 -0
  52. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_spectrum.py +506 -0
  53. oasys2_srw-1.0.0/orangecontrib/srw/widgets/light_sources/ow_srw_undulator.py +351 -0
  54. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/__init__.py +20 -0
  55. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/accumulation.png +0 -0
  56. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/cycle_file.png +0 -0
  57. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/cycle_variable.png +0 -0
  58. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/histogram.png +0 -0
  59. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/loops.png +0 -0
  60. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/multiple_oasys_data_converter.png +0 -0
  61. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/simulator_S.png +0 -0
  62. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/icons/simulator_T.png +0 -0
  63. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_histogram_scan.py +623 -0
  64. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_multiple_height_profile_simulator_S.py +106 -0
  65. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_multiple_height_profile_simulator_T.py +106 -0
  66. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_multiple_oasys_data_converter.py +162 -0
  67. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_scan_file_node_point.py +90 -0
  68. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_scan_variable_node_point.py +105 -0
  69. oasys2_srw-1.0.0/orangecontrib/srw/widgets/loops/ow_srw_accumulation_point.py +459 -0
  70. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/__init__.py +20 -0
  71. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/icons/degcoh.png +0 -0
  72. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/icons/intensity.png +0 -0
  73. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/icons/native.png +0 -0
  74. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/icons/python_script_me.png +0 -0
  75. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/icons/python_script_se.png +0 -0
  76. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/ow_srw_intensity_plotter.py +199 -0
  77. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/ow_srw_me_degcoh_plotter.py +213 -0
  78. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/ow_srw_python_script_me.py +204 -0
  79. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/ow_srw_python_script_se.py +118 -0
  80. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/util/__init__.py +0 -0
  81. oasys2_srw-1.0.0/orangecontrib/srw/widgets/native/util/native_util.py +324 -0
  82. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/__init__.py +20 -0
  83. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/backpropagation.png +0 -0
  84. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/beam_stopper.png +0 -0
  85. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/crl.png +0 -0
  86. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/ellipsoid_grating.png +0 -0
  87. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/ellipsoid_mirror.png +0 -0
  88. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/filter.png +0 -0
  89. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/ideal_lens.png +0 -0
  90. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/opticalElements.png +0 -0
  91. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/plane_crystal.png +0 -0
  92. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/plane_grating.png +0 -0
  93. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/plane_mirror.png +0 -0
  94. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/screen.png +0 -0
  95. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/slit.png +0 -0
  96. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/spherical_mirror.png +0 -0
  97. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/toroidal_mirror.png +0 -0
  98. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/icons/zone_plate.png +0 -0
  99. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_aperture.py +25 -0
  100. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_back_propagation.py +124 -0
  101. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_crl.py +219 -0
  102. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_elliptical_mirror.py +54 -0
  103. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_filter.py +164 -0
  104. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_ideal_lens.py +63 -0
  105. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_obstacle.py +26 -0
  106. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_plane_crystal.py +21 -0
  107. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_plane_grating.py +24 -0
  108. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_plane_mirror.py +24 -0
  109. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_screen.py +141 -0
  110. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_spherical_mirror.py +46 -0
  111. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_toroidal_mirror.py +53 -0
  112. oasys2_srw-1.0.0/orangecontrib/srw/widgets/optical_elements/ow_srw_zone_plate.py +83 -0
  113. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/__init__.py +20 -0
  114. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/cycle.png +0 -0
  115. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/dabam.png +0 -0
  116. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/file_reader.png +0 -0
  117. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/file_writer.png +0 -0
  118. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/from_wofry_wavefront_2d.png +0 -0
  119. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/info.png +0 -0
  120. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/oasys_data_converter.png +0 -0
  121. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/pin.png +0 -0
  122. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/reflectivity.png +0 -0
  123. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/renderer.png +0 -0
  124. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/simulator.png +0 -0
  125. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/to_wofry_wavefront_2d.png +0 -0
  126. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/icons/tools.png +0 -0
  127. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_beamline_renderer.py +262 -0
  128. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_dabam_height_profile.py +51 -0
  129. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_from_wofry_wavefront.py +99 -0
  130. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_height_profile_simulator.py +50 -0
  131. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_oasys_data_converter.py +124 -0
  132. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_srw_info.py +132 -0
  133. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_srw_reflectivity_generator.py +650 -0
  134. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_srw_wavefront_file_reader.py +110 -0
  135. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_srw_wavefront_file_writer.py +119 -0
  136. oasys2_srw-1.0.0/orangecontrib/srw/widgets/tools/ow_srw_wavefront_to_wofry.py +80 -0
  137. oasys2_srw-1.0.0/pyproject.toml +3 -0
  138. oasys2_srw-1.0.0/setup.cfg +4 -0
  139. oasys2_srw-1.0.0/setup.py +93 -0
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2025, Organization managing the OASYS project
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,6 @@
1
+ recursive-include orangecontrib *.pyx
2
+ recursive-include orangecontrib *.py
3
+
4
+ recursive-include orangecontrib/srw/widgets *.png *.svg *.ico *.jpg *.bmp
5
+
6
+ include README.txt
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: OASYS2-SRW
3
+ Version: 1.0.0
4
+ Summary: SRW in OASYS2
5
+ Home-page: https://github.com/lucarebuffi/OASYS-SRW
6
+ Download-URL: https://github.com/lucarebuffi/OASYS-SRW
7
+ Author: Luca Rebuffi
8
+ Author-email: lrebuffi@anl.gov
9
+ License: GPLv3
10
+ Keywords: waveoptics,simulator,oasys2
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Environment :: X11 Applications :: Qt
13
+ Classifier: Environment :: Console
14
+ Classifier: Environment :: Plugins
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Intended Audience :: Science/Research
17
+ License-File: LICENSE
18
+ Requires-Dist: oasys2>=0.0.1
19
+ Requires-Dist: syned-gui-2>=1.0.0
20
+ Requires-Dist: wofrysrw>=1.1.31
21
+ Requires-Dist: xoppylib>=1.0.38
22
+ Requires-Dist: srwpy==4.1.1
23
+ Requires-Dist: scikit-image
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: classifier
27
+ Dynamic: description
28
+ Dynamic: download-url
29
+ Dynamic: home-page
30
+ Dynamic: keywords
31
+ Dynamic: license
32
+ Dynamic: license-file
33
+ Dynamic: requires-dist
34
+ Dynamic: summary
35
+
36
+ # OASYS-SRW
37
+ SRW widgets for OASYS
@@ -0,0 +1,137 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.py
6
+ OASYS2_SRW.egg-info/PKG-INFO
7
+ OASYS2_SRW.egg-info/SOURCES.txt
8
+ OASYS2_SRW.egg-info/dependency_links.txt
9
+ OASYS2_SRW.egg-info/entry_points.txt
10
+ OASYS2_SRW.egg-info/not-zip-safe
11
+ OASYS2_SRW.egg-info/requires.txt
12
+ OASYS2_SRW.egg-info/top_level.txt
13
+ orangecontrib/__init__.py
14
+ orangecontrib/srw/__init__.py
15
+ orangecontrib/srw/menu/__init__.py
16
+ orangecontrib/srw/menu/srw_tools_menu.py
17
+ orangecontrib/srw/util/__init__.py
18
+ orangecontrib/srw/util/python_script.py
19
+ orangecontrib/srw/util/scanning.py
20
+ orangecontrib/srw/util/srw_objects.py
21
+ orangecontrib/srw/util/srw_util.py
22
+ orangecontrib/srw/widgets/__init__.py
23
+ orangecontrib/srw/widgets/gui/__init__.py
24
+ orangecontrib/srw/widgets/gui/ow_srw_absorber.py
25
+ orangecontrib/srw/widgets/gui/ow_srw_crystal.py
26
+ orangecontrib/srw/widgets/gui/ow_srw_grating.py
27
+ orangecontrib/srw/widgets/gui/ow_srw_mirror.py
28
+ orangecontrib/srw/widgets/gui/ow_srw_optical_element.py
29
+ orangecontrib/srw/widgets/gui/ow_srw_power_density_viewer.py
30
+ orangecontrib/srw/widgets/gui/ow_srw_source.py
31
+ orangecontrib/srw/widgets/gui/ow_srw_wavefront_viewer.py
32
+ orangecontrib/srw/widgets/gui/ow_srw_widget.py
33
+ orangecontrib/srw/widgets/gui/misc/crystal_usage.png
34
+ orangecontrib/srw/widgets/gui/misc/dabam_height_profile_usage.png
35
+ orangecontrib/srw/widgets/gui/misc/height_error_profile_usage.png
36
+ orangecontrib/srw/widgets/gui/misc/propagator_info.png
37
+ orangecontrib/srw/widgets/gui/misc/reflectivity_generator_usage.png
38
+ orangecontrib/srw/widgets/light_sources/__init__.py
39
+ orangecontrib/srw/widgets/light_sources/ow_srw_3d_light_source.py
40
+ orangecontrib/srw/widgets/light_sources/ow_srw_bending_magnet.py
41
+ orangecontrib/srw/widgets/light_sources/ow_srw_gaussian_source.py
42
+ orangecontrib/srw/widgets/light_sources/ow_srw_power_density.py
43
+ orangecontrib/srw/widgets/light_sources/ow_srw_radiation.py
44
+ orangecontrib/srw/widgets/light_sources/ow_srw_spectrum.py
45
+ orangecontrib/srw/widgets/light_sources/ow_srw_undulator.py
46
+ orangecontrib/srw/widgets/light_sources/icons/3d.png
47
+ orangecontrib/srw/widgets/light_sources/icons/bending_magnet.png
48
+ orangecontrib/srw/widgets/light_sources/icons/gaussian_source.png
49
+ orangecontrib/srw/widgets/light_sources/icons/power_density.png
50
+ orangecontrib/srw/widgets/light_sources/icons/radiation.png
51
+ orangecontrib/srw/widgets/light_sources/icons/source.png
52
+ orangecontrib/srw/widgets/light_sources/icons/spectrum.png
53
+ orangecontrib/srw/widgets/light_sources/icons/undulator.png
54
+ orangecontrib/srw/widgets/light_sources/misc/symmetry.png
55
+ orangecontrib/srw/widgets/loops/__init__.py
56
+ orangecontrib/srw/widgets/loops/ow_histogram_scan.py
57
+ orangecontrib/srw/widgets/loops/ow_multiple_height_profile_simulator_S.py
58
+ orangecontrib/srw/widgets/loops/ow_multiple_height_profile_simulator_T.py
59
+ orangecontrib/srw/widgets/loops/ow_multiple_oasys_data_converter.py
60
+ orangecontrib/srw/widgets/loops/ow_scan_file_node_point.py
61
+ orangecontrib/srw/widgets/loops/ow_scan_variable_node_point.py
62
+ orangecontrib/srw/widgets/loops/ow_srw_accumulation_point.py
63
+ orangecontrib/srw/widgets/loops/icons/accumulation.png
64
+ orangecontrib/srw/widgets/loops/icons/cycle_file.png
65
+ orangecontrib/srw/widgets/loops/icons/cycle_variable.png
66
+ orangecontrib/srw/widgets/loops/icons/histogram.png
67
+ orangecontrib/srw/widgets/loops/icons/loops.png
68
+ orangecontrib/srw/widgets/loops/icons/multiple_oasys_data_converter.png
69
+ orangecontrib/srw/widgets/loops/icons/simulator_S.png
70
+ orangecontrib/srw/widgets/loops/icons/simulator_T.png
71
+ orangecontrib/srw/widgets/native/__init__.py
72
+ orangecontrib/srw/widgets/native/ow_srw_intensity_plotter.py
73
+ orangecontrib/srw/widgets/native/ow_srw_me_degcoh_plotter.py
74
+ orangecontrib/srw/widgets/native/ow_srw_python_script_me.py
75
+ orangecontrib/srw/widgets/native/ow_srw_python_script_se.py
76
+ orangecontrib/srw/widgets/native/icons/degcoh.png
77
+ orangecontrib/srw/widgets/native/icons/intensity.png
78
+ orangecontrib/srw/widgets/native/icons/native.png
79
+ orangecontrib/srw/widgets/native/icons/python_script_me.png
80
+ orangecontrib/srw/widgets/native/icons/python_script_se.png
81
+ orangecontrib/srw/widgets/native/util/__init__.py
82
+ orangecontrib/srw/widgets/native/util/native_util.py
83
+ orangecontrib/srw/widgets/optical_elements/__init__.py
84
+ orangecontrib/srw/widgets/optical_elements/ow_srw_aperture.py
85
+ orangecontrib/srw/widgets/optical_elements/ow_srw_back_propagation.py
86
+ orangecontrib/srw/widgets/optical_elements/ow_srw_crl.py
87
+ orangecontrib/srw/widgets/optical_elements/ow_srw_elliptical_mirror.py
88
+ orangecontrib/srw/widgets/optical_elements/ow_srw_filter.py
89
+ orangecontrib/srw/widgets/optical_elements/ow_srw_ideal_lens.py
90
+ orangecontrib/srw/widgets/optical_elements/ow_srw_obstacle.py
91
+ orangecontrib/srw/widgets/optical_elements/ow_srw_plane_crystal.py
92
+ orangecontrib/srw/widgets/optical_elements/ow_srw_plane_grating.py
93
+ orangecontrib/srw/widgets/optical_elements/ow_srw_plane_mirror.py
94
+ orangecontrib/srw/widgets/optical_elements/ow_srw_screen.py
95
+ orangecontrib/srw/widgets/optical_elements/ow_srw_spherical_mirror.py
96
+ orangecontrib/srw/widgets/optical_elements/ow_srw_toroidal_mirror.py
97
+ orangecontrib/srw/widgets/optical_elements/ow_srw_zone_plate.py
98
+ orangecontrib/srw/widgets/optical_elements/icons/backpropagation.png
99
+ orangecontrib/srw/widgets/optical_elements/icons/beam_stopper.png
100
+ orangecontrib/srw/widgets/optical_elements/icons/crl.png
101
+ orangecontrib/srw/widgets/optical_elements/icons/ellipsoid_grating.png
102
+ orangecontrib/srw/widgets/optical_elements/icons/ellipsoid_mirror.png
103
+ orangecontrib/srw/widgets/optical_elements/icons/filter.png
104
+ orangecontrib/srw/widgets/optical_elements/icons/ideal_lens.png
105
+ orangecontrib/srw/widgets/optical_elements/icons/opticalElements.png
106
+ orangecontrib/srw/widgets/optical_elements/icons/plane_crystal.png
107
+ orangecontrib/srw/widgets/optical_elements/icons/plane_grating.png
108
+ orangecontrib/srw/widgets/optical_elements/icons/plane_mirror.png
109
+ orangecontrib/srw/widgets/optical_elements/icons/screen.png
110
+ orangecontrib/srw/widgets/optical_elements/icons/slit.png
111
+ orangecontrib/srw/widgets/optical_elements/icons/spherical_mirror.png
112
+ orangecontrib/srw/widgets/optical_elements/icons/toroidal_mirror.png
113
+ orangecontrib/srw/widgets/optical_elements/icons/zone_plate.png
114
+ orangecontrib/srw/widgets/tools/__init__.py
115
+ orangecontrib/srw/widgets/tools/ow_beamline_renderer.py
116
+ orangecontrib/srw/widgets/tools/ow_dabam_height_profile.py
117
+ orangecontrib/srw/widgets/tools/ow_from_wofry_wavefront.py
118
+ orangecontrib/srw/widgets/tools/ow_height_profile_simulator.py
119
+ orangecontrib/srw/widgets/tools/ow_oasys_data_converter.py
120
+ orangecontrib/srw/widgets/tools/ow_srw_info.py
121
+ orangecontrib/srw/widgets/tools/ow_srw_reflectivity_generator.py
122
+ orangecontrib/srw/widgets/tools/ow_srw_wavefront_file_reader.py
123
+ orangecontrib/srw/widgets/tools/ow_srw_wavefront_file_writer.py
124
+ orangecontrib/srw/widgets/tools/ow_srw_wavefront_to_wofry.py
125
+ orangecontrib/srw/widgets/tools/icons/cycle.png
126
+ orangecontrib/srw/widgets/tools/icons/dabam.png
127
+ orangecontrib/srw/widgets/tools/icons/file_reader.png
128
+ orangecontrib/srw/widgets/tools/icons/file_writer.png
129
+ orangecontrib/srw/widgets/tools/icons/from_wofry_wavefront_2d.png
130
+ orangecontrib/srw/widgets/tools/icons/info.png
131
+ orangecontrib/srw/widgets/tools/icons/oasys_data_converter.png
132
+ orangecontrib/srw/widgets/tools/icons/pin.png
133
+ orangecontrib/srw/widgets/tools/icons/reflectivity.png
134
+ orangecontrib/srw/widgets/tools/icons/renderer.png
135
+ orangecontrib/srw/widgets/tools/icons/simulator.png
136
+ orangecontrib/srw/widgets/tools/icons/to_wofry_wavefront_2d.png
137
+ orangecontrib/srw/widgets/tools/icons/tools.png
@@ -0,0 +1,12 @@
1
+ [oasys2.addons]
2
+ SRW = orangecontrib.srw
3
+
4
+ [oasys2.menus]
5
+ srwmenu = orangecontrib.srw.menu
6
+
7
+ [oasys2.widgets]
8
+ SRW Light Sources = orangecontrib.srw.widgets.light_sources
9
+ SRW Loops = orangecontrib.srw.widgets.loops
10
+ SRW Native = orangecontrib.srw.widgets.native
11
+ SRW Optical Elements = orangecontrib.srw.widgets.optical_elements
12
+ SRW Tools = orangecontrib.srw.widgets.tools
@@ -0,0 +1,6 @@
1
+ oasys2>=0.0.1
2
+ syned-gui-2>=1.0.0
3
+ wofrysrw>=1.1.31
4
+ xoppylib>=1.0.38
5
+ srwpy==4.1.1
6
+ scikit-image
@@ -0,0 +1 @@
1
+ orangecontrib
@@ -0,0 +1,37 @@
1
+ Metadata-Version: 2.4
2
+ Name: OASYS2-SRW
3
+ Version: 1.0.0
4
+ Summary: SRW in OASYS2
5
+ Home-page: https://github.com/lucarebuffi/OASYS-SRW
6
+ Download-URL: https://github.com/lucarebuffi/OASYS-SRW
7
+ Author: Luca Rebuffi
8
+ Author-email: lrebuffi@anl.gov
9
+ License: GPLv3
10
+ Keywords: waveoptics,simulator,oasys2
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Environment :: X11 Applications :: Qt
13
+ Classifier: Environment :: Console
14
+ Classifier: Environment :: Plugins
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Intended Audience :: Science/Research
17
+ License-File: LICENSE
18
+ Requires-Dist: oasys2>=0.0.1
19
+ Requires-Dist: syned-gui-2>=1.0.0
20
+ Requires-Dist: wofrysrw>=1.1.31
21
+ Requires-Dist: xoppylib>=1.0.38
22
+ Requires-Dist: srwpy==4.1.1
23
+ Requires-Dist: scikit-image
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: classifier
27
+ Dynamic: description
28
+ Dynamic: download-url
29
+ Dynamic: home-page
30
+ Dynamic: keywords
31
+ Dynamic: license
32
+ Dynamic: license-file
33
+ Dynamic: requires-dist
34
+ Dynamic: summary
35
+
36
+ # OASYS-SRW
37
+ SRW widgets for OASYS
@@ -0,0 +1,2 @@
1
+ # OASYS-SRW
2
+ SRW widgets for OASYS
File without changes
File without changes
@@ -0,0 +1 @@
1
+ MENU = "SRW MENU"
@@ -0,0 +1,225 @@
1
+
2
+ from orangecanvas.scheme.link import SchemeLink
3
+ from oasys2.canvas.menus.menu import OMenu
4
+
5
+ from wofry.propagator.propagator import PropagationManager
6
+ from wofrysrw.propagator.propagators2D.srw_fresnel_native import SRW_APPLICATION
7
+ from wofrysrw.propagator.propagators2D.srw_propagation_mode import SRWPropagationMode
8
+
9
+ from orangecontrib.srw.util.srw_util import showWarningMessage, showCriticalMessage
10
+ from orangecontrib.srw.widgets.optical_elements.ow_srw_screen import OWSRWScreen
11
+ from orangecontrib.srw.widgets.native.ow_srw_intensity_plotter import OWSRWIntensityPlotter
12
+ from orangecontrib.srw.widgets.native.ow_srw_me_degcoh_plotter import OWSRWDegCohPlotter
13
+ from orangecontrib.srw.widgets.loops.ow_srw_accumulation_point import OWSRWAccumulationPoint
14
+ from orangecontrib.srw.widgets.gui.ow_srw_widget import SRWWidget
15
+
16
+ class SRWToolsMenu(OMenu):
17
+
18
+ def __init__(self):
19
+ super().__init__(name="SRW")
20
+
21
+ self.openContainer()
22
+ self.addContainer("Propagation Mode")
23
+ self.addSubMenu("Element by Element (Wofry)")
24
+ self.addSubMenu("Element by Element (SRW Native)")
25
+ self.addSubMenu("Whole beamline at Final Screen (SRW Native)")
26
+ self.addSeparator()
27
+ self.addSubMenu("Disable Wavefront Propagation on all the Final Screens")
28
+ self.closeContainer()
29
+ self.openContainer()
30
+ self.addContainer("Plotting")
31
+ self.addSubMenu("Select Plots \'No\' on all Source and O.E. widgets")
32
+ self.addSubMenu("Select Plots \'Yes\' on all Source and O.E. widgets")
33
+ self.closeContainer()
34
+ self.openContainer()
35
+ self.addContainer("Cumulative Loops")
36
+ self.addSubMenu("Reload Saved Data on the all the Accumulation Points")
37
+ self.closeContainer()
38
+
39
+ def executeAction_1(self, action):
40
+ try:
41
+ propagation_mode = PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION)
42
+
43
+ try:
44
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, SRWPropagationMode.STEP_BY_STEP_WOFRY)
45
+
46
+ self.set_srw_live_propagation_mode()
47
+
48
+ showWarningMessage("Propagation Mode: Element by Element (Wofry)")
49
+ except Exception as exception:
50
+ showCriticalMessage(exception.args[0])
51
+
52
+ try:
53
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, propagation_mode)
54
+ self.set_srw_live_propagation_mode()
55
+ except:
56
+ pass
57
+ except:
58
+ pass
59
+
60
+ def executeAction_2(self, action):
61
+ try:
62
+ propagation_mode = PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION)
63
+
64
+ try:
65
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, SRWPropagationMode.STEP_BY_STEP)
66
+
67
+ self.set_srw_live_propagation_mode()
68
+
69
+ showWarningMessage("Propagation Mode: Element by Element (SRW Native)")
70
+ except Exception as exception:
71
+ showCriticalMessage(exception.args[0])
72
+
73
+ try:
74
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, propagation_mode)
75
+ self.set_srw_live_propagation_mode()
76
+ except:
77
+ pass
78
+ except:
79
+ pass
80
+
81
+ def executeAction_3(self, action):
82
+ try:
83
+ propagation_mode = PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION)
84
+
85
+ try:
86
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, SRWPropagationMode.WHOLE_BEAMLINE)
87
+
88
+ self.set_srw_live_propagation_mode()
89
+
90
+ showWarningMessage("Propagation Mode: Whole beamline at Final Screen (SRW Native)")
91
+ except Exception as exception:
92
+ showCriticalMessage(exception.args[0])
93
+
94
+ try:
95
+ PropagationManager.Instance().set_propagation_mode(SRW_APPLICATION, propagation_mode)
96
+ self.set_srw_live_propagation_mode()
97
+ except:
98
+ pass
99
+ except:
100
+ pass
101
+
102
+
103
+
104
+ def executeAction_4(self, action):
105
+ try:
106
+ for node in self.canvas_main_window.current_document().scheme().nodes:
107
+ widget = self.canvas_main_window.current_document().scheme().widget_for_node(node)
108
+
109
+ if isinstance(widget, OWSRWScreen):
110
+ if hasattr(widget, "is_final_screen") and hasattr(widget, "set_is_final_screen"):
111
+ if (PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION) != SRWPropagationMode.WHOLE_BEAMLINE):
112
+ raise Exception("Action possibile only while Propagation Mode: Whole beamline at Final Screen (SRW Native)")
113
+
114
+ if hasattr(widget, "show_view_box") and getattr(widget, "show_view_box"):
115
+ widget.is_final_screen = 0
116
+ widget.set_is_final_screen()
117
+ except Exception as exception:
118
+ showCriticalMessage(exception.args[0])
119
+
120
+ def executeAction_5(self, action):
121
+ try:
122
+ for node in self.canvas_main_window.current_document().scheme().nodes:
123
+ widget = self.canvas_main_window.current_document().scheme().widget_for_node(node)
124
+
125
+ if isinstance(widget, SRWWidget) and not (isinstance(widget, OWSRWIntensityPlotter) or
126
+ isinstance(widget, OWSRWDegCohPlotter) or
127
+ isinstance(widget, OWSRWAccumulationPoint)):
128
+ if hasattr(widget, "view_type") and hasattr(widget, "set_PlotQuality"):
129
+ if (PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION) == SRWPropagationMode.WHOLE_BEAMLINE):
130
+ raise Exception("Action not possibile while Propagation Mode: Whole beamline at Final Screen (SRW Native)")
131
+
132
+ if hasattr(widget, "show_view_box") and getattr(widget, "show_view_box"):
133
+ widget.view_type = 0
134
+ widget.set_PlotQuality()
135
+
136
+ except Exception as exception:
137
+ showCriticalMessage(exception.args[0])
138
+
139
+ def executeAction_6(self, action):
140
+ try:
141
+ for node in self.canvas_main_window.current_document().scheme().nodes:
142
+ widget = self.canvas_main_window.current_document().scheme().widget_for_node(node)
143
+
144
+ if isinstance(widget, SRWWidget) and not (isinstance(widget, OWSRWIntensityPlotter) or
145
+ isinstance(widget, OWSRWDegCohPlotter) or
146
+ isinstance(widget, OWSRWAccumulationPoint)):
147
+ if hasattr(widget, "view_type") and hasattr(widget, "set_PlotQuality"):
148
+ if (PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION) == SRWPropagationMode.WHOLE_BEAMLINE):
149
+ raise Exception("Action not possibile while Propagation Mode: Whole beamline at Final Screen (SRW Native)")
150
+
151
+ if hasattr(widget, "show_view_box") and getattr(widget, "show_view_box"):
152
+ widget.view_type = 1
153
+ widget.set_PlotQuality()
154
+
155
+ except Exception as exception:
156
+ showCriticalMessage(exception.args[0])
157
+
158
+ def executeAction_7(self, action):
159
+ try:
160
+ for node in self.canvas_main_window.current_document().scheme().nodes:
161
+ widget = self.canvas_main_window.current_document().scheme().widget_for_node(node)
162
+
163
+ if isinstance(widget, OWSRWAccumulationPoint) and widget.autosave == 1: widget.reload_autosave_file()
164
+ except Exception as exception:
165
+ showCriticalMessage(exception.args[0])
166
+
167
+ #################################################################
168
+
169
+ def set_srw_live_propagation_mode(self):
170
+ for node in self.canvas_main_window.current_document().scheme().nodes:
171
+ widget = self.canvas_main_window.current_document().scheme().widget_for_node(node)
172
+
173
+ if hasattr(widget, "set_srw_live_propagation_mode"):
174
+ widget.set_srw_live_propagation_mode()
175
+
176
+ if (PropagationManager.Instance().get_propagation_mode(SRW_APPLICATION) == SRWPropagationMode.WHOLE_BEAMLINE):
177
+ if not (isinstance(widget, OWSRWScreen) or
178
+ isinstance(widget, OWSRWIntensityPlotter) or
179
+ isinstance(widget, OWSRWDegCohPlotter) or
180
+ isinstance(widget, OWSRWAccumulationPoint)) \
181
+ or getattr(widget, "is_final_screen") == False:
182
+ if hasattr(widget, "view_type") and hasattr(widget, "set_PlotQuality"):
183
+ if hasattr(widget, "show_view_box") and getattr(widget, "show_view_box"):
184
+ widget.view_type = 0
185
+ widget.set_PlotQuality()
186
+
187
+ if isinstance(widget, OWSRWScreen): widget.set_is_final_screen()
188
+
189
+
190
+ #################################################################
191
+ #
192
+ # SCHEME MANAGEMENT
193
+ #
194
+ #################################################################
195
+
196
+ def getWidgetFromNode(self, node):
197
+ return self.canvas_main_window.current_document().scheme().widget_for_node(node)
198
+
199
+ def createLinks(self, nodes):
200
+ previous_node = None
201
+ for node in nodes:
202
+ if not (isinstance(node, str)) and not previous_node is None and not (isinstance(previous_node, str)):
203
+ link = SchemeLink(source_node=previous_node, source_channel="Beam", sink_node=node, sink_channel="Input Beam")
204
+ self.canvas_main_window.current_document().addLink(link=link)
205
+ previous_node = node
206
+
207
+ def getWidgetDesc(self, widget_name):
208
+ return self.canvas_main_window.widget_registry.widget(widget_name)
209
+
210
+ def createNewNode(self, widget_desc):
211
+ return self.canvas_main_window.current_document().createNewNode(widget_desc)
212
+
213
+ def createNewNodeAndWidget(self, widget_desc):
214
+ messages = []
215
+
216
+ try:
217
+ node = self.createNewNode(widget_desc)
218
+ widget = self.getWidgetFromNode(node)
219
+
220
+ # here you can put values on the attrubutes
221
+
222
+ except Exception as exception:
223
+ messages.append(exception.args[0])
224
+
225
+ return widget, node, messages
File without changes