7.22 correct_coupling
- type: setup command. Execution is deferred to the simulation steps loop (like chromaticity
and correct_tunes), where the correction is performed once per simulation step between
orbit correction and tune correction.
- function: minimize the vertical dispersion ηy and/or cross-plane response matrix at the
selected BPMs by adjusting selected skew-quadrupole (or equivalent) knobs.
- sequence: must follow run_setup and twiss_output. A track command (or another action
command that triggers the steps loop) must follow in order for the correction to actually run.
- N.B.: can use parallel resources (Pelegant) for correction matrix computation. However,
the recommended sequence is to compute the correction matrix using parallel resources
with the compute_coupling_response_matrix, then use load_coupling_response_matrix
when performing coupling correction, particularly when post-correction simulation does not
require parallel resources. Correction itself will benefit from parallel resources when the
cross-plane matrix is included.
- Command syntax, including use of equations and subcommands, is discussed in 7.2.
&correct_coupling
STRING correction_elements = NULL;
STRING items = NULL;
STRING lower_limits = NULL;
STRING upper_limits = NULL;
STRING exclude = NULL;
STRING bpm_name_pattern = NULL;
STRING bpm_type_pattern = "MONI";
long n_iterations = 3;
double convergence = 1e-9;
double change_tolerance = 0.1;
double correction_fraction = 0.5;
long use_perturbed_matrix = 0;
long adaptive_step = 0;
double response_perturbation = 1e-6;
double svd_threshold = 1e-6;
long n_singular_values = 0;
long auto_sv_threshold = 1;
double auto_sv_threshold_factor = 3.0;
double measurement_noise = 0.0;
double measurement_noise_cutoff = 3.0;
double etay_weight = 1.0;
STRING cross_h_steering = NULL;
STRING cross_v_steering = NULL;
STRING cross_x_bpm_name_pattern = NULL;
STRING cross_x_bpm_type_pattern = "MONI HMON";
STRING cross_y_bpm_name_pattern = NULL;
STRING cross_y_bpm_type_pattern = "MONI VMON";
double cross_response_weight = 0.0;
double cross_steering_kick = 1e-5;
double cross_measurement_noise = 0.0;
STRING strength_log = NULL;
STRING etay_file = NULL;
STRING response_file = NULL;
STRING rms_log = NULL;
long reset_correctors_each_step = 1;
long verbosity = 0;
&end