Warwick-Plasma / epoch

Particle-in-cell code for plasma physics simulations
https://epochpic.github.io
GNU General Public License v3.0
184 stars 58 forks source link

The reflection of a gaussian pulse #697

Closed kwang12008 closed 2 months ago

kwang12008 commented 2 months ago

I tried to get a left-handed circularly polarized Gaussian light to hit the plasma target at an oblique Angle of 30 degrees, but many reflected stray light that confused me very much(stray light has been marked in a red box).I really appreciate your help. Here is the input deck.

begin:constant
  # laser
  input_las_a_0 = 1.0e-3
  I_focus = 1.37e18 * (input_las_a_0)^2 #W/cm^2

  las_lambda = 1.0 * micron
  las_k = 2.0 * pi / las_lambda
  las_omega = 2.0 * pi * c / las_lambda
  las_period = 2.0 * pi / las_omega

  w0 = 5 * micron
  t0 = 10 * las_period
  t0_x = 25 *las_period

  theta = pi/3
  theta_pla = pi/2 - theta   # angle of inclination of plasma
  x_spot = 15/tan(theta_pla) * micron
  x_R = pi * w0^2 / las_lambda
  w_bnd = w0 * sqrt(1.0 + (x_spot/x_R)^2)
  gouy = atan(x_spot/x_R)
  phasey = 0
  phasez = pi/2

  # plasma
  n_crit = critical(las_omega)
  n_plate = 0.9 * n_crit

  #plasma density profile of plasma plate
  x_left = 0
  x_right = 30.0/tan(theta_pla) * micron
  y_up = tan(theta_pla) * x
  y_down = tan(theta_pla) * (x - 2/sin(theta_pla) * micron)
  z_front = 15.0 * micron
  z_back = -z_front

end:constant

begin:control
# final time of simulation
   t_end = 100 * las_period
# nsteps = 0

# size of domain
nx = 60*10
ny = 60*10
nz = 30*10

x_min = 0
x_max = 60 * micron
y_min = 0 * micron
y_max = 60 * micron
z_min = -15 * micron 
z_max = -z_min

stdout_frequency = 50

end:control

begin:boundaries

  bc_x_min = simple_laser
  bc_x_max = open

  bc_y_min = open
  bc_y_max = open

  bc_z_min = open
  bc_z_max = open

end:boundaries

# y polarization
begin:laser
   boundary = x_min
   intensity_w_cm2 = I_focus
   omega = las_omega
   phase =-phasey + las_k * ((y-15 * micron)^2+z^2) / (2 * x_spot * (1 + (x_R / x_spot)^2 ) ) - gouy        #sin(wt+phase) 
   profile = gauss(sqrt((y-20 * micron)^2+z^2), 0, w_bnd)
   t_profile = gauss(time, t0_x, t0)
end:laser

# z polarization
begin:laser
   boundary = x_min
   intensity_w_cm2 = I_focus
   omega = las_omega

   pol_angle = pi/2
   phase = -phasez+ las_k * ((y-15 * micron)^2+z^2) / (2 * x_spot * (1 + (x_R / x_spot)^2 ) ) - gouy      #sin(wt+phase) 
   profile = gauss(sqrt((y-20 * micron)^2+z^2), 0, w_bnd)
   t_profile = gauss(time, t0_x, t0)
end:laser

begin:species

   name = electron
   charge = -1.0
   mass = 1.0
   npart_per_cell = 16
   number_density = if((x gt x_left) and (x lt x_right) and (y gt y_down) and (y lt y_up) and (z gt z_back) and (z lt z_front), n_plate, 0.0)
   temp_ev =1

end:species

begin:species

   name = ion
   charge = 1.0
   mass = 1836.0
   npart_per_cell = 16
   number_density = number_density(electron)
   temp_ev =1

   immobile = T

end:species

####output series####

#=============instantaneous fields =============

begin:output

  #disabled = T
  name = reflectedfield
  file_prefix = reflect

  dt_snapshot = 10* las_period

 ex = always + single 
 ey = always + single
 ez = always + single

end:output 

image

Status-Mirror commented 2 months ago

Hi @kwang12008,

I don't run many reflection simulations myself, so I don't know if this is expected behaviour from EPOCH.

I do know that EPOCH's boundaries work best when lasers are injected perpendicular to the simulation edges. You could try rotating the system so that EPOCH's laser fires along the $x$ direction, to see if your reflections are still unusual.

Cheers, Stuart

kwang12008 commented 2 months ago

Hi @Status-Mirror, thanks for replying.

When I tilt the plasma plate 45 degrees, the laser is incident from the left boundary x=0 plane, and after reflection it propagates along y direction. In this case , the laser light is perpendicular to the boundary, but strange stray light still appear

Q5884623ZC4$ 8R~M}FU52C

Status-Mirror commented 2 months ago

Hi @kwang12008,

I don't think this is a bug in the code. While you may be starting with a target at temperature 1 eV, a PIC code will struggle to resolve this. You're likely seeing self heating, so the target will be much hotter by the time the laser reaches it.

The code will actually be simulating laser energy reflecting off a hot, dense plasma. Since the target particles have different energies, they respond differently in the laser field. You'll get a range of resulting currents, which all affect the laser propagation. I would expect what you see here - the laser is mostly reflected in the expected direction, with beams excited in other directions.

Hope this helps, Stuart

kwang12008 commented 2 months ago

Hi @Status-Mirror,

I tried to increase the grid to improve the resolution, and the light in other directions caused by self heating did decrease significantly.

Thanks a lot. wang