Warwick-Plasma/epoch

How to set up a vortex electron beam in the injector block?

Opened this issue · 3 comments

Hello, everyone,
How to set up a vortex electron beam in the injector block?
I can‘t find vortex about orbital angular momentum in the Users Manual of EPOCH. The following is a example about injector block, but don't setting up electron orbital angular momentum. How to set up orbital angular momentum of electrons?

begin:control
nx = 128
ny = 128

Final time of simulation

t_end = 3.0e-1

Size of domain

x_min = 0
x_max = 2.5e5
y_min = -2.5e5
y_max = 2.5e5
stdout_frequency = 1000
end:control

begin:boundaries
bc_x_min = periodic
bc_x_max = periodic
bc_y_min = periodic
bc_y_max = periodic
end:boundaries

begin:constant
drift_p = 2.5e-24
temperature = 273
dens = 1
ppc = 8
end:constant

begin:injector
boundary = x_min
species = Beam
number_density = dens
temperature = temperature
drift_px = drift_p
nparticles_per_cell = ppc
end:injector

begin:species

Background electrons (immobile ions)

name = Background
charge = -1
mass = 1.0
temperature = temperature
drift_px = -drift_p / 1000
number_density = dens * 1000
nparticles = ppc * nx * ny
end:species

begin:species

Beam

name = Beam
charge = -1
mass = 1.0
#temperature_x = temperature
#drift_px = drift_p
#number_density = dens
bc_x_min = simple_outflow
bc_x_max = simple_outflow
end:species

begin:output
name = normal

Simulated time between output dumps

dt_snapshot = 0.5e-2
dump_last = T

Properties at particle positions

#particles = always
#px = always

Properties on grid

grid = always
ex = always
ey = always
ez = always
bx = always
by = always
bz = always
jx = always
ppc = always + species
#average_particle_energy = always
#mass_density = never + species
charge_density = always
number_density = always + species
#temperature = always + species

Extended io

distribution_functions = always
end:output

begin:dist_fn
name = x_px
ndims = 2

direction1 = dir_x
direction2 = dir_px

Range is ignored for spatial coordinates

range1 = (1, 1)
range2 = (-5e-24, 5e-24)

Resolution is ignored for spatial coordinates

resolution1 = 1
resolution2 = 200

include_species:Beam
include_species:Background
end:dist_fn

Hey @qiqi77346,

You have a 2D simulation here, so I'm guessing you want to model rotating momentum in the $xy$ plane? Are you asking to set up particles with momenta rotating about the central point in the simulation, something like this diagram:

Screenshot from 2023-10-31 15-04-11

Cheers,
Stuart

Hey @qiqi77346,

You have a 2D simulation here, so I'm guessing you want to model rotating momentum in the xy plane? Are you asking to set up particles with momenta rotating about the central point in the simulation, something like this diagram:

Screenshot from 2023-10-31 15-04-11

Cheers, Stuart

Hello, @Status-Mirror
what you say is correct. Yes, I want to set up particles with momenta rotating in injected block of the simulation. Now, I only know how to set up energy of particles by "drift_px = -drift_p / 1000". But how to I set up "particles with momenta rotating"? like being shown of this diagram.

I think I've misunderstood what you wanted - the simulation you're describing could only be done in 3D.

You want particles to be injected from the z_min boundary with some drifting pz, but with px and py rotating in the $xy$ plane as in the diagram.

Using file injectors, you can manually specify the injection position, time, weight and momentum of injected particles. If you wrote some software to automatically generate these particle files (with momentum changing with position), then you could achieve any arbitrary injection characteristics. See the example on file injectors and the injector block documentation to learn more.