xrt 1.5.0__zip → 1.6.1__zip
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.
- {xrt-1.5.0 → xrt-1.6.1}/MANIFEST.in +4 -4
- {xrt-1.5.0 → xrt-1.6.1}/PKG-INFO +21 -20
- {xrt-1.5.0 → xrt-1.6.1}/examples/withDummy/__init__.py +7 -3
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/__init__.py +57 -37
- xrt-1.6.1/examples/withRaycing/00_xRayCalculator/calc_crystal.py +45 -0
- xrt-1.6.1/examples/withRaycing/00_xRayCalculator/calc_undulator.py +118 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_undulator_power.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_undulator_tune.py +2 -2
- xrt-1.6.1/examples/withRaycing/01_SynchrotronSources/fluxThroughAperture.py +354 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/my_arbitrary_field_test.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/synchrotronSources.py +33 -29
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/undulatorHamed.py +6 -5
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/undulatorHamed_fromField.py +4 -6
- xrt-1.6.1/examples/withRaycing/01_SynchrotronSources/undulatorVortex.py +372 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/__init__.py +22 -6
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceDCMBalderBL.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/03_LaueMono/01_bentLaueSCM.py +62 -48
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/03_LaueMono/02_bentLaueDCM_RC.py +2 -2
- xrt-1.6.1/examples/withRaycing/03_LaueMono/03_bentLaue_material.py +288 -0
- xrt-1.6.1/examples/withRaycing/03_LaueMono/03_polychromatic_focus.py +347 -0
- xrt-1.6.1/examples/withRaycing/03_LaueMono/04_bentLaue2D_material.py +238 -0
- xrt-1.6.1/examples/withRaycing/03_LaueMono/04_sagittal_bending.py +343 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/04_Lenses/crl_individual.py +0 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/04_Lenses/crl_stack.py +5 -2
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/08_convergent_LT_bent.py +40 -26
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/09_convergent_LT_bentSph.py +42 -29
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/__init__.py +4 -2
- xrt-1.6.1/examples/withRaycing/06_AnalyzerBent1D/01B_BentTT.py +299 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/01B_SourceZCrystalThetaAlpha.py +2 -3
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/01L_SourceZCrystalThetaAlpha.py +2 -3
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/02_vonHamos.py +41 -39
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/02_vonHamosElliptical.py +3 -2
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/__init__.py +104 -43
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/flux-dE.py +6 -7
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/07_AnalyzerBent2D/01BD_SourceZCrystalThetaAlpha.py +99 -73
- xrt-1.6.1/examples/withRaycing/08_CLAESS_BL/__init__.py +58 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/FZP.py +5 -3
- xrt-1.6.1/examples/withRaycing/09_Gratings/GratingFlexPES-turned.py +440 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/__init__.py +22 -7
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/10_MultipleReflect/BentTaperedPolyCapillary.py +24 -24
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/10_MultipleReflect/__init__.py +31 -8
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/11.6 DiffractionOnApertures.py +2 -2
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/LaguerreGaussianBeam_SiemensStar.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/doubleSlitScan.py +9 -4
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/slitscan.py +4 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/waveFZP.py +12 -7
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/waveGrating.py +29 -25
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/waveMirrors.py +2 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/12_Multilayer/BalderDMM.py +2 -2
- xrt-1.6.1/examples/withRaycing/13_Warping/ExampleOfSlopeErrorMapToParametricMirror.py +74 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/13_Warping/warp.py +10 -9
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/14_SoftiMAX/Softi_CXIw1D.py +10 -10
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/14_SoftiMAX/Softi_CXIw2D.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/14_SoftiMAX/Softi_STXMw1D.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/14_SoftiMAX/Softi_STXMw2D.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/14_SoftiMAX/__init__.py +9 -2
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/00_simple.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/effic.01 +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/end.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/end.01 +2 -2
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/start.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_input_source_tmp.inp +1 -1
- xrt-1.6.1/examples/withShadow/03/tmp0/shadow-trace.bat +4 -0
- xrt-1.6.1/examples/withShadow/04_06/tmp0/shadow-source.bat +7 -0
- xrt-1.6.1/examples/withShadow/04_06/tmp0/shadow-trace.bat +4 -0
- {xrt-1.5.0 → xrt-1.6.1}/setup.py +22 -22
- xrt-1.6.1/tests/raycing/IR/RefractiveIndexINFO_BK7.csv +125 -0
- xrt-1.6.1/tests/raycing/IR/one_plate_test.py +123 -0
- xrt-1.6.1/tests/raycing/IR/wedge_diamond.xml +233 -0
- xrt-1.6.1/tests/raycing/RemoteOpenCLCalculation/__init__.py +53 -0
- xrt-1.6.1/tests/raycing/RemoteOpenCLCalculation/__pycache__/__init__.cpython-312.pyc +0 -0
- xrt-1.6.1/tests/raycing/RemoteOpenCLCalculation/__pycache__/zmq_server.cpython-312.pyc +0 -0
- xrt-1.6.1/tests/raycing/RemoteOpenCLCalculation/zmq_server.py +199 -0
- xrt-1.6.1/tests/raycing/_SynchrotronSources/MAX-IV-IDs-Flux.py +204 -0
- {xrt-1.5.0/examples/withRaycing/00_xRayCalculator → xrt-1.6.1/tests/raycing/_SynchrotronSources}/calc_undulator.py +7 -2
- xrt-1.6.1/tests/raycing/_SynchrotronSources/calc_undulator_power.py +41 -0
- xrt-1.6.1/tests/raycing/_SynchrotronSources/calc_undulator_tune.py +62 -0
- xrt-1.6.1/tests/raycing/_SynchrotronSources/synchrotronSourcesTests.py +839 -0
- xrt-1.6.1/tests/raycing/_SynchrotronSources/undulatorHamed.py +444 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/laguerre_hermite_gaussian_beam.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/read_NOM_maps.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_asymmetric_xtal.py +9 -3
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_backcattering_xtal_Shvydko.py +3 -0
- xrt-1.6.1/tests/raycing/test_ellipsoid_tube_mirror.py +150 -0
- xrt-1.6.1/tests/raycing/test_hyperboloid_tube_mirror.py +155 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_laue_bent.py +2 -3
- xrt-1.6.1/tests/raycing/test_materials.py +986 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_mosaic_xtal.py +44 -18
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_mosaic_xtal_thin.py +149 -148
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_param_mirror.py +65 -17
- xrt-1.6.1/tests/raycing/test_pytte.py +372 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_undulator_convergence.py +15 -6
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_undulator_on_mesh.py +18 -17
- {xrt-1.5.0 → xrt-1.6.1}/tests/speed/1_SourceZCrystalThetaAlpha_speed.py +6 -7
- {xrt-1.5.0 → xrt-1.6.1}/tests/speed/2_synchrotronSources_speed.py +21 -17
- {xrt-1.5.0 → xrt-1.6.1}/tests/speed/3_Softi_CXIw2D_speed.py +30 -21
- xrt-1.6.1/tests/speed/__init__.py +72 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/__init__.py +37 -36
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/__init__.py +146 -46
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/apertures.py +238 -89
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/coherence.py +31 -19
- xrt-1.6.1/xrt/backends/raycing/data/BrCo.npz +0 -0
- xrt-1.6.1/xrt/backends/raycing/data/Chantler.npz +0 -0
- xrt-1.6.1/xrt/backends/raycing/data/Henke.npz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/materials.cl +473 -2
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/materials.py +560 -62
- xrt-1.6.1/xrt/backends/raycing/materials_compounds.py +853 -0
- xrt-1.6.1/xrt/backends/raycing/materials_crystals.py +1439 -0
- xrt-1.6.1/xrt/backends/raycing/materials_elemental.py +717 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/modes.py +2 -4
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/myopencl.py +265 -19
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/oes.py +1684 -315
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/oes_base.py +434 -170
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/__init__.py +9 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/crystal_vectors.py +58 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/deformation.py +300 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/elastic_tensors.py +384 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/legacy.py +326 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/pyTTE.py +906 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/pyTTE_rkpy.py +1038 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/pyTTE_rkpy_qt.py +855 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/quantity.py +344 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/rotation_matrix.py +105 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/ttcrystal.py +890 -0
- xrt-1.6.1/xrt/backends/raycing/pyTTE_x/ttscan.py +241 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/run.py +2 -1
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/screens.py +81 -53
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources.py +112 -17
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources_beams.py +5 -4
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources_geoms.py +23 -15
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources_legacy.py +1 -1
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources_sybase.py +117 -57
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/sources_synchr.py +78 -30
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/waves.py +53 -36
- xrt-1.6.1/xrt/gui/commons/_themes/qook/static/jquery.js +2 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/ext.py +3 -1
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/qt.py +13 -44
- xrt-1.6.1/xrt/gui/xrtBentXtal.py +1382 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtGlow/__init__.py +90 -65
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtGlow/notes.py +12 -8
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/__init__.py +168 -86
- xrt-1.6.1/xrt/gui/xrtQook/_icons/3dg_256.png +0 -0
- xrt-1.6.1/xrt/gui/xrtQook/_icons/xbcc.ico +0 -0
- xrt-1.6.1/xrt/gui/xrtQook/_icons/xbcc.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/tutorial.py +45 -22
- xrt-1.6.1/xrt/gui/xrtQookStart.py +53 -0
- xrt-1.6.1/xrt/gui/xrtQookStart.pyw +52 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/multipro.py +14 -34
- {xrt-1.5.0 → xrt-1.6.1}/xrt/plotter.py +68 -48
- {xrt-1.5.0 → xrt-1.6.1}/xrt/runner.py +20 -16
- {xrt-1.5.0 → xrt-1.6.1}/xrt/version.py +2 -2
- {xrt-1.5.0 → xrt-1.6.1}/xrt.egg-info/PKG-INFO +21 -20
- {xrt-1.5.0 → xrt-1.6.1}/xrt.egg-info/SOURCES.txt +44 -99
- xrt-1.6.1/xrt.egg-info/requires.txt +14 -0
- xrt-1.5.0/examples/withRaycing/00_xRayCalculator/calc_crystal.py +0 -24
- xrt-1.5.0/examples/withRaycing/08_CLAESS_BL/__init__.py +0 -50
- xrt-1.5.0/examples/withShadow/00_02/tmp0/shadow-source.bat +0 -7
- xrt-1.5.0/examples/withShadow/00_02/tmp0/shadow-trace.bat +0 -4
- xrt-1.5.0/examples/withShadow/00_02/tmp0/shadowvui.bat +0 -4
- xrt-1.5.0/tests/raycing/RemoteOpenCLCalculation/zmq_server.py +0 -51
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-15deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-15deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-15deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-15deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-45deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-45deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-45deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-45deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-60deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-60deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-60deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-60deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-75deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-75deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-75deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a-75deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a0deg.xc.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a0deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a0deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a0deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a0deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a15deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a15deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a15deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a15deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a45deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a45deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a45deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a45deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a60deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a60deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a60deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a60deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a75deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a75deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a75deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_R50m_a75deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a-30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a-30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a0deg.xc.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a30deg.xc.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi111_E50keV_t1000mkm_Rinfm_a30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-05deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-05deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-15deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-15deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-15deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-45deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-45deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-45deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-45deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-60deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-60deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-60deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-60deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-75deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-75deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a-75deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a0deg.xc.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a0deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a0deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a0deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a0deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a15deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a15deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a45deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a45deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a60deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a60deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a75deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_R50m_a75deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_Rinfm_a30deg.xc.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_Rinfm_a30deg_pp_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_Rinfm_a30deg_pp_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_Rinfm_a30deg_tt_pi.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/XOP-RockingCurves-Bent/lSi333_E50keV_t1000mkm_Rinfm_a30deg_tt_sigma.xcb.gz +0 -0
- xrt-1.5.0/tests/raycing/test_materials.py +0 -1327
- xrt-1.5.0/xrt/backends/raycing/data/BrCo.npz +0 -0
- xrt-1.5.0/xrt/backends/raycing/data/Chantler.npz +0 -0
- xrt-1.5.0/xrt/backends/raycing/data/Henke.npz +0 -0
- xrt-1.5.0/xrt/gui/commons/__init__.py +0 -1
- xrt-1.5.0/xrt/gui/xrtQookStart.py +0 -31
- xrt-1.5.0/xrt/gui/xrtQookStart.pyw +0 -31
- xrt-1.5.0/xrt.egg-info/requires.txt +0 -4
- {xrt-1.5.0 → xrt-1.6.1}/LICENSE.txt +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/README.txt +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withDummy/logo-python.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withDummy/logo_xrt.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withDummy/xrt_demo.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_absorption.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_bm.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_carbon_contamination.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_coated_mirror.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_crystal_dtheta.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_crystal_rocking_curve.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_mirror.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_multilayer.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_multilayer_E.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_multilayer_theta.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_slab.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/00_xRayCalculator/calc_transmittivity.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/B-Hamed.xlsx +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/MAX-IV-IDs-Flux.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/U32TaperedScan.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/bionano3.dc0 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/thetaexafssc1an_zn_hgap_00002r2.fio.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/undulator-rays-near-wave-filament.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/undulatorTapering.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/01_SynchrotronSources/undulatorTapering_zmq.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/3D/BalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/3D/traceBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/BalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/BalderFlux.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceFiltersBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceMirrorPitchBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceMirrorPitchBothBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/02_Balder_BL/traceMirrorRBalderBL.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/03_LaueMono/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/04_Lenses/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/04_Lenses/crl_individual_3D.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/01_collimated_BR.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/02_collimated_LR.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/03_collimated_BT.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/04_collimated_LT.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/05_convergent_BT.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/06_convergent_LT.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/05_QWP/07_convergent_LT_slit.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/06_AnalyzerBent1D/vonHamosPos.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/07_AnalyzerBent2D/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/08_CLAESS_BL/ClaessBL_N.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/08_CLAESS_BL/traceClaessBL_N.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/BraggFresnel.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/Grating.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/GratingFlexPES.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/09_Gratings/efficiency1-LEG.txt +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/10_MultipleReflect/Cylinder.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/10_MultipleReflect/MontelMirror.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/IMP_1st_1p11.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/IMP_2nd_1p11.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/LEG_1st_1p85.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/LEG_2nd_1p85.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/MEG_1st_1p48.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/MEG_2nd_1p48.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/apex175p9.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/11_Waves/coherentModePropagation.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/12_Multilayer/traceDMM.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/13_Warping/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/13_Warping/mock_surface.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/15_XRD/P02_PD.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/15_XRD/_images/rings_on_detector.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/15_XRD/xrd_mono.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/16_ParametricOptimization/16.1_autoOptimization_detuning.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/1crystal.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/4crystals.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/BioXAS_Main.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_glow.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p02.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p03a.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p03b.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p03c.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/ex03_p03d.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp01_glow.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp01_p01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp02_glow.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp02_p01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp02_p02.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp04_glow.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp04_p01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp04_p02.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp04_p03.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/_images/exp04_p04.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/lens1.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/lens3.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/testAlignment.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/_QookBeamlines/testGrating.xml +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withRaycing/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/01_filters.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/02_VCM_stripes.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/CLAESS01-norefl.ws +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/CVDdiamond.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/Pt_refl.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/Rh_refl.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/Si111.rc +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/Si311.rc +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/Si_refl.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/optax.01 +0 -0
- {xrt-1.5.0/examples/withShadow/03 → xrt-1.6.1/examples/withShadow/00_02}/tmp0/shadow-source.bat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/shadow-source.sh +0 -0
- {xrt-1.5.0/examples/withShadow/03 → xrt-1.6.1/examples/withShadow/00_02}/tmp0/shadow-trace.bat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/shadow-trace.sh +0 -0
- /xrt-1.5.0/examples/withShadow/04_06/tmp0/shadow-trace.bat → /xrt-1.6.1/examples/withShadow/00_02/tmp0/shadowvui.bat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/start.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/systemfile.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_bragg_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_env_file.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_epath_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_nphoton_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xsh_prerefl_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/00_02/tmp0/xshwig.par +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/03_DCM_energy.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/CLAESS-noVFM.ws +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/CVDdiamond.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/Rh_refl.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/Si111.rc +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/Si311.rc +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/effic.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/effic.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/effic.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/end.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/end.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/end.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/end.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/error_source.log +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/optax.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/optax.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/optax.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/output_source.log +0 -0
- {xrt-1.5.0/examples/withShadow/04_06 → xrt-1.6.1/examples/withShadow/03}/tmp0/shadow-source.bat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/shadow-source.sh +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/shadow-trace.sh +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/start.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/start.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/start.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/start.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/start_old.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/systemfile.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_env_file.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_epath_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_input_source_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_mirinfo_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_mirinfo_tmp.out +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xsh_nphoton_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/03/tmp0/xshwig.par +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/04_dE_VCM_bending.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/05_VFM_bending.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/06_mirrors_pitch.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/CLAESS.ws +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/CVDdiamond.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/Rh_refl.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/Si111.rc +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/effic.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/effic.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/effic.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/effic.04 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/end.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/end.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/end.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/end.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/end.04 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/optax.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/optax.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/optax.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/optax.04 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/shadow-source.sh +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/shadow-trace.sh +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start.00 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start.01 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start.03 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start.04 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/start_old.02 +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/systemfile.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_env_file.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_epath_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_input_source_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_mirinfo_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_mirinfo_tmp.out +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xsh_nphoton_tmp.inp +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/04_06/tmp0/xshwig.par +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/examples/withShadow/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/setup.cfg +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/convexHull.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/kde.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/CSiO2_p_rough1.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/CSiO2_s_rough1.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/RhSi_p_rough2.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/RhSi_s_rough2.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/WSi300id0.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/CXRO-Reflectivities/WSi300id6.CXRO.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/RemoteOpenCLCalculation/queue_device.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Ag_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Al_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Au_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Be_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Diamond60mum.xpower.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Ni_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Pt4mrad_p.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Pt4mrad_s.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Rh2mrad_p.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Rh2mrad_s.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/ScCr_ML_reflection_REFLEC.npy +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/ScCr_ML_transmission_REFLEC.npy +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Si05deg_p.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Si05deg_s.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/SiO205deg_p.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/SiO205deg_s.xf1f2.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/W25A_10kev_p.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/W25A_10kev_s.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/WSi100_45A40.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/WSi45A04.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/WSi45_100A40.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/Zn_absCoeff.xcrosssec.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-Reflectivities/mLScCr-spph.mlayer.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi111_thick_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/bSi333_thick_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi111_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/btSi333_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/graphite002_mosaic04_03kev.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/graphite002_mosaic04_08kev.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/graphite002_mosaic04_17kev.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi111_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/lSi333_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi111_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_007mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_-5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_-5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_-5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_-5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_0_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_0_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_0_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_0_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_5_p.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_5_p.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_5_s.xc.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/XOP-RockingCurves/ltSi333_100mum_5_s.xin.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/info_opencl.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/misc/bessy.dc0.gz +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_coherent_fraction_stack.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_crystals.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_ellipse_2.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_multilayer_transmission.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_oes.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_polygonal_aperture.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_sources.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/tests/raycing/test_undulator_size.py +0 -0
- {xrt-1.5.0/tests/speed → xrt-1.6.1/xrt/backends}/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/dummy.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/OE.cl +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/data/AtomicData.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/data/f0_xop.dat +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/diffract.cl +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/physconsts.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/stages.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/undulator.cl +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/xrt_complex_double.cl +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/raycing/xrt_complex_float.cl +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/backends/shadow.py +0 -0
- {xrt-1.5.0/xrt/backends → xrt-1.6.1/xrt/gui}/__init__.py +0 -0
- {xrt-1.5.0/xrt/gui → xrt-1.6.1/xrt/gui/commons}/__init__.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/1-LEG_profile-adhoc.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/1-LEG_profile-default.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ePos=0.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ePos=1.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ePos=2.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_glow.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p02.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p03a.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p03b.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p03c.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/ex03_p03d.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/filterFootprint2_I400mum.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/filterFootprint2_I400mum_norm1.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/filterFootprint2_I400mum_norm2.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/invertColorMap=0_negative=0.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/invertColorMap=0_negative=1.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/invertColorMap=1_negative=0.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/invertColorMap=1_negative=1.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/negative=1+fullNegative.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/offset0.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/offset5000.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/outline00.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/outline05.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/outline10.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookSplash2.gif +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor01.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor02.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor03.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor04.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor05.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor06.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor07.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor08.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor09.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor10.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_images/qookTutor11.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/layout.html +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/page.html +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/static/default.css_t +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/static/math_config_win32.js +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/static/utils.js +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/_themes/qook/theme.conf +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/conf.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/commons/gl.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtGlow/_icons/icon-GLow.ico +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/GPU4.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add1.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add2.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add3.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add4.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add5.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/add6.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/dialog-information.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/dialog-question.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/eyeglasses7_128.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/filenew.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/fileopen.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/filesave.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/filesaveas.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/home.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/index.txt +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/light_bulb.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/logo-xrtQt.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/pythonscript.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/pythonscriptsave.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/pythonscriptsaveas.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/readme.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/run.png +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/gui/xrtQook/_icons/xrQt1.ico +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/kde.py +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt/xrt_logo.ico +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt.egg-info/dependency_links.txt +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt.egg-info/not-zip-safe +0 -0
- {xrt-1.5.0 → xrt-1.6.1}/xrt.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,906 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
from __future__ import division, print_function
|
|
3
|
+
import xrt.backends.raycing.myopencl as mcl
|
|
4
|
+
import xrt.backends.raycing as raycing
|
|
5
|
+
from scipy.integrate import ode
|
|
6
|
+
from .ttcrystal import TTcrystal
|
|
7
|
+
from .quantity import Quantity
|
|
8
|
+
from .ttscan import TTscan
|
|
9
|
+
import matplotlib.pyplot as plt
|
|
10
|
+
import multiprocessing as multiprocess
|
|
11
|
+
import numpy as np
|
|
12
|
+
import time
|
|
13
|
+
# import xraylib
|
|
14
|
+
import sys
|
|
15
|
+
sys.path.append(r"../../../")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class TakagiTaupin:
|
|
19
|
+
|
|
20
|
+
'''
|
|
21
|
+
The main class of the pyTTE package to calculate the 1D Takagi-Taupin
|
|
22
|
+
curves of bent crystals.
|
|
23
|
+
|
|
24
|
+
Parameters
|
|
25
|
+
----------
|
|
26
|
+
TTcrystal_object : TTcrystal or str
|
|
27
|
+
An existing TTcrystal instance for crystal parameters or a path to
|
|
28
|
+
a file where they are defined. For any other types the crystal
|
|
29
|
+
parameters are not set.
|
|
30
|
+
|
|
31
|
+
TTscan_object : TTscan or str
|
|
32
|
+
An existing TTscan instance for scan parameters or a path to a file
|
|
33
|
+
where they are defined. For any other types the scan parameters are
|
|
34
|
+
not set.
|
|
35
|
+
|
|
36
|
+
Attributes
|
|
37
|
+
----------
|
|
38
|
+
crystal_object : TTcrystal
|
|
39
|
+
Contains the crystal and deformation parameters
|
|
40
|
+
|
|
41
|
+
scan_object : TTscan
|
|
42
|
+
Contains the scan parameters and the solver settings
|
|
43
|
+
|
|
44
|
+
solution : dict
|
|
45
|
+
Stores the result of the TakagiTaupin.run(). Has the following keys:
|
|
46
|
+
|
|
47
|
+
scan : Quantity of type energy or angle
|
|
48
|
+
The scanned energy or angle points.
|
|
49
|
+
|
|
50
|
+
beta : Numpy array
|
|
51
|
+
The scanned points given in terms of deviation from the
|
|
52
|
+
kinematical Bragg condition i.e.
|
|
53
|
+
beta = h*(sin theta - lambda/2*d_h)
|
|
54
|
+
|
|
55
|
+
bragg_energy : Quantity of type energy
|
|
56
|
+
Energy of incident photons at beta = 0
|
|
57
|
+
|
|
58
|
+
bragg_angle : Quantity of type angle
|
|
59
|
+
Angle between the incident beam and the diffraction planes
|
|
60
|
+
at beta = 0
|
|
61
|
+
|
|
62
|
+
geometry : str
|
|
63
|
+
Either 'bragg' for reflection geometry or 'laue' for
|
|
64
|
+
transmission geometry
|
|
65
|
+
|
|
66
|
+
reflectivity : Numpy array (present if geometry == 'bragg')
|
|
67
|
+
The reflectivity of the crystal for each scan point.
|
|
68
|
+
|
|
69
|
+
transmission : Numpy array (present if geometry == 'bragg')
|
|
70
|
+
The transmission though the crystal for each scan point
|
|
71
|
+
|
|
72
|
+
diffraction : Numpy array (present if geometry == 'laue')
|
|
73
|
+
The diffracted beam for each scan point
|
|
74
|
+
|
|
75
|
+
forward_diffraction : Numpy array (present if geometry == 'laue')
|
|
76
|
+
The forward diffracted (transmitted beam) for each scan point.
|
|
77
|
+
|
|
78
|
+
output_type : str
|
|
79
|
+
'intensity' if output reflectivity/diffractivity/transmission
|
|
80
|
+
are given in terms of wave intensities or 'photon_flux' if
|
|
81
|
+
in terms of photon fluxes.
|
|
82
|
+
|
|
83
|
+
crystal_parameters : str
|
|
84
|
+
String representation of self.crystal_object
|
|
85
|
+
|
|
86
|
+
scan_parameters : str
|
|
87
|
+
String representation of self.scan_object
|
|
88
|
+
|
|
89
|
+
solver_output_log : str
|
|
90
|
+
Logged stdout output of self.run().
|
|
91
|
+
|
|
92
|
+
'''
|
|
93
|
+
|
|
94
|
+
##############################
|
|
95
|
+
# Methods for initialization #
|
|
96
|
+
##############################
|
|
97
|
+
|
|
98
|
+
def __init__(self, TTcrystal_object=None, TTscan_object=None):
|
|
99
|
+
|
|
100
|
+
self.crystal_object = None
|
|
101
|
+
self.scan_object = None
|
|
102
|
+
self.solution = None
|
|
103
|
+
|
|
104
|
+
self.set_crystal(TTcrystal_object)
|
|
105
|
+
self.set_scan(TTscan_object)
|
|
106
|
+
|
|
107
|
+
def set_crystal(self, TTcrystal_object):
|
|
108
|
+
'''
|
|
109
|
+
Sets the crystal parameters for the scan instance. Any existing
|
|
110
|
+
solutions are cleared.
|
|
111
|
+
|
|
112
|
+
Parameters
|
|
113
|
+
----------
|
|
114
|
+
|
|
115
|
+
TTcrystal_object : TTcrystal or str
|
|
116
|
+
An existing TTcrystal instance for crystal parameters or a path to
|
|
117
|
+
a file where they are defined. For any other types the crystal
|
|
118
|
+
parameters are not set and the solution is not cleared.
|
|
119
|
+
'''
|
|
120
|
+
|
|
121
|
+
if isinstance(TTcrystal_object, TTcrystal):
|
|
122
|
+
self.crystal_object = TTcrystal_object
|
|
123
|
+
self.solution = None
|
|
124
|
+
elif type(TTcrystal_object) == str:
|
|
125
|
+
try:
|
|
126
|
+
self.crystal_object = TTcrystal(TTcrystal_object)
|
|
127
|
+
self.solution = None
|
|
128
|
+
except Exception as e:
|
|
129
|
+
print(e)
|
|
130
|
+
print('Error initializing TTcrystal from file! '
|
|
131
|
+
'Crystal not set.')
|
|
132
|
+
else:
|
|
133
|
+
print('ERROR! Not an instance of TTcrystal or None! '
|
|
134
|
+
'Crystal not set.')
|
|
135
|
+
|
|
136
|
+
def set_scan(self, TTscan_object):
|
|
137
|
+
'''
|
|
138
|
+
Sets the crystal parameters for the scan instance. Any existing
|
|
139
|
+
solutions are cleared.
|
|
140
|
+
|
|
141
|
+
Parameters
|
|
142
|
+
----------
|
|
143
|
+
|
|
144
|
+
TTscan_object : TTscan or str
|
|
145
|
+
An existing TTscan instance for scan parameters or a path to a file
|
|
146
|
+
where they are defined. For any other types the scan parameters are
|
|
147
|
+
not set and the solution is not cleared.
|
|
148
|
+
'''
|
|
149
|
+
|
|
150
|
+
if isinstance(TTscan_object, TTscan):
|
|
151
|
+
self.scan_object = TTscan_object
|
|
152
|
+
self.solution = None
|
|
153
|
+
elif type(TTscan_object) == str:
|
|
154
|
+
try:
|
|
155
|
+
self.scan_object = TTscan(TTscan_object)
|
|
156
|
+
self.solution = None
|
|
157
|
+
except Exception as e:
|
|
158
|
+
print(e)
|
|
159
|
+
print('Error initializing TTscan from file! Scan not set.')
|
|
160
|
+
else:
|
|
161
|
+
print('ERROR! Not an instance of TTscan or None! Scan not set.')
|
|
162
|
+
|
|
163
|
+
####################################
|
|
164
|
+
# Auxiliary methods for TT solving #
|
|
165
|
+
####################################
|
|
166
|
+
|
|
167
|
+
@staticmethod
|
|
168
|
+
def calculate_structure_factors(crystal, hkl, energy, debye_waller):
|
|
169
|
+
'''
|
|
170
|
+
Calculates the structure factors F_0 F_h and F_bar{h}.
|
|
171
|
+
|
|
172
|
+
Parameters
|
|
173
|
+
----------
|
|
174
|
+
|
|
175
|
+
crystal : dict
|
|
176
|
+
Dictionary returned by xraylib's Crystal_GetCrystal()
|
|
177
|
+
|
|
178
|
+
hkl : list of ints
|
|
179
|
+
3 element list containing the Miller indeces of the reflection
|
|
180
|
+
|
|
181
|
+
energy : Quantity instance of type energy.
|
|
182
|
+
Energy of photons. energy.values be a single number or an array
|
|
183
|
+
|
|
184
|
+
debye_waller : float
|
|
185
|
+
The Debye-Waller factor
|
|
186
|
+
'''
|
|
187
|
+
|
|
188
|
+
energy_in_keV = energy.in_units('keV')
|
|
189
|
+
|
|
190
|
+
# preserve the original shape and reshape energy to 1d array
|
|
191
|
+
orig_shape = energy_in_keV.shape
|
|
192
|
+
energy_in_keV = energy_in_keV.reshape(-1)
|
|
193
|
+
|
|
194
|
+
F0 = np.zeros(energy_in_keV.shape, dtype=np.complex128)
|
|
195
|
+
Fh = np.zeros(energy_in_keV.shape, dtype=np.complex128)
|
|
196
|
+
Fb = np.zeros(energy_in_keV.shape, dtype=np.complex128)
|
|
197
|
+
|
|
198
|
+
# for i in range(energy_in_keV.size):
|
|
199
|
+
# F0[i] = xraylib.Crystal_F_H_StructureFactor(
|
|
200
|
+
# crystal, energy_in_keV[i], 0, 0, 0, 1.0, 1.0)
|
|
201
|
+
# Fh[i] = xraylib.Crystal_F_H_StructureFactor(
|
|
202
|
+
# crystal, energy_in_keV[i], hkl[0], hkl[1], hkl[2],
|
|
203
|
+
# debye_waller, 1.0)
|
|
204
|
+
# Fb[i] = xraylib.Crystal_F_H_StructureFactor(
|
|
205
|
+
# crystal, energy_in_keV[i], -hkl[0], -hkl[1], -hkl[2],
|
|
206
|
+
# debye_waller, 1.0)
|
|
207
|
+
d = crystal.d
|
|
208
|
+
F0, Fh, Fb = crystal.get_F_chi(energy_in_keV*1000,
|
|
209
|
+
0.5/d)[:3]
|
|
210
|
+
|
|
211
|
+
return F0.reshape(orig_shape), Fh.reshape(orig_shape), \
|
|
212
|
+
Fb.reshape(orig_shape)
|
|
213
|
+
|
|
214
|
+
def run(self):
|
|
215
|
+
'''
|
|
216
|
+
Calculates the 1D Takagi-Taupin curve for given TTcrystal and TTscan
|
|
217
|
+
given to the instance. Stores the result and metadata in self.solution.
|
|
218
|
+
|
|
219
|
+
Returns
|
|
220
|
+
-------
|
|
221
|
+
|
|
222
|
+
#In the Bragg (reflection) geometry#
|
|
223
|
+
|
|
224
|
+
scan.value : 1D Numpy array
|
|
225
|
+
|
|
226
|
+
reflectivity : 1D Numpy array
|
|
227
|
+
|
|
228
|
+
transmission : 1D Numpy array
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
#In the Laue (transmission) geometry#
|
|
232
|
+
|
|
233
|
+
scan.value : 1D Numpy array
|
|
234
|
+
|
|
235
|
+
diffraction : 1D Numpy array
|
|
236
|
+
|
|
237
|
+
forward_diffraction : 1D Numpy array
|
|
238
|
+
|
|
239
|
+
'''
|
|
240
|
+
|
|
241
|
+
# Check that the required scan parameters are in place
|
|
242
|
+
if self.crystal_object is None:
|
|
243
|
+
print('ERROR! No crystal data found, TTcrystal object needed.')
|
|
244
|
+
return
|
|
245
|
+
if self.scan_object is None:
|
|
246
|
+
print('ERROR! No scan data found, TTscan object needed.')
|
|
247
|
+
return
|
|
248
|
+
|
|
249
|
+
# define a function for logging the input
|
|
250
|
+
def print_and_log(printable, log_string):
|
|
251
|
+
'''
|
|
252
|
+
Prints the input in stdout and appends it to log_string.
|
|
253
|
+
|
|
254
|
+
Parameters
|
|
255
|
+
----------
|
|
256
|
+
printable
|
|
257
|
+
Object to be printed
|
|
258
|
+
log_string
|
|
259
|
+
String to append the stdout to.
|
|
260
|
+
|
|
261
|
+
Returns
|
|
262
|
+
-------
|
|
263
|
+
new_log_string
|
|
264
|
+
String that was printed on the screen appended to log_string
|
|
265
|
+
|
|
266
|
+
'''
|
|
267
|
+
print_str = str(printable)
|
|
268
|
+
print(print_str)
|
|
269
|
+
return log_string + print_str + '\n'
|
|
270
|
+
|
|
271
|
+
output_log = ''
|
|
272
|
+
verbose_output = True
|
|
273
|
+
|
|
274
|
+
startmsg = '\nSolving the 1D Takagi-Taupin equation for '\
|
|
275
|
+
+ self.crystal_object.crystal_data['name']\
|
|
276
|
+
+ '(' + str(self.crystal_object.hkl[0]) + ','\
|
|
277
|
+
+ str(self.crystal_object.hkl[1]) + ','\
|
|
278
|
+
+ str(self.crystal_object.hkl[2]) + ')'\
|
|
279
|
+
+ ' reflection'
|
|
280
|
+
|
|
281
|
+
output_log = print_and_log(startmsg, output_log)
|
|
282
|
+
output_log = print_and_log('-' * len(startmsg) + '\n', output_log)
|
|
283
|
+
|
|
284
|
+
################################################
|
|
285
|
+
# Calculate the constants needed by TT-equations#
|
|
286
|
+
################################################
|
|
287
|
+
|
|
288
|
+
# Introduction of shorthands
|
|
289
|
+
# crystal = self.crystal_object.crystal_data
|
|
290
|
+
hkl = self.crystal_object.hkl
|
|
291
|
+
phi = self.crystal_object.asymmetry
|
|
292
|
+
thickness = self.crystal_object.thickness
|
|
293
|
+
|
|
294
|
+
debye_waller = self.crystal_object.debye_waller
|
|
295
|
+
displacement_jacobian = self.crystal_object.displacement_jacobian
|
|
296
|
+
djparams = None if self.crystal_object.Rx.value == float(
|
|
297
|
+
'inf') else self.crystal_object.djparams
|
|
298
|
+
|
|
299
|
+
scan_type = self.scan_object.scantype
|
|
300
|
+
scan_constant = self.scan_object.constant
|
|
301
|
+
scan_points = self.scan_object.scan
|
|
302
|
+
polarization = self.scan_object.polarization
|
|
303
|
+
|
|
304
|
+
# Planck's constant * speed of light
|
|
305
|
+
hc = Quantity(1.23984193, 'eV um')
|
|
306
|
+
# d = Quantity(xraylib.Crystal_dSpacing(crystal,*hkl),'A') #spacing of Bragg planes
|
|
307
|
+
d = Quantity(self.crystal_object.xrt_crystal.d, 'A')
|
|
308
|
+
# V = Quantity(crystal['volume'],'A^3') #volume of unit cell
|
|
309
|
+
V = Quantity(self.crystal_object.xrt_crystal.get_a()**3, 'A^3')
|
|
310
|
+
# print("d", d, "V", V)
|
|
311
|
+
r_e = Quantity(2.81794033e-15, 'm') # classical electron radius
|
|
312
|
+
h = 2*np.pi/d # length of reciprocal lattice vector
|
|
313
|
+
|
|
314
|
+
# Energies and angles corresponding to the constant parameter and its
|
|
315
|
+
# counterpart given by Bragg's law
|
|
316
|
+
if scan_type == 'energy':
|
|
317
|
+
theta_bragg = scan_constant
|
|
318
|
+
energy_bragg = hc/(2*d*np.sin(theta_bragg.in_units('rad')))
|
|
319
|
+
else:
|
|
320
|
+
energy_bragg = scan_constant
|
|
321
|
+
if not (hc/(2*d*energy_bragg)).in_units('1') > 1:
|
|
322
|
+
theta_bragg = Quantity(
|
|
323
|
+
np.arcsin((hc/(2*d*energy_bragg)).in_units('1')), 'rad')
|
|
324
|
+
else:
|
|
325
|
+
output_log = print_and_log(
|
|
326
|
+
'Given energy below the backscattering energy!',
|
|
327
|
+
output_log)
|
|
328
|
+
output_log = print_and_log(
|
|
329
|
+
'Setting theta to 90 deg.', output_log)
|
|
330
|
+
|
|
331
|
+
theta_bragg = Quantity(90, 'deg')
|
|
332
|
+
|
|
333
|
+
if scan_points[0] == 'automatic':
|
|
334
|
+
|
|
335
|
+
################################################
|
|
336
|
+
# Estimate the optimal scan limits automatically#
|
|
337
|
+
################################################
|
|
338
|
+
|
|
339
|
+
F0, Fh, Fb = TakagiTaupin.calculate_structure_factors(
|
|
340
|
+
self.crystal_object.xrt_crystal, hkl, energy_bragg,
|
|
341
|
+
debye_waller)
|
|
342
|
+
|
|
343
|
+
# conversion factor from crystal structure factor to susceptibility
|
|
344
|
+
cte = -(r_e * (hc/energy_bragg)**2/(np.pi * V)).in_units('1')
|
|
345
|
+
|
|
346
|
+
chi0 = np.conj(cte*F0)
|
|
347
|
+
chih = np.conj(cte*Fh)
|
|
348
|
+
chib = np.conj(cte*Fb)
|
|
349
|
+
|
|
350
|
+
gamma0 = 1/np.sin((theta_bragg+phi).in_units('rad'))
|
|
351
|
+
gammah = 1/np.sin((theta_bragg-phi).in_units('rad'))
|
|
352
|
+
|
|
353
|
+
# Find the (rough) maximum and minimum of the deformation term
|
|
354
|
+
if displacement_jacobian is not None:
|
|
355
|
+
z = np.linspace(0, -thickness.in_units('um'), 1000)
|
|
356
|
+
x = -z*np.cos((theta_bragg+phi).in_units('rad')) / \
|
|
357
|
+
np.sin((theta_bragg+phi).in_units('rad'))
|
|
358
|
+
|
|
359
|
+
sin_phi = np.sin(phi.in_units('rad'))
|
|
360
|
+
cos_phi = np.cos(phi.in_units('rad'))
|
|
361
|
+
sin_alphah = np.sin((theta_bragg-phi).in_units('rad'))
|
|
362
|
+
cos_alphah = np.cos((theta_bragg-phi).in_units('rad'))
|
|
363
|
+
|
|
364
|
+
u_jac = displacement_jacobian(x[0], z[0])
|
|
365
|
+
h_um = h.in_units('um^-1')
|
|
366
|
+
|
|
367
|
+
def_min = h_um*(sin_phi*cos_alphah*u_jac[0][0]
|
|
368
|
+
+ sin_phi*sin_alphah*u_jac[0][1]
|
|
369
|
+
+ cos_phi*cos_alphah*u_jac[1][0]
|
|
370
|
+
+ cos_phi*sin_alphah*u_jac[1][1])
|
|
371
|
+
def_max = def_min
|
|
372
|
+
|
|
373
|
+
for i in range(1, z.size):
|
|
374
|
+
u_jac = displacement_jacobian(x[i], z[i])
|
|
375
|
+
|
|
376
|
+
deform = h_um*(sin_phi*cos_alphah*u_jac[0][0]
|
|
377
|
+
+ sin_phi*sin_alphah*u_jac[0][1]
|
|
378
|
+
+ cos_phi*cos_alphah*u_jac[1][0]
|
|
379
|
+
+ cos_phi*sin_alphah*u_jac[1][1])
|
|
380
|
+
if deform < def_min:
|
|
381
|
+
def_min = deform
|
|
382
|
+
if deform > def_max:
|
|
383
|
+
def_max = deform
|
|
384
|
+
else:
|
|
385
|
+
def_min = 0.0
|
|
386
|
+
def_max = 0.0
|
|
387
|
+
|
|
388
|
+
# expand the range by the backscatter Darwin width
|
|
389
|
+
if np.sin(2*theta_bragg.in_units('rad')) > \
|
|
390
|
+
np.sqrt(2*np.sqrt(np.abs(chih*chib))):
|
|
391
|
+
darwin_width_term = 2*np.sqrt(np.abs(chih*chib))/np.sin(
|
|
392
|
+
2*theta_bragg.in_units('rad'))*h*np.cos(
|
|
393
|
+
theta_bragg.in_units('rad'))
|
|
394
|
+
else:
|
|
395
|
+
darwin_width_term = np.sqrt(
|
|
396
|
+
2*np.sqrt(np.abs(chih*chib)))*h*np.cos(
|
|
397
|
+
theta_bragg.in_units('rad'))
|
|
398
|
+
|
|
399
|
+
k_bragg = 2*np.pi*energy_bragg/hc
|
|
400
|
+
b_const_term = -0.5*k_bragg*(1 + gamma0/gammah)*np.real(chi0)
|
|
401
|
+
|
|
402
|
+
beta_min = b_const_term - \
|
|
403
|
+
Quantity(def_max, 'um^-1') - 2*darwin_width_term
|
|
404
|
+
beta_max = b_const_term - \
|
|
405
|
+
Quantity(def_min, 'um^-1') + 2*darwin_width_term
|
|
406
|
+
|
|
407
|
+
# convert beta limits to scan vectors
|
|
408
|
+
if scan_type == 'energy':
|
|
409
|
+
energy_min = beta_min*energy_bragg / \
|
|
410
|
+
(h*np.sin(theta_bragg.in_units('rad')))
|
|
411
|
+
energy_max = beta_max*energy_bragg / \
|
|
412
|
+
(h*np.sin(theta_bragg.in_units('rad')))
|
|
413
|
+
|
|
414
|
+
output_log = print_and_log(
|
|
415
|
+
'Using automatically determined scan limits:', output_log)
|
|
416
|
+
output_log = print_and_log(
|
|
417
|
+
'E min: ' + str(energy_min.in_units('meV')) + ' meV',
|
|
418
|
+
output_log)
|
|
419
|
+
output_log = print_and_log(
|
|
420
|
+
'E max: ' + str(energy_max.in_units('meV')) + ' meV\n',
|
|
421
|
+
output_log)
|
|
422
|
+
|
|
423
|
+
scan = Quantity(np.linspace(energy_min.in_units(
|
|
424
|
+
'meV'), energy_max.in_units('meV'), scan_points[1]), 'meV')
|
|
425
|
+
scan_steps = scan.value.size
|
|
426
|
+
scan_shape = scan.value.shape
|
|
427
|
+
else:
|
|
428
|
+
sin_th_min = np.sin(theta_bragg.in_units(
|
|
429
|
+
'rad'))+(beta_min/h).in_units('1')
|
|
430
|
+
sin_th_max = np.sin(theta_bragg.in_units(
|
|
431
|
+
'rad'))+(beta_max/h).in_units('1')
|
|
432
|
+
|
|
433
|
+
theta_min = Quantity(np.arcsin(sin_th_min), 'rad')-theta_bragg
|
|
434
|
+
|
|
435
|
+
# This avoids taking arcsin of values over 1
|
|
436
|
+
if sin_th_max > 1:
|
|
437
|
+
# Mirror the theta range w.t.r. 90 deg
|
|
438
|
+
theta_max = Quantity(
|
|
439
|
+
np.pi-np.arcsin(sin_th_min), 'rad')-theta_bragg
|
|
440
|
+
else:
|
|
441
|
+
theta_max = Quantity(
|
|
442
|
+
np.arcsin(sin_th_max), 'rad')-theta_bragg
|
|
443
|
+
|
|
444
|
+
output_log = print_and_log(
|
|
445
|
+
'Using automatically determined scan limits:', output_log)
|
|
446
|
+
output_log = print_and_log(
|
|
447
|
+
'Theta min: ' + str(theta_min.in_units('urad')) + ' urad',
|
|
448
|
+
output_log)
|
|
449
|
+
output_log = print_and_log(
|
|
450
|
+
'Theta max: ' + str(theta_max.in_units('urad')) + ' urad\n',
|
|
451
|
+
output_log)
|
|
452
|
+
|
|
453
|
+
scan = Quantity(np.linspace(
|
|
454
|
+
theta_min.in_units('urad'), theta_max.in_units('urad'),
|
|
455
|
+
scan_points[1]), 'urad')
|
|
456
|
+
scan_steps = scan.value.size
|
|
457
|
+
scan_shape = scan.value.shape
|
|
458
|
+
else:
|
|
459
|
+
# Use the scan limits given by the user
|
|
460
|
+
scan = scan_points[1]
|
|
461
|
+
scan_steps = scan.value.size
|
|
462
|
+
scan_shape = scan.value.shape
|
|
463
|
+
|
|
464
|
+
# Convert relative scans to absolute energies or incidence angles
|
|
465
|
+
if scan_type == 'energy':
|
|
466
|
+
theta = theta_bragg
|
|
467
|
+
energy = energy_bragg + scan
|
|
468
|
+
else:
|
|
469
|
+
energy = energy_bragg
|
|
470
|
+
theta = theta_bragg + scan
|
|
471
|
+
|
|
472
|
+
# Wavelength and wavenumber
|
|
473
|
+
wavelength = hc/energy
|
|
474
|
+
k = 2*np.pi/wavelength
|
|
475
|
+
|
|
476
|
+
# Incidence and exit angles
|
|
477
|
+
alpha0 = theta+phi
|
|
478
|
+
alphah = theta-phi
|
|
479
|
+
|
|
480
|
+
# Direction parameters
|
|
481
|
+
gamma0 = np.ones(scan_shape)/np.sin(alpha0.in_units('rad'))
|
|
482
|
+
gammah = np.ones(scan_shape)/np.sin(alphah.in_units('rad'))
|
|
483
|
+
|
|
484
|
+
if np.mean(gammah) < 0:
|
|
485
|
+
output_log = print_and_log(
|
|
486
|
+
'The direction of diffraction in to the crystal -> Laue case',
|
|
487
|
+
output_log)
|
|
488
|
+
geometry = 'laue'
|
|
489
|
+
else:
|
|
490
|
+
output_log = print_and_log(
|
|
491
|
+
'The direction of diffraction out of the crystal -> Bragg case',
|
|
492
|
+
output_log)
|
|
493
|
+
geometry = 'bragg'
|
|
494
|
+
|
|
495
|
+
# Polarization factor
|
|
496
|
+
if polarization == 'sigma':
|
|
497
|
+
C = 1
|
|
498
|
+
output_log = print_and_log(
|
|
499
|
+
'Solving for sigma-polarization', output_log)
|
|
500
|
+
else:
|
|
501
|
+
C = np.cos(2*theta.in_units('rad'))
|
|
502
|
+
output_log = print_and_log(
|
|
503
|
+
'Solving for pi-polarization', output_log)
|
|
504
|
+
if verbose_output:
|
|
505
|
+
output_log = print_and_log(
|
|
506
|
+
'Asymmetry angle : ' + str(phi.in_units('deg')) + ' deg',
|
|
507
|
+
output_log)
|
|
508
|
+
output_log = print_and_log(
|
|
509
|
+
'Wavelength : ' + str((hc/energy_bragg).in_units('nm')) +
|
|
510
|
+
' nm', output_log)
|
|
511
|
+
output_log = print_and_log(
|
|
512
|
+
'Energy : ' + str(energy_bragg.in_units('keV')) +
|
|
513
|
+
' keV', output_log)
|
|
514
|
+
output_log = print_and_log(
|
|
515
|
+
'Bragg angle : ' + str(theta_bragg.in_units('deg')) +
|
|
516
|
+
' deg', output_log)
|
|
517
|
+
output_log = print_and_log(
|
|
518
|
+
'Incidence angle : ' + str((theta_bragg+phi).in_units('deg')) +
|
|
519
|
+
' deg', output_log)
|
|
520
|
+
output_log = print_and_log(
|
|
521
|
+
'Exit angle : ' + str((theta_bragg-phi).in_units('deg')) +
|
|
522
|
+
' deg\n', output_log)
|
|
523
|
+
|
|
524
|
+
# Compute susceptibilities
|
|
525
|
+
F0, Fh, Fb = TakagiTaupin.calculate_structure_factors(
|
|
526
|
+
self.crystal_object.xrt_crystal, hkl, energy, debye_waller)
|
|
527
|
+
|
|
528
|
+
# conversion factor from crystal structure factor to susceptibility
|
|
529
|
+
cte = -(r_e * (hc/energy_bragg)**2/(np.pi * V)).in_units('1')
|
|
530
|
+
|
|
531
|
+
chi0 = np.conj(cte*F0)
|
|
532
|
+
chih = np.conj(cte*Fh)
|
|
533
|
+
chib = np.conj(cte*Fb)
|
|
534
|
+
if verbose_output:
|
|
535
|
+
output_log = print_and_log('Structure factors', output_log)
|
|
536
|
+
output_log = print_and_log(
|
|
537
|
+
'F0 : ' + str(np.mean(F0)), output_log)
|
|
538
|
+
output_log = print_and_log(
|
|
539
|
+
'Fh : ' + str(np.mean(Fh)), output_log)
|
|
540
|
+
output_log = print_and_log(
|
|
541
|
+
'Fb : ' + str(np.mean(Fb))+'\n', output_log)
|
|
542
|
+
output_log = print_and_log('Susceptibilities', output_log)
|
|
543
|
+
output_log = print_and_log(
|
|
544
|
+
'chi0 : ' + str(np.mean(chi0)), output_log)
|
|
545
|
+
output_log = print_and_log(
|
|
546
|
+
'chih : ' + str(np.mean(chih)), output_log)
|
|
547
|
+
output_log = print_and_log(
|
|
548
|
+
'chib : ' + str(np.mean(chib))+'\n', output_log)
|
|
549
|
+
output_log = print_and_log(
|
|
550
|
+
'(Mean F and chi values for energy scan)\n', output_log)
|
|
551
|
+
|
|
552
|
+
######################
|
|
553
|
+
# COEFFICIENTS FOR TTE#
|
|
554
|
+
######################
|
|
555
|
+
|
|
556
|
+
# For solving ksi = Dh/D0
|
|
557
|
+
c0 = 0.5*k*chi0*(gamma0+gammah)*np.ones(scan_shape)
|
|
558
|
+
ch = 0.5*k*C*chih*gammah*np.ones(scan_shape)
|
|
559
|
+
cb = 0.5*k*C*chib*gamma0*np.ones(scan_shape)
|
|
560
|
+
|
|
561
|
+
# For solving Y = D0
|
|
562
|
+
g0 = 0.5*k*chi0*gamma0*np.ones(scan_shape)
|
|
563
|
+
gb = 0.5*k*C*chib*gamma0*np.ones(scan_shape)
|
|
564
|
+
|
|
565
|
+
# Deviation from the kinematical Bragg condition for unstrained crystal
|
|
566
|
+
# To avoid catastrophic cancellation, the terms in the subtraction are
|
|
567
|
+
# explicitly casted to 64 bit floats.
|
|
568
|
+
beta_term1 = np.sin(theta.in_units('rad')).astype(np.float64)
|
|
569
|
+
beta_term2 = wavelength.in_units('nm').astype(np.float64)
|
|
570
|
+
beta_term3 = (2*d.in_units('nm')).astype(np.float64)
|
|
571
|
+
|
|
572
|
+
beta = h*gammah*(beta_term1 - beta_term2/beta_term3).astype(np.float64)
|
|
573
|
+
|
|
574
|
+
#############
|
|
575
|
+
# INTEGRATION#
|
|
576
|
+
#############
|
|
577
|
+
|
|
578
|
+
# Define ODEs and their Jacobians
|
|
579
|
+
if geometry == 'bragg':
|
|
580
|
+
output_log = print_and_log(
|
|
581
|
+
'Transmission in the Bragg case not implemented!', output_log)
|
|
582
|
+
reflectivity = np.zeros(scan_shape)
|
|
583
|
+
transmission = -np.ones(scan_shape)
|
|
584
|
+
else:
|
|
585
|
+
forward_diffraction = np.zeros(scan_shape)
|
|
586
|
+
diffraction = np.zeros(scan_shape)
|
|
587
|
+
|
|
588
|
+
# Fix the length scale to microns for solving
|
|
589
|
+
c0 = c0.in_units('um^-1')
|
|
590
|
+
ch = ch.in_units('um^-1')
|
|
591
|
+
cb = cb.in_units('um^-1')
|
|
592
|
+
g0 = g0.in_units('um^-1')
|
|
593
|
+
gb = gb.in_units('um^-1')
|
|
594
|
+
beta = beta.in_units('um^-1')
|
|
595
|
+
h = h.in_units('um^-1')
|
|
596
|
+
thickness = thickness.in_units('um')
|
|
597
|
+
|
|
598
|
+
def integrate_single_scan_step(step):
|
|
599
|
+
global output_log
|
|
600
|
+
# local variables for speedup
|
|
601
|
+
c0_step = c0[step]
|
|
602
|
+
cb_step = cb[step]
|
|
603
|
+
ch_step = ch[step]
|
|
604
|
+
beta_step = beta[step]
|
|
605
|
+
g0_step = g0[step]
|
|
606
|
+
gb_step = gb[step]
|
|
607
|
+
gammah_step = gammah[step]
|
|
608
|
+
|
|
609
|
+
if djparams is not None:
|
|
610
|
+
coef1 = djparams[0]
|
|
611
|
+
coef2 = djparams[1]
|
|
612
|
+
invR1 = djparams[2]
|
|
613
|
+
|
|
614
|
+
# Define deformation term for bent crystal
|
|
615
|
+
if displacement_jacobian is not None:
|
|
616
|
+
# Precomputed sines and cosines
|
|
617
|
+
sin_phi = np.sin(phi.in_units('rad'))
|
|
618
|
+
cos_phi = np.cos(phi.in_units('rad'))
|
|
619
|
+
|
|
620
|
+
if scan_type == 'energy':
|
|
621
|
+
cot_alpha0 = np.cos(alpha0.in_units(
|
|
622
|
+
'rad'))/np.sin(alpha0.in_units('rad'))
|
|
623
|
+
sin_alphah = np.sin(alphah.in_units('rad'))
|
|
624
|
+
cos_alphah = np.cos(alphah.in_units('rad'))
|
|
625
|
+
else:
|
|
626
|
+
cot_alpha0 = np.cos(alpha0.in_units(
|
|
627
|
+
'rad')[step])/np.sin(alpha0.in_units('rad')[step])
|
|
628
|
+
sin_alphah = np.sin(alphah.in_units('rad')[step])
|
|
629
|
+
cos_alphah = np.cos(alphah.in_units('rad')[step])
|
|
630
|
+
|
|
631
|
+
def strain_term(z):
|
|
632
|
+
x = -z*cot_alpha0
|
|
633
|
+
duh_dsh = h*(sin_phi*cos_alphah*(-invR1)*(z+0.5*thickness)
|
|
634
|
+
+ sin_phi*sin_alphah *
|
|
635
|
+
(-invR1*x + coef2*(z+0.5*thickness))
|
|
636
|
+
+ cos_phi*cos_alphah*invR1*x
|
|
637
|
+
+ cos_phi*sin_alphah*coef1*(z+0.5*thickness)
|
|
638
|
+
)
|
|
639
|
+
return gammah_step*duh_dsh
|
|
640
|
+
|
|
641
|
+
def strain_term_remote(z):
|
|
642
|
+
x = -z*cot_alpha0
|
|
643
|
+
u_jac = displacement_jacobian(x, z)
|
|
644
|
+
duh_dsh = h*(sin_phi*cos_alphah*u_jac[0][0]
|
|
645
|
+
+ sin_phi*sin_alphah*u_jac[0][1]
|
|
646
|
+
+ cos_phi*cos_alphah*u_jac[1][0]
|
|
647
|
+
+ cos_phi*sin_alphah*u_jac[1][1]
|
|
648
|
+
)
|
|
649
|
+
return gammah_step*duh_dsh
|
|
650
|
+
else:
|
|
651
|
+
# Non-bent crystal
|
|
652
|
+
def strain_term(z):
|
|
653
|
+
return 0
|
|
654
|
+
|
|
655
|
+
if geometry == 'bragg':
|
|
656
|
+
def ksiprime(z, ksi):
|
|
657
|
+
return 1j*(cb_step*ksi*ksi+(
|
|
658
|
+
c0_step+beta_step+strain_term(z))*ksi+ch_step)
|
|
659
|
+
|
|
660
|
+
def ksiprime_jac(z, ksi):
|
|
661
|
+
return 2j*cb_step*ksi+1j*(c0_step+beta_step+strain_term(z))
|
|
662
|
+
|
|
663
|
+
r = ode(ksiprime, ksiprime_jac)
|
|
664
|
+
else:
|
|
665
|
+
def TTE(z, Y):
|
|
666
|
+
return [1j*(cb_step*Y[0]*Y[0]+(
|
|
667
|
+
c0_step+beta_step+strain_term(z))*Y[0]+ch_step),
|
|
668
|
+
-1j*(g0_step+gb_step*Y[0])*Y[1]]
|
|
669
|
+
|
|
670
|
+
def TTE_jac(z, Y):
|
|
671
|
+
return [[2j*cb_step*Y[0]+1j*(
|
|
672
|
+
c0_step+beta_step+strain_term(z)), 0],
|
|
673
|
+
[-1j*gb_step*Y[1], -1j*(g0_step+gb_step*Y[0])]]
|
|
674
|
+
|
|
675
|
+
r = ode(TTE, TTE_jac)
|
|
676
|
+
|
|
677
|
+
r.set_integrator(
|
|
678
|
+
'zvode', method='bdf', with_jacobian=True,
|
|
679
|
+
min_step=self.scan_object.integration_step.in_units('um'),
|
|
680
|
+
max_step=thickness, nsteps=2500000)
|
|
681
|
+
|
|
682
|
+
# Update the solving process
|
|
683
|
+
lock.acquire()
|
|
684
|
+
steps_calculated.value = steps_calculated.value + 1
|
|
685
|
+
if verbose_output:
|
|
686
|
+
sys.stdout.write('\rSolving...%0.2f%%' %
|
|
687
|
+
(100*(steps_calculated.value)/scan_steps,))
|
|
688
|
+
sys.stdout.flush()
|
|
689
|
+
lock.release()
|
|
690
|
+
|
|
691
|
+
if geometry == 'bragg':
|
|
692
|
+
if self.scan_object.start_depth is not None:
|
|
693
|
+
start_depth = self.scan_object.start_depth.in_units('um')
|
|
694
|
+
if start_depth > 0 or start_depth < -thickness:
|
|
695
|
+
output_log = print_and_log(
|
|
696
|
+
'Warning! The given starting depth ' +
|
|
697
|
+
str(start_depth) +
|
|
698
|
+
'um is outside the crystal!', output_log)
|
|
699
|
+
r.set_initial_value(0, start_depth)
|
|
700
|
+
else:
|
|
701
|
+
r.set_initial_value(0, -thickness)
|
|
702
|
+
|
|
703
|
+
res = r.integrate(0)
|
|
704
|
+
|
|
705
|
+
if self.scan_object.output_type == 'photon_flux':
|
|
706
|
+
reflectivity = np.abs(res[0])**2*gamma0[step]/gammah[step]
|
|
707
|
+
else:
|
|
708
|
+
reflectivity = np.abs(res[0])**2
|
|
709
|
+
|
|
710
|
+
transmission = -1 # Not implemented yet
|
|
711
|
+
|
|
712
|
+
return reflectivity, transmission, np.complex128(res)*np.sqrt(
|
|
713
|
+
np.abs(gamma0[step]/np.abs(gammah[step])))
|
|
714
|
+
else:
|
|
715
|
+
if self.scan_object.start_depth is not None:
|
|
716
|
+
output_log = print_and_log(
|
|
717
|
+
'Warning! The alternative start depth is negleted '
|
|
718
|
+
'in the Laue case.', output_log)
|
|
719
|
+
r.set_initial_value([0, 1], 0)
|
|
720
|
+
res = r.integrate(-thickness)
|
|
721
|
+
if self.scan_object.output_type == 'photon_flux':
|
|
722
|
+
diffraction = np.abs(
|
|
723
|
+
res[0]*res[1])**2*gamma0[step]/np.abs(gammah[step])
|
|
724
|
+
else:
|
|
725
|
+
diffraction = np.abs(res[0]*res[1])**2
|
|
726
|
+
|
|
727
|
+
forward_diffraction = np.abs(res[1])**2
|
|
728
|
+
|
|
729
|
+
return diffraction, forward_diffraction, np.complex128(
|
|
730
|
+
res[0]*res[1]*np.sqrt(
|
|
731
|
+
np.abs(gamma0[step]/np.abs(gammah[step]))))
|
|
732
|
+
|
|
733
|
+
n_cores = multiprocess.cpu_count()
|
|
734
|
+
|
|
735
|
+
output_log = print_and_log(
|
|
736
|
+
'\nCalculating the TT-curve using ' + str(n_cores) + ' cores.',
|
|
737
|
+
output_log)
|
|
738
|
+
|
|
739
|
+
# Solve the equation
|
|
740
|
+
# sys.stdout.write('Solving...0%')
|
|
741
|
+
sys.stdout.flush()
|
|
742
|
+
t0 = time.time()
|
|
743
|
+
|
|
744
|
+
def mp_init(l, v):
|
|
745
|
+
global lock
|
|
746
|
+
global steps_calculated
|
|
747
|
+
lock = l
|
|
748
|
+
steps_calculated = v
|
|
749
|
+
|
|
750
|
+
pool = multiprocess.Pool(n_cores, initializer=mp_init, initargs=(
|
|
751
|
+
multiprocess.Lock(), multiprocess.Value('i', 0)))
|
|
752
|
+
output = np.array(
|
|
753
|
+
pool.map(integrate_single_scan_step, range(scan_steps)))
|
|
754
|
+
pool.close()
|
|
755
|
+
pool.join()
|
|
756
|
+
|
|
757
|
+
sys.stdout.write('\r\nDone.\n')
|
|
758
|
+
sys.stdout.write(
|
|
759
|
+
'\r\nDone. Calculation time is {}s\n'.format(time.time()-t0))
|
|
760
|
+
sys.stdout.flush()
|
|
761
|
+
|
|
762
|
+
if geometry == 'bragg':
|
|
763
|
+
reflectivity = output[:, 0]
|
|
764
|
+
transmission = output[:, 1]
|
|
765
|
+
complex_amps = np.squeeze(np.array(output[:, 2]))
|
|
766
|
+
self.solution = {'scan': scan,
|
|
767
|
+
'beta': beta,
|
|
768
|
+
'bragg_energy': energy_bragg,
|
|
769
|
+
'bragg_angle': theta_bragg,
|
|
770
|
+
'geometry': 'bragg',
|
|
771
|
+
'reflectivity': reflectivity,
|
|
772
|
+
'transmission': transmission,
|
|
773
|
+
'output_type': self.scan_object.output_type,
|
|
774
|
+
'crystal_parameters': str(self.crystal_object),
|
|
775
|
+
'scan_parameters': str(self.scan_object),
|
|
776
|
+
'solver_output_log': output_log
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
return scan.value, reflectivity, transmission, complex_amps
|
|
780
|
+
else:
|
|
781
|
+
diffraction = output[:, 0]
|
|
782
|
+
forward_diffraction = output[:, 1]
|
|
783
|
+
complex_amps = np.squeeze(np.array(output[:, 2]))
|
|
784
|
+
self.solution = {'scan': scan,
|
|
785
|
+
'beta': beta,
|
|
786
|
+
'bragg_energy': energy_bragg,
|
|
787
|
+
'bragg_angle': theta_bragg,
|
|
788
|
+
'geometry': 'laue',
|
|
789
|
+
'diffraction': diffraction,
|
|
790
|
+
'forward_diffraction': forward_diffraction,
|
|
791
|
+
'output_type': self.scan_object.output_type,
|
|
792
|
+
'crystal_parameters': str(self.crystal_object),
|
|
793
|
+
'scan_parameters': str(self.scan_object),
|
|
794
|
+
'solver_output_log': output_log
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
return scan.value, diffraction, forward_diffraction, complex_amps
|
|
798
|
+
|
|
799
|
+
def plot(self):
|
|
800
|
+
'''
|
|
801
|
+
Plots the calculated solution
|
|
802
|
+
'''
|
|
803
|
+
|
|
804
|
+
if self.solution is None:
|
|
805
|
+
print(
|
|
806
|
+
'No calculated Takagi-Taupin curves found! Call run() first!')
|
|
807
|
+
return
|
|
808
|
+
|
|
809
|
+
if self.solution['geometry'] == 'bragg':
|
|
810
|
+
plt.plot(self.solution['scan'].value,
|
|
811
|
+
self.solution['reflectivity'])
|
|
812
|
+
if Quantity._type2str(self.solution['scan'].unit) == 'energy':
|
|
813
|
+
plt.xlabel('Energy (' + self.solution['scan'].units() + ')')
|
|
814
|
+
else:
|
|
815
|
+
plt.xlabel('Angle (' + self.solution['scan'].units() + ')')
|
|
816
|
+
|
|
817
|
+
if self.solution['output_type'] == 'photon_flux':
|
|
818
|
+
plt.ylabel('Reflectivity in terms of photon flux')
|
|
819
|
+
else:
|
|
820
|
+
plt.ylabel('Reflectivity in terms of wave intensity')
|
|
821
|
+
|
|
822
|
+
plt.title('Takagi-Taupin solution in the Bragg case')
|
|
823
|
+
else:
|
|
824
|
+
plt.plot(self.solution['scan'].value,
|
|
825
|
+
self.solution['forward_diffraction'],
|
|
826
|
+
label='Forward-diffraction')
|
|
827
|
+
plt.plot(self.solution['scan'].value,
|
|
828
|
+
self.solution['diffraction'], label='Diffraction')
|
|
829
|
+
|
|
830
|
+
if Quantity._type2str(self.solution['scan'].unit) == 'energy':
|
|
831
|
+
plt.xlabel('Energy (' + self.solution['scan'].units() + ')')
|
|
832
|
+
else:
|
|
833
|
+
plt.xlabel('Angle (' + self.solution['scan'].units() + ')')
|
|
834
|
+
|
|
835
|
+
if self.solution['output_type'] == 'photon_flux':
|
|
836
|
+
plt.ylabel('Photon flux w.r.t incident')
|
|
837
|
+
else:
|
|
838
|
+
plt.ylabel('Intensity w.r.t incident')
|
|
839
|
+
|
|
840
|
+
plt.legend()
|
|
841
|
+
plt.title('Takagi-Taupin solution in the Laue case')
|
|
842
|
+
|
|
843
|
+
plt.show()
|
|
844
|
+
|
|
845
|
+
def save(self, path, include_header=True):
|
|
846
|
+
'''
|
|
847
|
+
Saves the solution to a file.
|
|
848
|
+
|
|
849
|
+
Parameters
|
|
850
|
+
----------
|
|
851
|
+
|
|
852
|
+
path : str
|
|
853
|
+
Path of the save file
|
|
854
|
+
|
|
855
|
+
include_header : bool, optional
|
|
856
|
+
Determines if the metadata is included in the header. The default
|
|
857
|
+
is True.
|
|
858
|
+
|
|
859
|
+
Returns
|
|
860
|
+
-------
|
|
861
|
+
|
|
862
|
+
None.
|
|
863
|
+
|
|
864
|
+
'''
|
|
865
|
+
|
|
866
|
+
if self.solution is None:
|
|
867
|
+
print(
|
|
868
|
+
'No calculated Takagi-Taupin curves found! Call run() first!')
|
|
869
|
+
return
|
|
870
|
+
|
|
871
|
+
# Build the data matrix
|
|
872
|
+
data = []
|
|
873
|
+
data.append(self.solution['scan'].value.reshape(-1))
|
|
874
|
+
|
|
875
|
+
if self.solution['geometry'] == 'bragg':
|
|
876
|
+
data.append(self.solution['reflectivity'].reshape(-1))
|
|
877
|
+
else:
|
|
878
|
+
data.append(self.solution['diffraction'].reshape(-1))
|
|
879
|
+
data.append(self.solution['forward_diffraction'].reshape(-1))
|
|
880
|
+
|
|
881
|
+
data = np.array(data).T
|
|
882
|
+
|
|
883
|
+
if include_header:
|
|
884
|
+
header = str(self) + '\n' + 'SOLVER OUTPUT LOG\n'\
|
|
885
|
+
+ '-----------------\n' + \
|
|
886
|
+
self.solution['solver_output_log'] + '\n'
|
|
887
|
+
|
|
888
|
+
header = header + 'SOLUTION\n' + '--------\n'
|
|
889
|
+
header = header + 'Scan (' + self.solution['scan'].units() + ') '
|
|
890
|
+
|
|
891
|
+
if self.solution['geometry'] == 'bragg':
|
|
892
|
+
header = header + 'Reflectivity'
|
|
893
|
+
else:
|
|
894
|
+
header = header + 'Diffraction Forward-diffraction'
|
|
895
|
+
else:
|
|
896
|
+
header = ''
|
|
897
|
+
|
|
898
|
+
np.savetxt(path, data, header=header)
|
|
899
|
+
|
|
900
|
+
def __str__(self):
|
|
901
|
+
return 'CRYSTAL PARAMETERS\n'\
|
|
902
|
+
+ '------------------\n\n'\
|
|
903
|
+
+ str(self.crystal_object) + '\n\n'\
|
|
904
|
+
+ 'SCAN PARAMETERS\n'\
|
|
905
|
+
+ '---------------\n\n'\
|
|
906
|
+
+ str(self.scan_object)
|