Following suggestions raised during machine studies, this PR proposes the following changes:
meas_coupling_tune.py: renaming attributes neg_percent -> lower_percent and pos_percent -> upper_percent. The scan range definition was also changed to make more intuitive the parameter setting for scans with both bounds with positives or negatives values. Add method to apply variation to the achromatic QS in the machine to adjust the coupling. The deltas are in the direction of first singular vector, obtained from SVD analysis of jacobian matrix calculated with apsuite.optics.coupling_corr.calc_jacobian_matrix() with nominal model SI.V25.04.
measure_chromdisp.py: fix __str__ of MeasParams that was not printing max_delta_freq
loco.analysis and loco.report: apply suggestions to LOCO report, observed during machine studies of 2023-01-23.
optics.coupling_corr: improve speed of jacobian calculation by not using calc_twiss to get dispersion function and parallelizing the numerical calculation.
orbcorr/calc_orbcorr_mat.py: Fix typo.
speed improvement running the following code on lnls449-linux (control-room pc):
from apsuite.optics_analysis.coupling_correction import CouplingCorr
from pymodels import si
mod = si.create_accelerator()
mod = si.fitted_models.vertical_dispersion_and_coupling(mod)
coup = CouplingCorr(mod, 'SI')
idx = [idx for idx, name in enumerate(coup.respm.fam_data['QS']['devnames']) if 'M' in name]
coup.skew_idx = [coup.skew_idx[i] for i in idx]
%timeit coup.calc_jacobian_matrix()
Results:
old code: 52.8 s +- 1.02 s per loop
new code: 9.73 s +- 315 ms per loop
Following suggestions raised during machine studies, this PR proposes the following changes:
meas_coupling_tune.py
: renaming attributesneg_percent
->lower_percent
andpos_percent
->upper_percent
. The scan range definition was also changed to make more intuitive the parameter setting for scans with both bounds with positives or negatives values. Add method to apply variation to the achromatic QS in the machine to adjust the coupling. The deltas are in the direction of first singular vector, obtained from SVD analysis of jacobian matrix calculated withapsuite.optics.coupling_corr.calc_jacobian_matrix()
with nominal model SI.V25.04.measure_chromdisp.py
: fix__str__
ofMeasParams
that was not printingmax_delta_freq
loco.analysis
andloco.report
: apply suggestions to LOCO report, observed during machine studies of 2023-01-23.optics.coupling_corr
: improve speed of jacobian calculation by not usingcalc_twiss
to get dispersion function and parallelizing the numerical calculation.orbcorr/calc_orbcorr_mat.py
: Fix typo.speed improvement running the following code on lnls449-linux (control-room pc):
Results: