Utility scans with calc_xcrystal
[1]:
%matplotlib inline
import matplotlib
matplotlib.rcParams['figure.dpi'] = 100
try:
import srxraylib.plot.gol as _gol
_gol.set_qt = lambda: None
except Exception:
pass
[2]:
import numpy
from crystalpy.util.calc_xcrystal import calc_xcrystal_angular_scan, calc_xcrystal_energy_scan
from crystalpy.util.calc_xcrystal import calc_xcrystal_alphazachariasen_scan, calc_xcrystal_double_scan
if __name__ == "__main__":
from srxraylib.plot.gol import set_qt
set_qt()
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
calculation_method = 1 # 0=Zachariasen, 1=Guigay
calculation_strategy_flag = 0 # 0=mpmath 1=numpy 2=numpy-truncated
if True:
calc_xcrystal_angular_scan(material_constants_library_flag=0,
do_plot=True,
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
calculation_strategy_flag=calculation_strategy_flag,
)
if True:
calc_xcrystal_angular_scan(material_constants_library_flag=0,
geometry_type_index=1,
thickness=10e-6,
asymmetry_angle=numpy.radians(90),
do_plot=True,
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
calculation_strategy_flag=calculation_strategy_flag,
)
calc_xcrystal_energy_scan(material_constants_library_flag=0,
do_plot=True,
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
calculation_strategy_flag=calculation_strategy_flag,
)
calc_xcrystal_alphazachariasen_scan(do_plot=1,
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
calculation_strategy_flag=calculation_strategy_flag,
)
if True:
calc_xcrystal_double_scan(
material_constants_library_flag=0,
crystal_name="Si",
thickness=1e-2,
miller_h=1,
miller_k=1,
miller_l=1,
asymmetry_angle=0.0,
energy_min=8000,
energy_max=8010,
energy_points=1,
angle_deviation_min=-100e-6,
angle_deviation_max=100e-6,
angle_deviation_points=200,
angle_center_flag=2, # 0=Absolute angle, 1=Theta Bragg Corrected, 2=Theta Bragg
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
geometry_type_index=0,
do_plot=1,
calculation_strategy_flag=calculation_strategy_flag,
)
calc_xcrystal_double_scan(
material_constants_library_flag=0,
crystal_name="Si",
thickness=1e-2,
miller_h=1,
miller_k=1,
miller_l=1,
asymmetry_angle=0.0,
energy_min=7990,
energy_max=8010,
energy_points=100,
angle_deviation_min=0,
angle_deviation_max=100e-6,
angle_deviation_points=1,
angle_center_flag=2, # 0=Absolute angle, 1=Theta Bragg Corrected, 2=Theta Bragg
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
geometry_type_index=0,
do_plot=1,
calculation_strategy_flag=calculation_strategy_flag,
)
if True:
calc_xcrystal_double_scan(
material_constants_library_flag=0,
crystal_name="Si",
thickness=0.010,
miller_h=1,
miller_k=1,
miller_l=1,
asymmetry_angle=0.0,
energy_min=7990,
energy_max=8010,
energy_points=150,
angle_deviation_min=-100e-6,
angle_deviation_max=100e-6,
angle_deviation_points=150,
angle_center_flag=2, # 0=Absolute angle, 1=Theta Bragg Corrected, 2=Theta Bragg
calculation_method=calculation_method,
is_thick=is_thick,
use_transfer_matrix=use_transfer_matrix,
geometry_type_index=0,
do_plot=1,
calculation_strategy_flag=calculation_strategy_flag,
)
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
energy = 8000.0
angle_deviation_min = -0.0001
angle_deviation_max = 0.0001
angle_deviation_points = 200
angle_center_flag = 2
chi_deg = 0.0
flag_calculate_stokes = 0
chi_deg = 0.0
jones_in = [1, 1]
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.310444 deg
material_constants_library_flag = 0
crystal_name = Si
thickness = 1e-05
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 1.5707963267948966
energy = 8000.0
angle_deviation_min = -0.0001
angle_deviation_max = 0.0001
angle_deviation_points = 200
angle_center_flag = 2
chi_deg = 0.0
flag_calculate_stokes = 0
chi_deg = 0.0
jones_in = [1, 1]
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 1
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.308608 deg
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
theta = None
energy_min = 7990
energy_max = 8010
energy_points = 200
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Using theta as the Bragg angle for mean E=8000.000000 eV, which is 14.308608 deg
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
energy = 8000.0
angle_deviation_min = -2
angle_deviation_max = 2
angle_deviation_points = 200
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.310444 deg
Darwin half width for E=8000.000000 eV is 0.000983 deg
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
energy_min = 8000
energy_max = 8010
energy_points = 1
angle_deviation_min = -0.0001
angle_deviation_max = 0.0001
angle_deviation_points = 200
angle_center_flag = 2
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.310444 deg
Creating bunch...
Done (9 ms).
Calculating diffraction...
Done (25 ms).
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
energy_min = 7990
energy_max = 8010
energy_points = 100
angle_deviation_min = 0
angle_deviation_max = 0.0001
angle_deviation_points = 1
angle_center_flag = 2
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.310444 deg
Creating bunch...
Done (5 ms).
Calculating diffraction...
Done (13 ms).
material_constants_library_flag = 0
crystal_name = Si
thickness = 0.01
miller_h = 1
miller_k = 1
miller_l = 1
asymmetry_angle = 0.0
energy_min = 7990
energy_max = 8010
energy_points = 150
angle_deviation_min = -0.0001
angle_deviation_max = 0.0001
angle_deviation_points = 150
angle_center_flag = 2
calculation_method = 1
is_thick = 0
use_transfer_matrix = 0
geometry_type_index = 0
dabax = None
Creating a diffraction setup...
Bragg angle for E=8000.000000 eV is 14.308608 deg
Bragg angle corrected for E=8000.000000 eV is 14.310444 deg
Creating bunch...
Done (2441 ms).
Calculating diffraction...
Done (2590 ms).
(150, 150)