#plot_opt_func(lat, tws0) tw0 = deepcopy(tws0[0]) tw_end = tw0 tw_end.beta_x = 3.00000000313 tw_end.alpha_x = -0.601367997622 tw_end.beta_y = 7.78559521531 tw_end.alpha_y = 1.5144714708 tw_end.p = 1.e-2 tws_bdc=twiss(lat_bdc, tw_end) show_optics(tws_bdc, lat_bdc, beam, scale = 0.0) constr = {} constr['global'] = {'beta_x':['<',70.], 'beta_y':['<',160.], 'Dx':['<',3.5]} constr[drift_319] = {'tau':-47.e-4} constr[drift_318] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_320] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_321] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_322] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_323] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_324] = {'beta_x':['<',50.], 'beta_y':['<',100.], 'Dx':0.0, 'Dxp':0.0} constr[drift_314] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_315] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_316] = {'beta_x':['<',50.], 'beta_y':['<',100.]} constr[drift_317] = {'beta_x':['<',50.], 'beta_y':['<',100.]}
print 'total deflection: ', tot_angle tw0.beta_x = 22.0 tw0.alpha_x = -0.8 tw0.beta_y = 7.0 tw0.alpha_y = 1.8 tw0.Dx = 0.0 tw0.Dxp = 0.0 tw0.p = 1.e-2 tws = twiss(lat, tw0, nPoints=100) print 'R56=', tws[-1].tau show_optics(tws, lat, beam, scale=0.0) plt.show() constr = {m2_bdc: {'tau': -45.e-4, 'Dx': 0.0}} constr['global'] = {'beta_x': ['<', 40], 'beta_y': ['<', 40]} var = [qf1_bdc, qf2_bdc, qf3_bdc, qf4_bdc, qd1_bdc, qd2_bdc, qd3_bdc, qd4_bdc] res = match(lat, constr, var, tw0, max_iter=5000) tws = twiss(lat, tw0, nPoints=100) print 'diff:', tws[-1].tau * 1.e4, tws[-1].Dx, tws[-1].Dxp show_optics(tws, lat, beam, scale=0.0) plt.show() ''' # knob calculation
for tau in taus: constr[m2] = {'Dx':0.0, 'Dxp':0.0, 'tau': tau, 'beta_x':['->',m1], 'beta_y':['->',m1]} res = match(lat, constr, var, tw0, max_iter=5000) tws=twiss(lat, tw0, nPoints = 100) err = np.abs(tws[-1].Dx) + np.abs( tws[-1].Dxp) errs.append(err) for v in var: print v.k1 quad_tab[v].append(v.k1) fig = plt.figure() ax = fig.add_subplot(111) labs = [] pls = [] for v in var: p, = ax.plot(taus * 1.e4, quad_tab[v]) pls.append(p) labs.append(v.id) plt.legend(pls, labs) ax2 = ax.twinx() ax2.plot(taus, errs, 'r--', lw=3) ''' tws=twiss(lat, tw0, nPoints = 100) from common import show_optics show_optics(tws, lat, beam)
tw0.beta_x = 22.0 tw0.alpha_x = -0.8 tw0.beta_y = 7.0 tw0.alpha_y = 1.8 tw0.Dx = 0.0 tw0.Dxp = 0.0 tw0.p = 1.e-2 tws=twiss(lat, tw0, nPoints = 100) print 'R56=', tws[-1].tau show_optics(tws, lat, beam, scale = 0.0) plt.show() constr = {m2_bdc:{'tau': -45.e-4, 'Dx':0.0} } constr['global'] = {'beta_x':['<',40], 'beta_y':['<',40]} var = [qf1_bdc, qf2_bdc, qf3_bdc, qf4_bdc, qd1_bdc, qd2_bdc, qd3_bdc, qd4_bdc] res = match(lat, constr, var, tw0, max_iter=5000) tws=twiss(lat, tw0, nPoints = 100) print 'diff:', tws[-1].tau * 1.e4, tws[-1].Dx, tws[-1].Dxp show_optics(tws, lat, beam, scale = 0.0) plt.show()
#eb.print_params() #eb.integrals_id() #plot_opt_func(lat, tws0) tw0 = deepcopy(tws0[0]) tw_end = tw0 tw_end.beta_x = 3.00000000313 tw_end.alpha_x = -0.601367997622 tw_end.beta_y = 7.78559521531 tw_end.alpha_y = 1.5144714708 tw_end.p = 1.e-2 tws_bdc = twiss(lat_bdc, tw_end) show_optics(tws_bdc, lat_bdc, beam, scale=0.0) constr = {} constr['global'] = { 'beta_x': ['<', 70.], 'beta_y': ['<', 160.], 'Dx': ['<', 3.5] } constr[drift_319] = {'tau': -47.e-4} constr[drift_318] = {'beta_x': ['<', 50.], 'beta_y': ['<', 100.]} constr[drift_320] = {'beta_x': ['<', 50.], 'beta_y': ['<', 100.]} constr[drift_321] = {'beta_x': ['<', 50.], 'beta_y': ['<', 100.]} constr[drift_322] = {'beta_x': ['<', 50.], 'beta_y': ['<', 100.]} constr[drift_323] = {'beta_x': ['<', 50.], 'beta_y': ['<', 100.]} constr[drift_324] = { 'beta_x': ['<', 50.],
constr['global'] = { 'beta_x': ['<', 25.], 'beta_y': ['<', 25.], 'Dx': ['<', 1.0], 'Dxp': ['<', 0.05] } constr[drift_398] = {'Dx': 0.0, 'Dxp': 0.0} constr[end_arc3] = { 'beta_x': 5.7078928123, 'alpha_x': -0.426268101809, 'beta_y': 24.0252733016, 'alpha_y': 2.08007605731 } variables = [ qfa3, qda3, q7na3, q6na3, q9na3, qs_n2a3, qs_n1a3, q0ba3, q2ba3, q3a3, q1a3, [tw_end, 'beta_x'], [tw_end, 'beta_y'], [tw_end, 'alpha_x'], [tw_end, 'alpha_y'] ] match(lat_arc3, constr, variables, tw_end, max_iter=5000) for v in variables: if v.__class__ == Quadrupole: print v.id, v.k1 tws_arc3 = twiss(lat_arc3, tw_end) show_optics(tws_arc3, lat_arc3, beam, scale=0.0) plt.show()