directed_velocity=[0.1 * constants.c, 0., 0.]) electrons = picmi.Species(particle_type='electron', name='electrons', initial_distribution=uniform_plasma) grid = picmi.Cartesian2DGrid( number_of_cells=[nx, ny], lower_bound=[xmin, ymin], upper_bound=[xmax, ymax], lower_boundary_conditions=['periodic', 'periodic'], upper_boundary_conditions=['periodic', 'periodic'], moving_window_velocity=[0., 0., 0.], warpx_max_grid_size=32) solver = picmi.ElectromagneticSolver(grid=grid, cfl=1.) sim = picmi.Simulation(solver=solver, max_steps=40, verbose=1, warpx_plot_int=1, warpx_current_deposition_algo='direct') sim.add_species(electrons, layout=picmi.GriddedLayout(n_macroparticle_per_cell=[2, 2], grid=grid)) # write_inputs will create an inputs file that can be used to run # with the compiled version. sim.write_input_file(file_name='inputs2d_from_PICMI')
########################## # 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',
lower_bound=[xmin, ymin, zmin], upper_bound=[xmax, ymax, zmax], lower_boundary_conditions=['periodic', 'periodic', 'open'], upper_boundary_conditions=['periodic', 'periodic', 'open'], moving_window_velocity=moving_window_velocity, #refined_regions = [[1, [-25e-6, -25e-6, -200.e-6], [25e-6, 25e-6, 200.e-6]]], # as argument warpx_max_grid_size=128, warpx_blocking_factor=16) # --- As a seperate function call (instead of refined_regions argument) grid.add_refined_region(level=1, lo=[-25e-6, -25e-6, -200.e-6], hi=[25e-6, 25e-6, 200.e-6]) solver = picmi.ElectromagneticSolver(grid=grid, cfl=1, warpx_do_pml=1, warpx_pml_ncell=10) beam_distribution = picmi.UniformDistribution( density=1.e23, lower_bound=[-20.e-6, -20.e-6, -150.e-6], upper_bound=[+20.e-6, +20.e-6, -100.e-6], directed_velocity=[0., 0., 1.e9]) plasma_distribution = picmi.UniformDistribution( density=1.e22, lower_bound=[-200.e-6, -200.e-6, 0.], upper_bound=[+200.e-6, +200.e-6, None], fill_in=True) beam = picmi.Species(particle_type='electron',
weight=[1., 1.]) electrons = picmi.Species(particle_type='electron', name='electrons', initial_distribution=multiparticles_distribution) # Plasma lenses plasma_lenses = picmi.PlasmaLens( period=0.5, starts=[0.1, 0.11, 0.12, 0.13], lengths=[0.1, 0.11, 0.12, 0.13], strengths_E=[600000., 800000., 600000., 200000.], strengths_B=[0.0, 0.0, 0.0, 0.0]) # Electromagnetic solver solver = picmi.ElectromagneticSolver(grid=grid, method='Yee', cfl=0.7) # Diagnostics part_diag1 = picmi.ParticleDiagnostic( name='diag1', period=max_steps, species=[electrons], data_list=['ux', 'uy', 'uz'], write_dir='.', warpx_file_prefix='Python_plasma_lens_plt') # Set up simulation sim = picmi.Simulation(solver=solver, max_steps=max_steps, verbose=1, particle_shape='linear',
beam_rms_size = 0.25 electron_beam_divergence = -0.04 * constants.c em_order = 3 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'], warpx_max_grid_size=16) solver = picmi.ElectromagneticSolver( grid=grid, cfl=1., stencil_order=[em_order, em_order, em_order]) electron_beam = picmi.GaussianBunchDistribution( n_physical_particles=total_charge / constants.q_e, rms_bunch_size=[beam_rms_size, beam_rms_size, beam_rms_size], velocity_divergence=[ electron_beam_divergence, electron_beam_divergence, electron_beam_divergence ]) proton_beam = picmi.GaussianBunchDistribution( n_physical_particles=total_charge / constants.q_e, rms_bunch_size=[beam_rms_size, beam_rms_size, beam_rms_size]) electrons = picmi.Species(particle_type='electron', name='electrons',
laser = picmi.GaussianLaser( wavelength=0.8e-06, waist=5e-06, duration=15e-15, focal_position=[0, 0, profile_focal_distance + position_z], centroid_position=[0, 0, position_z - c * profile_t_peak], propagation_direction=[0, 0, 1], polarization_direction=[0, 1, 0], E0=e_max, fill_in=False) laser_antenna = picmi.LaserAntenna(position=[0., 0., position_z], normal_vector=[0, 0, 1]) # Electromagnetic solver solver = picmi.ElectromagneticSolver(grid=grid, method='Yee', cfl=1., divE_cleaning=0) # Diagnostics diag_field_list = ['B', 'E', 'J', 'rho'] field_diag = picmi.FieldDiagnostic( name='diag1', grid=grid, period=200, data_list=diag_field_list, write_dir='.', warpx_file_prefix='Python_LaserAccelerationMR_plt') # Set up simulation sim = picmi.Simulation(solver=solver, max_steps=max_steps,
########################## # numerics components ########################## grid = picmi.CylindricalGrid( number_of_cells=[nr, nz], n_azimuthal_modes=3, lower_bound=[rmin, zmin], upper_bound=[rmax, zmax], lower_boundary_conditions=['dirichlet', 'periodic'], upper_boundary_conditions=['dirichlet', 'periodic'], moving_window_zvelocity=0., warpx_max_grid_size=64) solver = picmi.ElectromagneticSolver(grid=grid, cfl=1., warpx_do_pml=0) ########################## # diagnostics ########################## field_diag1 = picmi.FieldDiagnostic(name='diag1', grid=grid, period=diagnostic_interval, data_list=['E', 'B', 'J', 'part_per_cell'], warpx_file_prefix='plotfiles/plt') part_diag1 = picmi.ParticleDiagnostic( name='diag1', period=diagnostic_interval, species=[electrons],
grid = picmi.Cartesian2DGrid(number_of_cells=[nx, nz], lower_bound=[xmin, zmin], upper_bound=[xmax, zmax], lower_boundary_conditions=field_boundary, upper_boundary_conditions=field_boundary, guard_cells=[nxg, nzg], moving_window_velocity=[0., 0., 0], warpx_max_grid_size_x=max_grid_size_x, warpx_max_grid_size_y=max_grid_size_z) # Initialize field solver solver = picmi.ElectromagneticSolver(grid=grid, cfl=0.95, method='PSATD', stencil_order=[nox, noz], divE_cleaning=1, divB_cleaning=1, pml_divE_cleaning=1, pml_divB_cleaning=1, warpx_psatd_update_with_rho=True) # Initialize diagnostics diag_field_list = ["E", "B"] field_diag = picmi.FieldDiagnostic(name='diag1', grid=grid, period=10, write_dir='.', warpx_file_prefix='Python_wrappers_plt', data_list=diag_field_list) # Initialize simulation