From bc81dcce00bf9fdcd40a10a959971c7e4820f234 Mon Sep 17 00:00:00 2001 From: Sven Date: Mon, 16 Feb 2026 10:40:26 +0100 Subject: [PATCH] Added radia fit of K-dependent roll-off parameters for Athos Apple-X undulators. --- model.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/model.py b/model.py index 6e1609f..84e921f 100644 --- a/model.py +++ b/model.py @@ -90,14 +90,18 @@ class Model: if 'UIND' in name: self.om.setRegExpElement(name[0:7], name[8:15], 'K', float(val[0])) if 'SATUN' in name: - kx = 0 - ky = 1 - if 'LV' in val[1]: - kx = 1 - ky = 0 - if 'C' in val[1]: + if 'LV' in val[1] or 'LH' in val[1]: + K = float(val[0]) + fit = 0.04701805*K*K+ 0.20133565*K+ 0.83336356 + if 'LH' in val[1]: + kx = fit + ky = 1 - kx + else: + ky = fit + kx = 1- ky + else: kx = 0.5 - ky=0.5 + ky = 0.5 self.om.setRegExpElement(name[0:7], name[8:15], 'kx', kx) self.om.setRegExpElement(name[0:7], name[8:15], 'ky', ky) if 'RSYS' in name: @@ -105,7 +109,6 @@ class Model: phase = float(val[1]) if 'CB' in name[0:7]: grad = grad/ 4. - elif 'XB' in name[0:7] or 'SINSB03' in name or 'SINSB04' in name: grad = grad/2 L = self.om.getRegExpElement(name[0:7], 'RACC', 'Length')[0] self.om.setRegExpElement(name[0:7], 'RACC', 'Gradient', grad/L)