jaxincell._simulation¶
Functions¶
|
Load parameters from a TOML file. |
|
Initialize the simulation parameters for a particle-in-cell simulation, |
|
Initialize particles and electromagnetic fields for a Particle-in-Cell simulation. |
|
Run a plasma physics simulation using a Particle-In-Cell (PIC) method in JAX. |
Module Contents¶
- jaxincell._simulation.load_parameters(input_file)¶
Load parameters from a TOML file.
Parameters:¶
- input_filestr
Path to the TOML file containing simulation parameters.
Returns:¶
- parametersdict
Dictionary containing simulation parameters.
- jaxincell._simulation.initialize_simulation_parameters(user_parameters={})¶
Initialize the simulation parameters for a particle-in-cell simulation, combining user-provided values with predefined defaults. This function ensures all required parameters are set and automatically calculates derived parameters based on the inputs.
The function uses lambda functions to define derived parameters that depend on other parameters. These lambda functions are evaluated after merging user-provided parameters with the defaults, ensuring derived parameters are consistent with any overrides.
Parameters:¶
- user_parametersdict
Dictionary containing user-specified parameters. Any parameter not provided will default to predefined values.
Returns:¶
- parametersdict
Dictionary containing all simulation parameters, with user-provided values overriding defaults.
- jaxincell._simulation.initialize_particles_fields(input_parameters={}, number_grid_points=50, number_pseudoelectrons=500, number_pseudoparticles_species=None, total_steps=350, max_number_of_Picard_iterations_implicit_CN=20, number_of_particle_substeps_implicit_CN=2)¶
Initialize particles and electromagnetic fields for a Particle-in-Cell simulation.
This function generates particle positions, velocities, charges, masses, and charge-to-mass ratios, as well as the initial electric and magnetic fields. It combines user-provided parameters with default values and calculates derived quantities.
Parameters:¶
- user_parametersdict
Dictionary of user-specified simulation parameters. Can include: - Physical parameters (e.g., box size, number of particles, thermal velocities). - Numerical parameters (e.g., grid resolution, timestep). - Boundary conditions and random seed for reproducibility.
Returns:¶
- parametersdict
Updated dictionary containing: - Particle positions and velocities (electrons and ions). - Particle charges, masses, and charge-to-mass ratios. - Initial electric and magnetic fields.
- jaxincell._simulation.simulation(input_parameters={}, number_grid_points=100, number_pseudoelectrons=3000, number_pseudoparticles_species=None, total_steps=1000, field_solver=0, positions=None, velocities=None, time_evolution_algorithm=0, max_number_of_Picard_iterations_implicit_CN=20, number_of_particle_substeps_implicit_CN=2)¶
Run a plasma physics simulation using a Particle-In-Cell (PIC) method in JAX.
This function simulates the evolution of a plasma system by solving for particle motion (electrons and ions) and self-consistent electromagnetic fields on a grid. It uses the Boris algorithm for particle updates and a leapfrog scheme for field updates.
Parameters:¶
- user_parametersdict
User-defined parameters for the simulation. These can include: - Physical parameters: box size, number of particles, thermal velocities. - Numerical parameters: grid resolution, time step size. - Boundary conditions for particles and fields. - Random seed for reproducibility.
Returns:¶
output : dict