From 1e3abce5fc3e7c686b3dcfad469fe23e58e57b88 Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Wed, 25 Jan 2023 21:56:14 +0100 Subject: [PATCH] njit z4frgn and z1frnb functions --- pyzebra/h5.py | 6 +++--- pyzebra/xtal.py | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pyzebra/h5.py b/pyzebra/h5.py index 3461d49..e174ce9 100644 --- a/pyzebra/h5.py +++ b/pyzebra/h5.py @@ -111,9 +111,9 @@ def read_detector_data(filepath, cami_meta=None): if len(scan["gamma"]) == 1: scan["gamma"] = np.ones(n) * scan["gamma"] scan["twotheta"] = np.ones(n) * scan["twotheta"] - scan["nu"] = h5f["/entry1/ZEBRA/area_detector2/tilt_angle"][:1] - scan["ddist"] = h5f["/entry1/ZEBRA/area_detector2/distance"][:1] - scan["wave"] = h5f["/entry1/ZEBRA/monochromator/wavelength"][:1] + scan["nu"] = h5f["/entry1/ZEBRA/area_detector2/tilt_angle"][0] + scan["ddist"] = h5f["/entry1/ZEBRA/area_detector2/distance"][0] + scan["wave"] = h5f["/entry1/ZEBRA/monochromator/wavelength"][0] scan["chi"] = h5f["/entry1/sample/chi"][:] if len(scan["chi"]) == 1: scan["chi"] = np.ones(n) * scan["chi"] diff --git a/pyzebra/xtal.py b/pyzebra/xtal.py index 3d21c51..b1d7592 100644 --- a/pyzebra/xtal.py +++ b/pyzebra/xtal.py @@ -4,6 +4,7 @@ from numba import njit pi_r = 180 / np.pi +@njit(cache=True) def z4frgn(wave, ga, nu): """CALCULATES DIFFRACTION VECTOR IN LAB SYSTEM FROM GA AND NU @@ -15,12 +16,9 @@ def z4frgn(wave, ga, nu): """ ga_r = ga / pi_r nu_r = nu / pi_r - z4 = [0.0, 0.0, 0.0] - z4[0] = (np.sin(ga_r) * np.cos(nu_r)) / wave - z4[1] = (np.cos(ga_r) * np.cos(nu_r) - 1.0) / wave - z4[2] = (np.sin(nu_r)) / wave + z4 = [np.sin(ga_r) * np.cos(nu_r), np.cos(ga_r) * np.cos(nu_r) - 1.0, np.sin(nu_r)] - return z4 + return np.array(z4) / wave @njit(cache=True) @@ -45,6 +43,7 @@ def phimat(phi): return dum +@njit(cache=True) def z1frnb(wave, ga, nu, om): """CALCULATE DIFFRACTION VECTOR Z1 FROM GA, OM, NU, ASSUMING CH=PH=0