# algo algo.charge_deposition = standard algo.current_deposition = direct algo.field_gathering = momentum-conserving algo.maxwell_solver = PSATD algo.particle_pusher = vay algo.particle_shape = 3 amrex.fpe_trap_invalid = 1 # amr amr.blocking_factor = 64 amr.max_grid_size = 4000 amr.max_level = 0 amr.n_cell = 128 3840 # beam beam.charge = -q_e beam.initialize_self_fields = 0 beam.injection_style = gaussian_beam beam.do_symmetrize = 1 beam.mass = m_e beam.momentum_distribution_type = gaussian beam.npart = 50000 beam.q_tot = -1.e-15 beam.rigid_advance = 1 beam.ux_m = 0.0 beam.ux_th = 2.69 beam.uy_m = 0.0 beam.uy_th = 2.69 beam.uz_m = 1956.9469069265979 beam.uz_th = 0. beam.x_m = 0.0 beam.x_rms = 1.11e-06 beam.y_m = 0.0 beam.y_rms = 1.11e-06 beam.z_m = -0.000109 beam.z_rms = 5.e-7 beam.zinject_plane = 0.0 # boundary boundary.field_hi = none damped boundary.field_lo = none damped boundary.particle_hi = absorbing absorbing boundary.particle_lo = absorbing absorbing # diag diag.diag_type = Full diag.fields_to_plot = Er Et Ez rho diag.format = openpmd diag.intervals = 100 diag.species = beam diag_btd.diag_type = BackTransformed diag_btd.fields_to_plot = Er Et Ez rho diag_btd.format = openpmd diag_btd.dz_snapshots_lab = 0.0005 diag_btd.num_snapshots_lab = 180 diag_btd.species = beam btd_part.diag_type = BackTransformed btd_part.fields_to_plot = none btd_part.format = openpmd btd_part.dz_snapshots_lab = 0.0005 btd_part.num_snapshots_lab = 180 btd_part.species = beam # diagnostics diagnostics.diags_names = diag diag_btd btd_part # electrons1 electrons1.charge = -q_e electrons1.density_function(x,y,z) = "n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.-cos(pi*(z-0.0)/Lplus)))*((z-0.0)=Lplus)*((z-0.0)<(Lplus+Lp))+n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.+cos(pi*((z-0.0)-Lplus-Lp)/Lminus)))*((z-0.0)>=(Lplus+Lp))*((z-0.0)<(Lplus+Lp+Lminus))" electrons1.do_continuous_injection = 1 electrons1.initialize_self_fields = 0 electrons1.injection_style = nuniformpercell electrons1.mass = m_e electrons1.momentum_distribution_type = constant electrons1.num_particles_per_cell_each_dim = 2 8 2 electrons1.profile = parse_density_function electrons1.ux = 0.0 electrons1.uy = 0.0 electrons1.uz = 0.0 electrons1.xmax = 0.0001 electrons1.xmin = -0.0001 electrons1.ymax = 0.0001 electrons1.ymin = -0.0001 electrons1.zmax = 0.32 electrons1.zmin = 0.0 # electrons2 electrons2.charge = -q_e electrons2.density_function(x,y,z) = "n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.-cos(pi*(z-0.35)/Lplus)))*((z-0.35)=Lplus)*((z-0.35)<(Lplus+Lp))+n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.+cos(pi*((z-0.35)-Lplus-Lp)/Lminus)))*((z-0.35)>=(Lplus+Lp))*((z-0.35)<(Lplus+Lp+Lminus))" electrons2.do_continuous_injection = 1 electrons2.initialize_self_fields = 0 electrons2.injection_style = nuniformpercell electrons2.mass = m_e electrons2.momentum_distribution_type = constant electrons2.num_particles_per_cell_each_dim = 2 8 2 electrons2.profile = parse_density_function electrons2.ux = 0.0 electrons2.uy = 0.0 electrons2.uz = 0.0 electrons2.xmax = 0.0001 electrons2.xmin = -0.0001 electrons2.ymax = 0.0001 electrons2.ymin = -0.0001 electrons2.zmax = 0.6699999999999999 electrons2.zmin = 0.35 # geometry geometry.dims = RZ geometry.prob_hi = 128.e-6 0. geometry.prob_lo = 0. -180.e-6 # ions1 ions1.charge = q_e ions1.density_function(x,y,z) = "n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.-cos(pi*(z-0.0)/Lplus)))*((z-0.0)=Lplus)*((z-0.0)<(Lplus+Lp))+n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.+cos(pi*((z-0.0)-Lplus-Lp)/Lminus)))*((z-0.0)>=(Lplus+Lp))*((z-0.0)<(Lplus+Lp+Lminus))" ions1.do_continuous_injection = 1 ions1.initialize_self_fields = 0 ions1.injection_style = nuniformpercell ions1.mass = m_p ions1.momentum_distribution_type = constant ions1.num_particles_per_cell_each_dim = 2 8 2 ions1.profile = parse_density_function ions1.ux = 0.0 ions1.uy = 0.0 ions1.uz = 0.0 ions1.xmax = 0.0001 ions1.xmin = -0.0001 ions1.ymax = 0.0001 ions1.ymin = -0.0001 ions1.zmax = 0.32 ions1.zmin = 0.0 # ions2 ions2.charge = q_e ions2.density_function(x,y,z) = "n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.-cos(pi*(z-0.35)/Lplus)))*((z-0.35)=Lplus)*((z-0.35)<(Lplus+Lp))+n0*(1.+4.*(x**2+y**2)/(kp**2*Rc**4))*(0.5*(1.+cos(pi*((z-0.35)-Lplus-Lp)/Lminus)))*((z-0.35)>=(Lplus+Lp))*((z-0.35)<(Lplus+Lp+Lminus))" ions2.do_continuous_injection = 1 ions2.initialize_self_fields = 0 ions2.injection_style = nuniformpercell ions2.mass = m_p ions2.momentum_distribution_type = constant ions2.num_particles_per_cell_each_dim = 2 8 2 ions2.profile = parse_density_function ions2.ux = 0.0 ions2.uy = 0.0 ions2.uz = 0.0 ions2.xmax = 0.0001 ions2.xmin = -0.0001 ions2.ymax = 0.0001 ions2.ymin = -0.0001 ions2.zmax = 0.6699999999999999 ions2.zmin = 0.35 # laser1 laser1.direction = 0.0 0.0 1.0 laser1.do_continuous_injection = 0 laser1.e_max = 6822740000000.0 laser1.polarization = 0.0 1.0 0.0 laser1.position = 0.0 0.0 -1e-09 laser1.profile = Gaussian laser1.profile_duration = 7.33841e-14 laser1.profile_focal_distance = 0.00875 laser1.profile_t_peak = 1.46764864e-13 laser1.profile_waist = 5e-05 laser1.wavelength = 8e-07 # laser2 laser2.direction = 0.0 0.0 1.0 laser2.do_continuous_injection = 1 laser2.e_max = 6822740000000.0 laser2.polarization = 0.0 1.0 0.0 laser2.position = 0.0 0.0 0.34999999899999995 laser2.profile = Gaussian laser2.profile_duration = 7.33841e-14 laser2.profile_focal_distance = 0.00874999999999998 laser2.profile_t_peak = 1.167621098057891e-09 laser2.profile_waist = 5e-05 laser2.wavelength = 8e-07 # lasers lasers.names = laser1 laser2 # my_constants my_constants.Lminus = 0.000001 #0.0125 my_constants.Lp = 0.319998 #0.295 my_constants.Lplus = 0.000001 #0.0125 my_constants.Rc = 4e-05 my_constants.kp = 77588.13070567355 my_constants.n0 = 1.7e+23 my_constants.pi = 3.141592653589793 my_constants.lens_width = 3.e-3 my_constants.lens_focal_length = 1.5e-2 my_constants.beam_gamma = 15620 # particles particles.B_ext_particle_init_style = repeated_plasma_lens particles.B_ext_particle_init_style = repeated_plasma_lens particles.repeated_plasma_lens_period = 0.35 particles.repeated_plasma_lens_starts = "Lminus + Lp + Lplus + lens_focal_length - lens_width/2" particles.repeated_plasma_lens_lengths = lens_width particles.repeated_plasma_lens_strengths_B = 2*beam_gamma*clight*m_e/(q_e*lens_focal_length*lens_width) particles.rigid_injected_species = beam particles.species_names = electrons1 ions1 electrons2 ions2 beam # psatd psatd.current_correction = 1 psatd.nox = 16 psatd.noz = 16 psatd.nx_guard = 32 psatd.nz_guard = 32 psatd.update_with_rho = 1 psatd.v_galilean = 0.0 0.0 -0.9998611014647094 # warpx warpx.boost_direction = z warpx.cfl = 0.9999 warpx.do_moving_window = 1 warpx.do_nodal = 0 warpx.filter_npass_each_dir = 1 1 warpx.gamma_boost = 60.0 warpx.mirror_z = 0.321 warpx.mirror_z_npoints = 4 warpx.mirror_z_width = 8e-06 warpx.moving_window_dir = z warpx.moving_window_v = 1.0 warpx.n_rz_azimuthal_modes = 1 warpx.num_mirrors = 1 warpx.use_filter = 1 warpx.use_filter_compensation = 0 warpx.verbose = 2 warpx.do_single_precision_comms = 1 warpx.zmax_plasma_to_compute_max_step = 0.2