aboutsummaryrefslogtreecommitdiff
path: root/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2022-01-03 15:30:57 -0800
committerGravatar GitHub <noreply@github.com> 2022-01-04 00:30:57 +0100
commitce5914f5c2fcffd077214b2efdfab123e93c92d4 (patch)
treed52b1aced339c9c64fd5bca85accff070e23cc85 /Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
parentcf42f7e075dea7dd61e17a9482b8d10354db0872 (diff)
downloadWarpX-ce5914f5c2fcffd077214b2efdfab123e93c92d4.tar.gz
WarpX-ce5914f5c2fcffd077214b2efdfab123e93c92d4.tar.zst
WarpX-ce5914f5c2fcffd077214b2efdfab123e93c92d4.zip
Add PICMI Scripts for LWFA Tests (#2700)
* Add PICMI Script for 2D Case * Add PICMI Script for 3D Case * Cleaning * Add PICMI Script for 1D Case * Add PICMI Script for RZ Case * Remove Old PICMI Script * Remove Old Test Python_LaserAccelerationMR * inputs_3d: Move Inputs From runtime_params * inputs_2d: Move Inputs From runtime_params * Update PICMI Script for 2D Case * Update PICMI Script for 3D Case * inputs_1d: Move Inputs From runtime_params * inputs_2d_rz: Move Inputs From runtime_params * Rename inputs_2d_rz as inputs_rz * Update PICMI Script for 1D Case * Update PICMI Script for RZ Case * inputs_rz: Fix Diagnostic Interval * Fix Diagnostic Interval For All Inputs * Add New Test For Each PICMI Script * Remove Old PICMI Script From Workflow yml Files * Dump RZ Modes for RZ Case * LWFA PICMI: Add Shellbang Add missing shellbang lines. Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py')
-rwxr-xr-xExamples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py147
1 files changed, 0 insertions, 147 deletions
diff --git a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py b/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
deleted file mode 100755
index 4931a20e9..000000000
--- a/Examples/Physics_applications/laser_acceleration/PICMI_inputs_laser_acceleration.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/usr/bin/env python3
-#
-import numpy as np
-from pywarpx import picmi
-
-#from warp import picmi
-
-constants = picmi.constants
-
-##########################
-# physics parameters
-##########################
-
-# --- laser
-
-laser_a0 = 4. # Normalized potential vector
-laser_wavelength = 8e-07 # Wavelength of the laser (in meters)
-laser_waist = 5e-06 # Waist of the laser (in meters)
-laser_duration = 15e-15 # Duration of the laser (in seconds)
-laser_polarization = 0. # Polarization angle (in rad)
-laser_injection_loc = 9.e-6 # Position of injection (in meters, along z)
-laser_focal_distance = 100.e-6 # Focal distance from the injection (in meters)
-laser_t_peak = 30.e-15 # The time at which the laser reaches its peak
- # at the antenna injection location (in seconds)
-# --- plasma
-
-plasma_density = 1.e24
-plasma_min = [-20.e-6, -20.e-6, 0.0e-6]
-plasma_max = [ 20.e-6, 20.e-6, 1.e-3]
-
-
-##########################
-# numerics parameters
-##########################
-
-# --- Nb time steps
-
-max_steps = 10
-
-# --- grid
-
-nx = 64
-ny = 64
-nz = 480
-
-xmin = 1.5*plasma_min[0]
-xmax = 1.5*plasma_max[0]
-ymin = 1.5*plasma_min[1]
-ymax = 1.5*plasma_max[1]
-zmin = -56.e-6
-zmax = 12.e-6
-
-moving_window_velocity = [0., 0., constants.c]
-
-number_per_cell_each_dim = [2, 2, 1]
-
-##########################
-# physics components
-##########################
-
-# --- laser
-
-laser = picmi.GaussianLaser(wavelength = laser_wavelength,
- waist = laser_waist,
- duration = laser_duration,
- focal_position = [0., 0., laser_focal_distance + laser_injection_loc],
- centroid_position = [0., 0., laser_injection_loc - constants.c*laser_t_peak],
- polarization_direction = [np.cos(laser_polarization), np.sin(laser_polarization), 0.],
- propagation_direction = [0,0,1],
- E0 = laser_a0*2.*np.pi*constants.m_e*constants.c**2/(constants.q_e*laser_wavelength)) # Maximum amplitude of the laser field (in V/m)
-
-laser_antenna = picmi.LaserAntenna(position = [0., 0., laser_injection_loc], # This point is on the laser plane
- normal_vector = [0., 0., 1.]) # The plane normal direction
-
-# --- plasma
-
-uniform_plasma = picmi.UniformDistribution(density = plasma_density,
- lower_bound = plasma_min,
- upper_bound = plasma_max,
- fill_in = True)
-
-electrons = picmi.Species(particle_type = 'electron',
- name = 'electrons',
- initial_distribution = uniform_plasma)
-
-
-##########################
-# numerics components
-##########################
-
-grid = picmi.Cartesian3DGrid(number_of_cells = [nx, ny, nz],
- lower_bound = [xmin, ymin, zmin],
- upper_bound = [xmax, ymax, zmax],
- lower_boundary_conditions = ['periodic', 'periodic', 'open'],
- upper_boundary_conditions = ['periodic', 'periodic', 'open'],
- lower_boundary_conditions_particles = ['periodic', 'periodic', 'absorbing'],
- upper_boundary_conditions_particles = ['periodic', 'periodic', 'absorbing'],
- moving_window_velocity = moving_window_velocity,
- warpx_max_grid_size=32)
-
-solver = picmi.ElectromagneticSolver(grid=grid, method='CKC', cfl=1.)
-
-
-##########################
-# diagnostics
-##########################
-
-diag_field_list = ["rho", "E", "B", "J"]
-field_diag1 = picmi.FieldDiagnostic(name = 'diag1',
- grid = grid,
- period = 10,
- write_dir = '.',
- warpx_file_prefix = 'Python_LaserAccelerationMR_plt',
- data_list = diag_field_list)
-
-part_diag1 = picmi.ParticleDiagnostic(name = 'diag1',
- period = 10,
- species = [electrons],
- data_list = ['ux', 'uy', 'uz', 'weighting'])
-
-##########################
-# simulation setup
-##########################
-
-sim = picmi.Simulation(solver = solver,
- max_steps = max_steps,
- verbose = 1,
- warpx_current_deposition_algo = 'esirkepov',
- warpx_use_filter = 0)
-
-sim.add_species(electrons, layout=picmi.GriddedLayout(grid=grid, n_macroparticle_per_cell=number_per_cell_each_dim))
-
-sim.add_laser(laser, injection_method=laser_antenna)
-
-sim.add_diagnostic(field_diag1)
-sim.add_diagnostic(part_diag1)
-
-##########################
-# simulation run
-##########################
-
-# write_inputs will create an inputs file that can be used to run
-# with the compiled version.
-#sim.write_input_file(file_name = 'inputs_from_PICMI')
-
-# Alternatively, sim.step will run WarpX, controlling it from Python
-sim.step(max_steps)