Esempio n. 1
0
def reinit_ecloud_from_h5status(filename, ecloud):
	
	print 'Reinitialize ecloud object'

	import myfilemanager as mfm
	ecloud_read = mfm.object_with_arrays_and_scalar_from_h5(filename)
	
	ecloud.init_N_mp = ecloud_read.init_N_mp
	ecloud.init_x = ecloud_read.init_x
	ecloud.init_y = ecloud_read.init_y
	ecloud.init_z = ecloud_read.init_z
	ecloud.init_vx = ecloud_read.init_vx
	ecloud.init_vy = ecloud_read.init_vy
	ecloud.init_vz = ecloud_read.init_vz
	ecloud.init_nel = ecloud_read.init_nel
Esempio n. 2
0
def reinit_ecloud_from_h5status(filename, ecloud):

    print 'Reinitialize ecloud object'

    import myfilemanager as mfm
    ecloud_read = mfm.object_with_arrays_and_scalar_from_h5(filename)

    ecloud.init_N_mp = ecloud_read.init_N_mp
    ecloud.init_x = ecloud_read.init_x
    ecloud.init_y = ecloud_read.init_y
    ecloud.init_z = ecloud_read.init_z
    ecloud.init_vx = ecloud_read.init_vx
    ecloud.init_vy = ecloud_read.init_vy
    ecloud.init_vz = ecloud_read.init_vz
    ecloud.init_nel = ecloud_read.init_nel
Esempio n. 3
0
def beam_from_h5status(filename):

	import myfilemanager as mfm
	beam_read = mfm.object_with_arrays_and_scalar_from_h5(filename)

	coords_n_momenta_dict = {\
	'x':beam_read.x,
	'xp':beam_read.xp,
	'y':beam_read.y,
	'yp':beam_read.yp,
	'z':beam_read.z,
	'dp':beam_read.dp}
	
	from PyHEADTAIL.particles.generators import ImportDistribution
	beam = ImportDistribution(beam_read.macroparticlenumber, beam_read.intensity, beam_read.charge, beam_read.mass,
					 beam_read.circumference, beam_read.gamma, coords_n_momenta_dict).generate()
	return beam
Esempio n. 4
0
def beam_from_h5status(filename):

    import myfilemanager as mfm
    beam_read = mfm.object_with_arrays_and_scalar_from_h5(filename)

    coords_n_momenta_dict = {\
    'x':beam_read.x,
    'xp':beam_read.xp,
    'y':beam_read.y,
    'yp':beam_read.yp,
    'z':beam_read.z,
    'dp':beam_read.dp}

    from PyHEADTAIL.particles.generators import ImportDistribution
    beam = ImportDistribution(beam_read.macroparticlenumber,
                              beam_read.intensity, beam_read.charge,
                              beam_read.mass, beam_read.circumference,
                              beam_read.gamma,
                              coords_n_momenta_dict).generate()
    return beam
import pylab as pl
import myfilemanager as mfm
import numpy as np

ob = mfm.object_with_arrays_and_scalar_from_h5('beam_coord.h5') 

beam_x = ob.beam_x
beam_y = ob.beam_y
beam_z = ob.beam_z
sx = ob.sx
sy = ob.sy 
sz = ob.sz
epsx = ob.epsx
epsy =	ob.epsy
epsz =	ob.epsz

import pylab as plt

plt.figure(2, figsize=(16, 8), tight_layout=True)
plt.subplot(2,3,1)
plt.plot(beam_x)
plt.ylabel('x [m]');plt.xlabel('Turn')
plt.gca().ticklabel_format(style='sci', scilimits=(0,0),axis='y')
plt.subplot(2,3,2)
plt.plot(beam_y)
plt.ylabel('y [m]');plt.xlabel('Turn')
plt.gca().ticklabel_format(style='sci', scilimits=(0,0),axis='y')
plt.subplot(2,3,3)
plt.plot(beam_z)
plt.ylabel('z [m]');plt.xlabel('Turn')
plt.gca().ticklabel_format(style='sci', scilimits=(0,0),axis='y')
Esempio n. 6
0
        beta_y=pars['beta_y'],
        accQ_x=pars['Q_x'],
        accQ_y=pars['Q_y'],
        Qp_x=pars['Qp_x'],
        Qp_y=pars['Qp_y'],
        octupole_knob=pars['octupole_knob'],
        optics_dict=None,
        V_RF=pars['V_RF'])
    Qs = machine.longitudinal_map.Q_s
    Qx = machine.transverse_map.accQ_x
    Qy = machine.transverse_map.accQ_y
    frac_qx, _ = math.modf(Qx)
    frac_qy, _ = math.modf(Qy)

    filename_footprint = 'footprint.h5'
    ob = mfm.object_with_arrays_and_scalar_from_h5(folder + '/' +
                                                   filename_footprint)

    betax = machine.transverse_map.beta_x[0]
    betay = machine.transverse_map.beta_y[0]
    Jy = (ob.y_init**2 + (ob.yp_init * betay)**2) / (2 * betay)
    Jx = (ob.x_init**2 + (ob.xp_init * betax)**2) / (2 * betax)

    Qx_min = frac_qx - 0.03
    Qy_min = frac_qy - 0.03
    Qx_max_cut = frac_qx + 0.05
    Qy_max_cut = frac_qy + 0.05

    fig1 = plt.figure(1000 + ifol, figsize=(6.4 * 1.1, 4.8 * 1.4))
    figfplist.append(fig1)

    ax1 = fig1.add_subplot(111)
Esempio n. 7
0
DeltaQx_average = np.zeros((len(fraction_device_quad_vect), len(betax_vect)))
DeltaQy_average = np.zeros((len(fraction_device_quad_vect), len(betax_vect)))

DeltaQx_std = np.zeros((len(fraction_device_quad_vect), len(betax_vect)))
DeltaQy_std = np.zeros((len(fraction_device_quad_vect), len(betax_vect)))

for ii, fraction_device_quad in enumerate(fraction_device_quad_vect):

    for jj, betax in enumerate(betax_vect):

        sim_ident = '../simulations/%.1fe11ppb_ecdip%s_ecquad%s_%.3ffracQuad_%dbetaxy' % (
            fact_beam / 1e11, onoff[enable_arc_dip], onoff[enable_arc_quad],
            fraction_device_quad, betax)
        filename_footprint = 'footprint.h5'

        ob = mfm.object_with_arrays_and_scalar_from_h5(sim_ident + '/' +
                                                       filename_footprint)

        DeltaQx_vec = np.abs(ob.qx_i) - Q_x
        DeltaQy_vec = np.abs(ob.qy_i) - Q_y

        DeltaQx_average[ii, jj] = np.mean(DeltaQx_vec)
        DeltaQy_average[ii, jj] = np.mean(DeltaQy_vec)

        DeltaQx_std[ii, jj] = np.std(DeltaQx_vec)
        DeltaQy_std[ii, jj] = np.std(DeltaQy_vec)

folder_plot_average = folder_plot + 'average/'
if not os.path.exists(folder_plot_average):
    os.makedirs(folder_plot_average)
#~ plot horizontal and vertical tune average versus beta, for fixed device length
for ii, fraction_device_quad in enumerate(fraction_device_quad_vect):
Esempio n. 8
0
filename = '../../PyECLOUD/testing/tests_PyEC4PyHT/headtail_for_test/test_protons/SPS_Q20_proton_check_dipole_3kicks_20150212_prb.dat'
appo = np.loadtxt(filename)

parid = np.reshape(appo[:,0], (-1, n_part_per_turn))[::n_segments,:]
x = np.reshape(appo[:,1], (-1, n_part_per_turn))[::n_segments,:]
xp = np.reshape(appo[:,2], (-1, n_part_per_turn))[::n_segments,:]
y = np.reshape(appo[:,3], (-1, n_part_per_turn))[::n_segments,:]
yp =np.reshape(appo[:,4], (-1, n_part_per_turn))[::n_segments,:]
z = np.reshape(appo[:,5], (-1, n_part_per_turn))[::n_segments,:]
zp = np.reshape(appo[:,6], (-1, n_part_per_turn))[::n_segments,:]

rms_err_x_list = []
rms_err_y_list = []
for i_turn in xrange(N_turns-1):
	
	ob = mfm.object_with_arrays_and_scalar_from_h5('particles_at_turn_%d.h5'%i_turn) 

	# sort id and momenta after track

	id_after = ob.id_after
	xp_after = ob.xp_after
	yp_after = ob.yp_after
	z_after = ob.z_after
	id_before = ob.id_before
	xp_before = ob.xp_before
	yp_before = ob.yp_before

	fig = pl.figure(100, figsize=(18,10))
	pl.clf()
	sp1 = pl.subplot(2,3,1)
	pl.plot(z_after,  (100*np.abs((xp_after-xp_before)-(xp[i_turn+1, :]-xp[0, :]))/np.std(xp[i_turn+1, :]-xp[0, :])), '.r', markersize = 2)