import PyPIC.geom_impact_ellip as ell from scipy import rand import numpy as np sigma = .5 R_cham = 10 * sigma Dh = sigma / 20. from scipy.constants import e, epsilon_0 qe = e eps0 = epsilon_0 chamber = ell.ellip_cham_geom_object(x_aper=R_cham, y_aper=R_cham) #~ picFD = PIC_FD.FiniteDifferences_Staircase_SquareGrid(chamb = chamber, Dh = Dh) #~ picFDSW = PIC_FDSW.FiniteDifferences_ShortleyWeller_SquareGrid(chamb = chamber, Dh = Dh) picFFT = PIC_FFT.FFT_OpenBoundary_SquareGrid(x_aper=chamber.x_aper, y_aper=chamber.y_aper, Dh=Dh) YY, XX = np.meshgrid(picFFT.yg, picFFT.xg) sigmax = sigma sigmay = sigma x_beam_pos = 0. y_beam_pos = 0. rho_mat = 1. / (2. * np.pi * sigmax * sigmay) * np.exp(-(XX - x_beam_pos)**2 / (2. * sigmax**2) - (YY - y_beam_pos)**2 /
# Bassetti-Erskine parameters Dh_BE = 0.3 * bunch.sigma_x() # Multi grid parameters Dh_single_ext = 1e-3 Sx_target = 10 * bunch.sigma_x() Sy_target = 10 * bunch.sigma_y() Dh_target = 0.5 * bunch.sigma_x() #.3 # chamber parameters x_aper = 22e-3 y_aper = 18e-3 # build chamber chamber = ell.ellip_cham_geom_object(x_aper=x_aper, y_aper=y_aper) Vx, Vy = chamber.points_on_boundary(N_points=200) # build Bassetti Erskine pic_BE = PIC_BE.Interpolated_Bassetti_Erskine(x_aper=x_aper, y_aper=y_aper, Dh=Dh_BE, sigmax=bunch.sigma_x(), sigmay=bunch.sigma_y(), n_imag_ellip=20, tot_charge=bunch.intensity * bunch.charge) # build single grid pic pic_singlegrid = PIC_FDSW.FiniteDifferences_ShortleyWeller_SquareGrid( chamb=chamber, Dh=Dh_single, sparse_solver=sparse_solver)