示例#1
0
                                   data_list=[],
                                   write_dir='.',
                                   warpx_file_prefix='Python_collisionXZ_plt')

#################################
####### SIMULATION SETUP ########
#################################

sim = picmi.Simulation(
    solver=solver,
    max_steps=max_steps,
    verbose=verbose,
    warpx_serialize_initial_conditions=serialize_initial_conditions,
    warpx_collisions=[collision1, collision2, collision3])

sim.add_species(electrons,
                layout=picmi.PseudoRandomLayout(
                    n_macroparticles_per_cell=number_per_cell, grid=grid))
sim.add_species(ions,
                layout=picmi.PseudoRandomLayout(
                    n_macroparticles_per_cell=number_per_cell, grid=grid))

sim.add_diagnostic(field_diag)

#################################
##### SIMULATION EXECUTION ######
#################################

#sim.write_input_file('PICMI_inputs_2d')
sim.step(max_steps)
示例#2
0
# Set up simulation
sim = picmi.Simulation(solver=solver,
                       max_steps=max_steps,
                       verbose=1,
                       particle_shape='cubic',
                       warpx_use_filter=1,
                       warpx_serialize_ics=1)

# Add plasma electrons
sim.add_species(electrons,
                layout=picmi.GriddedLayout(grid=grid,
                                           n_macroparticle_per_cell=[1, 1, 1]))

# Add beam electrons
sim.add_species(beam,
                layout=picmi.PseudoRandomLayout(grid=grid,
                                                n_macroparticles=100))

# Add laser
sim.add_laser(laser, injection_method=laser_antenna)

# Add diagnostics
sim.add_diagnostic(field_diag)

# Write input file that can be used to run with the compiled version
sim.write_input_file(file_name='inputs_2d_picmi')

# Initialize inputs and WarpX instance
sim.initialize_inputs()
sim.initialize_warpx()

# Advance simulation until last time step
示例#3
0
    warpx_file_prefix='Python_gaussian_beam_plt')

part_diag1 = picmi.ParticleDiagnostic(name='diag1',
                                      period=10,
                                      species=[electrons, protons],
                                      data_list=['weighting', 'momentum'],
                                      warpx_format=args.diagformat)

sim = picmi.Simulation(solver=solver,
                       max_steps=10,
                       verbose=1,
                       warpx_current_deposition_algo='direct',
                       warpx_use_filter=0)

sim.add_species(
    electrons,
    layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))
sim.add_species(
    protons,
    layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))

sim.add_diagnostic(field_diag1)
sim.add_diagnostic(part_diag1)

# 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()
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', initial_distribution=electron_beam)
protons = picmi.Species(particle_type='proton', name='protons', initial_distribution=proton_beam)

sim = picmi.Simulation(solver = solver,
                       max_steps = 10,
                       verbose = 1,
                       warpx_plot_int = 10,
                       warpx_current_deposition_algo = 'direct')

sim.add_species(electrons, layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))
sim.add_species(protons, layout=picmi.PseudoRandomLayout(n_macroparticles=number_sim_particles))

# 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()