OASYS2-WOFRY 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 (102) hide show
  1. oasys2_wofry-1.0.0/LICENSE +28 -0
  2. oasys2_wofry-1.0.0/MANIFEST.in +6 -0
  3. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/PKG-INFO +45 -0
  4. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/SOURCES.txt +102 -0
  5. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/dependency_links.txt +1 -0
  6. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/entry_points.txt +7 -0
  7. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/not-zip-safe +1 -0
  8. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/requires.txt +3 -0
  9. oasys2_wofry-1.0.0/OASYS2_WOFRY.egg-info/top_level.txt +1 -0
  10. oasys2_wofry-1.0.0/PKG-INFO +45 -0
  11. oasys2_wofry-1.0.0/README.md +13 -0
  12. oasys2_wofry-1.0.0/orangecontrib/__init__.py +2 -0
  13. oasys2_wofry-1.0.0/orangecontrib/wofry/__init__.py +2 -0
  14. oasys2_wofry-1.0.0/orangecontrib/wofry/util/__init__.py +46 -0
  15. oasys2_wofry-1.0.0/orangecontrib/wofry/util/wofry_objects.py +33 -0
  16. oasys2_wofry-1.0.0/orangecontrib/wofry/util/wofry_util.py +341 -0
  17. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/__init__.py +2 -0
  18. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/__not_used/__init__.py +46 -0
  19. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/__not_used/ow_merge_new.py +225 -0
  20. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/__init__.py +20 -0
  21. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/beamline_elements.png +0 -0
  22. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/corrector1d.png +0 -0
  23. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/corrector2d.png +0 -0
  24. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/double_slit.png +0 -0
  25. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/ideal_lens1d.png +0 -0
  26. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/ideal_lens2d.png +0 -0
  27. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/lens1d.png +0 -0
  28. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/lens2d.png +0 -0
  29. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/obsolete.png +0 -0
  30. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/reflector_grazing1D.png +0 -0
  31. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/screen.png +0 -0
  32. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/screen1d.png +0 -0
  33. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/slit.png +0 -0
  34. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/slit1d.png +0 -0
  35. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/stop.jpg +0 -0
  36. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/stop.png +0 -0
  37. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/stop1d.png +0 -0
  38. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/thinb1d.png +0 -0
  39. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/icons/thinb2d.png +0 -0
  40. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_double_slit.py +24 -0
  41. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_gaussian_slits_1d.py +31 -0
  42. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_ideal_lens.py +57 -0
  43. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_ideal_lens_1d.py +50 -0
  44. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_mirror_1d.py +320 -0
  45. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_real_lens_1d.py +413 -0
  46. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_real_lens_2d.py +214 -0
  47. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_screen.py +34 -0
  48. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_screen_1d.py +27 -0
  49. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_slits.py +44 -0
  50. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_slits_1d.py +30 -0
  51. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_stop.py +34 -0
  52. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_stop_1d.py +53 -0
  53. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_1d.py +202 -0
  54. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_2d.py +173 -0
  55. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_corrector_1d.py +160 -0
  56. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_corrector_2d.py +167 -0
  57. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/__init__.py +0 -0
  58. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/misc/Refractor_misalignments.png +0 -0
  59. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/misc/Refractor_parameters.png +0 -0
  60. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/misc/__init__.py +0 -0
  61. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/ow_optical_element_1d.py +631 -0
  62. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/ow_optical_element_2D.py +1182 -0
  63. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/ow_wofry_widget.py +379 -0
  64. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/gui/python_script.py +279 -0
  65. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/__init__.py +20 -0
  66. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/generic_wavefront_viewer_1D.py +213 -0
  67. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/generic_wavefront_viewer_2d.py +280 -0
  68. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/1d_to_2d.png +0 -0
  69. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/2d_to_1d.png +0 -0
  70. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/accumulation.png +0 -0
  71. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/diagonalize_python_script.png +0 -0
  72. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/file_reader.png +0 -0
  73. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/file_writer.png +0 -0
  74. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/info.png +0 -0
  75. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/merge.png +0 -0
  76. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/renderer.png +0 -0
  77. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/tools.png +0 -0
  78. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/wv1d.png +0 -0
  79. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/icons/wv2d.png +0 -0
  80. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_1D_to_2D.py +192 -0
  81. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_2D_to_1D.py +151 -0
  82. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_beamline_renderer_2D.py +184 -0
  83. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_diagonalize_python_script.py +445 -0
  84. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_info.py +110 -0
  85. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_merge.py +299 -0
  86. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_wavefront_file_reader.py +123 -0
  87. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/tools/ow_wavefront_file_writer.py +110 -0
  88. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/__init__.py +20 -0
  89. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/gw1d.png +0 -0
  90. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/gw2d.png +0 -0
  91. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_cmd_1d.png +0 -0
  92. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_gsm_1d.png +0 -0
  93. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_gsm_2d.png +0 -0
  94. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/icons/wavefront_propagation.png +0 -0
  95. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/ow_generic_wavefront_1D.py +468 -0
  96. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/ow_generic_wavefront_2D.py +487 -0
  97. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_coherent_mode_decomposition_1D.py +701 -0
  98. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_gaussian_shell_model_1D.py +518 -0
  99. oasys2_wofry-1.0.0/orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_gaussian_shell_model_2D.py +590 -0
  100. oasys2_wofry-1.0.0/pyproject.toml +3 -0
  101. oasys2_wofry-1.0.0/setup.cfg +4 -0
  102. oasys2_wofry-1.0.0/setup.py +85 -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/wofry/widgets *.png *.svg *.ico *.jpg *.bmp
5
+
6
+ include README.txt
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.4
2
+ Name: OASYS2-WOFRY
3
+ Version: 1.0.0
4
+ Summary: WOFRY (Wave Optics FRamework in pYthon)
5
+ Home-page: https://github.com/oasys-kit/OASYS2-WOFRY
6
+ Download-URL: https://github.com/oasys-kit/OASYS2-WOFRY
7
+ Author: Manuel Sanchez del Rio, Luca Rebuffi
8
+ Author-email: lrebuffi@anl.gov
9
+ License: GPLv3
10
+ Keywords: simulator,waveoptics,oasys2
11
+ Classifier: Development Status :: 4 - Beta
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: wofryimpl>=1.0.32
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: download-url
26
+ Dynamic: home-page
27
+ Dynamic: keywords
28
+ Dynamic: license
29
+ Dynamic: license-file
30
+ Dynamic: requires-dist
31
+ Dynamic: summary
32
+
33
+ # OASYS-WOFRY
34
+
35
+ WOFRY (Wave Optics FRamework in pYthon) is a package for partially coherent beamline simulations.
36
+
37
+ This project OASYS2-WOFRY contains the widgets for WOFRY available in OASYS https://oasys-kit.github.io/
38
+
39
+ It makes use of the projects WOFRY https://github.com/oasys-kit/wofry and WOFRYIMPL https://github.com/oasys-kit/wofryimpl
40
+
41
+ ## Reference
42
+
43
+ "WOFRY: a package for partially coherent beamline simulations in fourth-generation storage rings" by
44
+ Manuel Sanchez del Rio, Juan Reyes-Herrera, Rafael Celestre, Luca Rebuffi (2024)
45
+ https://doi.org/10.48550/arXiv.2410.01338
@@ -0,0 +1,102 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.py
6
+ OASYS2_WOFRY.egg-info/PKG-INFO
7
+ OASYS2_WOFRY.egg-info/SOURCES.txt
8
+ OASYS2_WOFRY.egg-info/dependency_links.txt
9
+ OASYS2_WOFRY.egg-info/entry_points.txt
10
+ OASYS2_WOFRY.egg-info/not-zip-safe
11
+ OASYS2_WOFRY.egg-info/requires.txt
12
+ OASYS2_WOFRY.egg-info/top_level.txt
13
+ orangecontrib/__init__.py
14
+ orangecontrib/wofry/__init__.py
15
+ orangecontrib/wofry/util/__init__.py
16
+ orangecontrib/wofry/util/wofry_objects.py
17
+ orangecontrib/wofry/util/wofry_util.py
18
+ orangecontrib/wofry/widgets/__init__.py
19
+ orangecontrib/wofry/widgets/__not_used/__init__.py
20
+ orangecontrib/wofry/widgets/__not_used/ow_merge_new.py
21
+ orangecontrib/wofry/widgets/beamline_elements/__init__.py
22
+ orangecontrib/wofry/widgets/beamline_elements/ow_double_slit.py
23
+ orangecontrib/wofry/widgets/beamline_elements/ow_gaussian_slits_1d.py
24
+ orangecontrib/wofry/widgets/beamline_elements/ow_ideal_lens.py
25
+ orangecontrib/wofry/widgets/beamline_elements/ow_ideal_lens_1d.py
26
+ orangecontrib/wofry/widgets/beamline_elements/ow_mirror_1d.py
27
+ orangecontrib/wofry/widgets/beamline_elements/ow_real_lens_1d.py
28
+ orangecontrib/wofry/widgets/beamline_elements/ow_real_lens_2d.py
29
+ orangecontrib/wofry/widgets/beamline_elements/ow_screen.py
30
+ orangecontrib/wofry/widgets/beamline_elements/ow_screen_1d.py
31
+ orangecontrib/wofry/widgets/beamline_elements/ow_slits.py
32
+ orangecontrib/wofry/widgets/beamline_elements/ow_slits_1d.py
33
+ orangecontrib/wofry/widgets/beamline_elements/ow_stop.py
34
+ orangecontrib/wofry/widgets/beamline_elements/ow_stop_1d.py
35
+ orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_1d.py
36
+ orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_2d.py
37
+ orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_corrector_1d.py
38
+ orangecontrib/wofry/widgets/beamline_elements/ow_thin_object_corrector_2d.py
39
+ orangecontrib/wofry/widgets/beamline_elements/icons/beamline_elements.png
40
+ orangecontrib/wofry/widgets/beamline_elements/icons/corrector1d.png
41
+ orangecontrib/wofry/widgets/beamline_elements/icons/corrector2d.png
42
+ orangecontrib/wofry/widgets/beamline_elements/icons/double_slit.png
43
+ orangecontrib/wofry/widgets/beamline_elements/icons/ideal_lens1d.png
44
+ orangecontrib/wofry/widgets/beamline_elements/icons/ideal_lens2d.png
45
+ orangecontrib/wofry/widgets/beamline_elements/icons/lens1d.png
46
+ orangecontrib/wofry/widgets/beamline_elements/icons/lens2d.png
47
+ orangecontrib/wofry/widgets/beamline_elements/icons/obsolete.png
48
+ orangecontrib/wofry/widgets/beamline_elements/icons/reflector_grazing1D.png
49
+ orangecontrib/wofry/widgets/beamline_elements/icons/screen.png
50
+ orangecontrib/wofry/widgets/beamline_elements/icons/screen1d.png
51
+ orangecontrib/wofry/widgets/beamline_elements/icons/slit.png
52
+ orangecontrib/wofry/widgets/beamline_elements/icons/slit1d.png
53
+ orangecontrib/wofry/widgets/beamline_elements/icons/stop.jpg
54
+ orangecontrib/wofry/widgets/beamline_elements/icons/stop.png
55
+ orangecontrib/wofry/widgets/beamline_elements/icons/stop1d.png
56
+ orangecontrib/wofry/widgets/beamline_elements/icons/thinb1d.png
57
+ orangecontrib/wofry/widgets/beamline_elements/icons/thinb2d.png
58
+ orangecontrib/wofry/widgets/gui/__init__.py
59
+ orangecontrib/wofry/widgets/gui/ow_optical_element_1D.py
60
+ orangecontrib/wofry/widgets/gui/ow_optical_element_1d.py
61
+ orangecontrib/wofry/widgets/gui/ow_optical_element_2D.py
62
+ orangecontrib/wofry/widgets/gui/ow_wofry_widget.py
63
+ orangecontrib/wofry/widgets/gui/python_script.py
64
+ orangecontrib/wofry/widgets/gui/misc/Refractor_misalignments.png
65
+ orangecontrib/wofry/widgets/gui/misc/Refractor_parameters.png
66
+ orangecontrib/wofry/widgets/gui/misc/__init__.py
67
+ orangecontrib/wofry/widgets/tools/__init__.py
68
+ orangecontrib/wofry/widgets/tools/generic_wavefront_viewer_1D.py
69
+ orangecontrib/wofry/widgets/tools/generic_wavefront_viewer_2D.py
70
+ orangecontrib/wofry/widgets/tools/generic_wavefront_viewer_2d.py
71
+ orangecontrib/wofry/widgets/tools/ow_1D_to_2D.py
72
+ orangecontrib/wofry/widgets/tools/ow_2D_to_1D.py
73
+ orangecontrib/wofry/widgets/tools/ow_beamline_renderer_2D.py
74
+ orangecontrib/wofry/widgets/tools/ow_diagonalize_python_script.py
75
+ orangecontrib/wofry/widgets/tools/ow_info.py
76
+ orangecontrib/wofry/widgets/tools/ow_merge.py
77
+ orangecontrib/wofry/widgets/tools/ow_wavefront_file_reader.py
78
+ orangecontrib/wofry/widgets/tools/ow_wavefront_file_writer.py
79
+ orangecontrib/wofry/widgets/tools/icons/1d_to_2d.png
80
+ orangecontrib/wofry/widgets/tools/icons/2d_to_1d.png
81
+ orangecontrib/wofry/widgets/tools/icons/accumulation.png
82
+ orangecontrib/wofry/widgets/tools/icons/diagonalize_python_script.png
83
+ orangecontrib/wofry/widgets/tools/icons/file_reader.png
84
+ orangecontrib/wofry/widgets/tools/icons/file_writer.png
85
+ orangecontrib/wofry/widgets/tools/icons/info.png
86
+ orangecontrib/wofry/widgets/tools/icons/merge.png
87
+ orangecontrib/wofry/widgets/tools/icons/renderer.png
88
+ orangecontrib/wofry/widgets/tools/icons/tools.png
89
+ orangecontrib/wofry/widgets/tools/icons/wv1d.png
90
+ orangecontrib/wofry/widgets/tools/icons/wv2d.png
91
+ orangecontrib/wofry/widgets/wavefront_propagation/__init__.py
92
+ orangecontrib/wofry/widgets/wavefront_propagation/ow_generic_wavefront_1D.py
93
+ orangecontrib/wofry/widgets/wavefront_propagation/ow_generic_wavefront_2D.py
94
+ orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_coherent_mode_decomposition_1D.py
95
+ orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_gaussian_shell_model_1D.py
96
+ orangecontrib/wofry/widgets/wavefront_propagation/ow_undulator_gaussian_shell_model_2D.py
97
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/gw1d.png
98
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/gw2d.png
99
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_cmd_1d.png
100
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_gsm_1d.png
101
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/undulator_gsm_2d.png
102
+ orangecontrib/wofry/widgets/wavefront_propagation/icons/wavefront_propagation.png
@@ -0,0 +1,7 @@
1
+ [oasys2.addons]
2
+ wofry = orangecontrib.wofry
3
+
4
+ [oasys2.widgets]
5
+ Wofry Optical Elements = orangecontrib.wofry.widgets.beamline_elements
6
+ Wofry Tools = orangecontrib.wofry.widgets.tools
7
+ Wofry Wavefront Propagation = orangecontrib.wofry.widgets.wavefront_propagation
@@ -0,0 +1,3 @@
1
+ oasys2>=0.0.1
2
+ syned-gui-2>=1.0.0
3
+ wofryimpl>=1.0.32
@@ -0,0 +1 @@
1
+ orangecontrib
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.4
2
+ Name: OASYS2-WOFRY
3
+ Version: 1.0.0
4
+ Summary: WOFRY (Wave Optics FRamework in pYthon)
5
+ Home-page: https://github.com/oasys-kit/OASYS2-WOFRY
6
+ Download-URL: https://github.com/oasys-kit/OASYS2-WOFRY
7
+ Author: Manuel Sanchez del Rio, Luca Rebuffi
8
+ Author-email: lrebuffi@anl.gov
9
+ License: GPLv3
10
+ Keywords: simulator,waveoptics,oasys2
11
+ Classifier: Development Status :: 4 - Beta
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: wofryimpl>=1.0.32
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: download-url
26
+ Dynamic: home-page
27
+ Dynamic: keywords
28
+ Dynamic: license
29
+ Dynamic: license-file
30
+ Dynamic: requires-dist
31
+ Dynamic: summary
32
+
33
+ # OASYS-WOFRY
34
+
35
+ WOFRY (Wave Optics FRamework in pYthon) is a package for partially coherent beamline simulations.
36
+
37
+ This project OASYS2-WOFRY contains the widgets for WOFRY available in OASYS https://oasys-kit.github.io/
38
+
39
+ It makes use of the projects WOFRY https://github.com/oasys-kit/wofry and WOFRYIMPL https://github.com/oasys-kit/wofryimpl
40
+
41
+ ## Reference
42
+
43
+ "WOFRY: a package for partially coherent beamline simulations in fourth-generation storage rings" by
44
+ Manuel Sanchez del Rio, Juan Reyes-Herrera, Rafael Celestre, Luca Rebuffi (2024)
45
+ https://doi.org/10.48550/arXiv.2410.01338
@@ -0,0 +1,13 @@
1
+ # OASYS-WOFRY
2
+
3
+ WOFRY (Wave Optics FRamework in pYthon) is a package for partially coherent beamline simulations.
4
+
5
+ This project OASYS2-WOFRY contains the widgets for WOFRY available in OASYS https://oasys-kit.github.io/
6
+
7
+ It makes use of the projects WOFRY https://github.com/oasys-kit/wofry and WOFRYIMPL https://github.com/oasys-kit/wofryimpl
8
+
9
+ ## Reference
10
+
11
+ "WOFRY: a package for partially coherent beamline simulations in fourth-generation storage rings" by
12
+ Manuel Sanchez del Rio, Juan Reyes-Herrera, Rafael Celestre, Luca Rebuffi (2024)
13
+ https://doi.org/10.48550/arXiv.2410.01338
@@ -0,0 +1,2 @@
1
+ # namespace declaration.
2
+ __path__ = __import__('pkgutil').extend_path(__path__, __name__)
@@ -0,0 +1,2 @@
1
+ # namespace declaration.
2
+ __path__ = __import__('pkgutil').extend_path(__path__, __name__)
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # ----------------------------------------------------------------------- #
4
+ # Copyright (c) 2025, UChicago Argonne, LLC. All rights reserved. #
5
+ # #
6
+ # Copyright 2025. UChicago Argonne, LLC. This software was produced #
7
+ # under U.S. Government contract DE-AC02-06CH11357 for Argonne National #
8
+ # Laboratory (ANL), which is operated by UChicago Argonne, LLC for the #
9
+ # U.S. Department of Energy. The U.S. Government has rights to use, #
10
+ # reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR #
11
+ # UChicago Argonne, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR #
12
+ # ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is #
13
+ # modified to produce derivative works, such modified software should #
14
+ # be clearly marked, so as not to confuse it with the version available #
15
+ # from ANL. #
16
+ # #
17
+ # Additionally, redistribution and use in source and binary forms, with #
18
+ # or without modification, are permitted provided that the following #
19
+ # conditions are met: #
20
+ # #
21
+ # * Redistributions of source code must retain the above copyright #
22
+ # notice, this list of conditions and the following disclaimer. #
23
+ # #
24
+ # * Redistributions in binary form must reproduce the above copyright #
25
+ # notice, this list of conditions and the following disclaimer in #
26
+ # the documentation and/or other materials provided with the #
27
+ # distribution. #
28
+ # #
29
+ # * Neither the name of UChicago Argonne, LLC, Argonne National #
30
+ # Laboratory, ANL, the U.S. Government, nor the names of its #
31
+ # contributors may be used to endorse or promote products derived #
32
+ # from this software without specific prior written permission. #
33
+ # #
34
+ # THIS SOFTWARE IS PROVIDED BY UChicago Argonne, LLC AND CONTRIBUTORS #
35
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT #
36
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS #
37
+ # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UChicago #
38
+ # Argonne, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, #
39
+ # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, #
40
+ # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; #
41
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER #
42
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT #
43
+ # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN #
44
+ # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE #
45
+ # POSSIBILITY OF SUCH DAMAGE. #
46
+ # ----------------------------------------------------------------------- #
@@ -0,0 +1,33 @@
1
+ from wofryimpl.beamline.beamline import WOBeamline
2
+ from wofry.propagator.wavefront import Wavefront
3
+
4
+ class WofryData(object):
5
+ def __init__(self, beamline=None, wavefront=None):
6
+ super().__init__()
7
+ if beamline is None:
8
+ self.__beamline = WOBeamline()
9
+ else:
10
+ self.__beamline = beamline
11
+
12
+ if wavefront is None:
13
+ self.__wavefront = Wavefront()
14
+ else:
15
+ self.__wavefront = wavefront
16
+
17
+ def get_beamline(self):
18
+ return self.__beamline
19
+
20
+ def get_wavefront(self):
21
+ return self.__wavefront
22
+
23
+ def set_beamline(self, beamline):
24
+ self.__beamline = beamline.duplicate()
25
+
26
+ def set_wavefront(self, wavefront):
27
+ self.__wavefront = wavefront.duplicate()
28
+
29
+ def duplicate(self):
30
+ return WofryData(wavefront=self.get_wavefront().duplicate(),
31
+ beamline=self.get_beamline().duplicate())
32
+
33
+