Ejemplo n.º 1
0
tot_beam_energy = np.sqrt(sync_momentum**2 + E_0**2)  # [eV]
momentum_compaction = 1 / gamma_transition**2  # [1]

# Cavities parameters
n_rf_systems = 1
harmonic_numbers = [35640.0]
voltage_program = [16e6]
phi_offset = [0]

bucket_length = C / c / harmonic_numbers[0]

# DEFINE RING------------------------------------------------------------------
n_turns = 1
general_params = GeneralParameters(n_turns,
                                   C,
                                   momentum_compaction,
                                   sync_momentum,
                                   particle_type,
                                   number_of_sections=1)

RF_sct_par = RFSectionParameters(general_params, n_rf_systems,
                                 harmonic_numbers, voltage_program, phi_offset)

# DEFINE BEAM------------------------------------------------------------------

beam = Beam(general_params, n_macroparticles, n_particles)

# DEFINE TRACKER---------------------------------------------------------------
longitudinal_tracker = RingAndRFSection(RF_sct_par, beam)
full_tracker = FullRingAndRF([longitudinal_tracker])

# DEFINE SLICES----------------------------------------------------------------
Ejemplo n.º 2
0
h = 35640  # Harmonic number
V = 6e6  # RF voltage [V]
dphi = 0  # Phase modulation/offset
gamma_t = 55.759505  # Transition gamma
alpha = 1. / gamma_t / gamma_t  # First order mom. comp. factor

# Tracking details
N_t = 2000  # Number of turns to track
dt_plt = 200  # Time steps between plots

# Simulation setup ------------------------------------------------------------
print("Setting up the simulation...")
print("")

# Define general parameters
general_params = GeneralParameters(N_t, C, alpha, np.linspace(p_i, p_f, 2001),
                                   'proton')

# Define beam and distribution
beam = Beam(general_params, N_p, N_b)

# Define RF station parameters and corresponding tracker
rf_params = RFSectionParameters(general_params, 1, h, V, dphi)
long_tracker = RingAndRFSection(rf_params, beam)

longitudinal_bigaussian(general_params,
                        rf_params,
                        beam,
                        tau_0 / 4,
                        reinsertion='on',
                        seed=1)
Ejemplo n.º 3
0
sync_momentum = np.sqrt(tot_beam_energy**2 - E_0**2)  # [eV / c]

gamma = tot_beam_energy / E_0
beta = np.sqrt(1.0 - 1.0 / gamma**2.0)

momentum_compaction = 1 / gamma_transition**2

# Cavities parameters
n_rf_systems = 1
harmonic_numbers = 1
voltage_program = 8e3  #[V]
phi_offset = -np.pi

# DEFINE RING------------------------------------------------------------------

general_params = GeneralParameters(n_turns, C, momentum_compaction,
                                   sync_momentum, particle_type)

RF_sct_par = RFSectionParameters(general_params, n_rf_systems,
                                 harmonic_numbers, voltage_program, phi_offset)

beam = Beam(general_params, n_macroparticles, n_particles)
ring_RF_section = RingAndRFSection(RF_sct_par, beam)

bucket_length = 2.0 * np.pi / RF_sct_par.omega_RF[0, 0]

# DEFINE BEAM------------------------------------------------------------------
longitudinal_bigaussian(general_params, RF_sct_par, beam, sigma_dt, seed=1)

# DEFINE SLICES----------------------------------------------------------------

number_slices = int(100 * 2.5)
Ejemplo n.º 4
0
# Cavities parameters
n_rf_systems = 1
harmonic_numbers = [133650]
voltage_program = [10e9]
phi_offset = [np.pi]

bucket_length = C / c / harmonic_numbers[0]
print(bucket_length)

# DEFINE RING------------------------------------------------------------------

n_sections = 2
general_params = GeneralParameters(n_turns,
                                   np.ones(n_sections) * C / n_sections,
                                   np.tile(momentum_compaction,
                                           (1, n_sections)).T,
                                   np.tile(sync_momentum,
                                           (n_sections, n_turns + 1)),
                                   particle_type,
                                   number_of_sections=n_sections)

RF_sct_par = []
for i in np.arange(n_sections) + 1:
    RF_sct_par.append(
        RFSectionParameters(general_params,
                            n_rf_systems,
                            harmonic_numbers,
                            [v / n_sections for v in voltage_program],
                            phi_offset,
                            section_index=i))

# DEFINE BEAM------------------------------------------------------------------