import numpy as np

R_cham = 1e-1
R_charge = 4e-2
N_part_gen = 100000
Dh = 2e-3

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)

picFDSW = PIC_FDSW.FiniteDifferences_ShortleyWeller_SquareGrid(chamb = chamber, Dh = Dh)
#~ picFDSW = PIC_FDSW.FiniteDifferences_Staircase_SquareGrid(chamb = chamber, Dh = Dh)


# generate particles
x_part = R_charge*(2.*rand(N_part_gen)-1.)
y_part = R_charge*(2.*rand(N_part_gen)-1.)
mask_keep  = x_part**2+y_part**2<R_charge**2
x_part = x_part[mask_keep]
y_part = y_part[mask_keep]

nel_part = 0*x_part+1.

#pic scatter
picFDSW.scatter(x_part, y_part, nel_part)
Ejemplo n.º 2
0
eps0 = epsilon_0

na = np.array

chamber = poly.polyg_cham_geom_object({
    'Vx':
    na([x_aper, -x_aper, -x_aper, x_aper]),
    'Vy':
    na([y_aper, y_aper, -y_aper, -y_aper]),
    'x_sem_ellip_insc':
    0.99 * x_aper,
    'y_sem_ellip_insc':
    0.99 * y_aper
})

picFDSW = PIC_FDSW.FiniteDifferences_ShortleyWeller_SquareGrid(
    chamb=chamber, Dh=Dh, sparse_solver='PyKLU')
picFD = PIC_FD.FiniteDifferences_Staircase_SquareGrid(chamb=chamber,
                                                      Dh=Dh,
                                                      sparse_solver='PyKLU')
picFFTPEC = PIC_PEC_FFT.FFT_PEC_Boundary_SquareGrid(x_aper=chamber.x_aper,
                                                    y_aper=chamber.y_aper,
                                                    Dh=Dh)

# generate particles
x_part = R_charge * (2. * rand(N_part_gen) - 1.)
y_part = R_charge * (2. * rand(N_part_gen) - 1.)
mask_keep = x_part**2 + y_part**2 < R_charge**2
x_part = x_part[mask_keep]
y_part = y_part[mask_keep]

nel_part = 0 * x_part + 1.