Particle distributions
Warning
This section is currently in development.
-
pydantic model picmistandard.PICMI_GaussianBunchDistribution[source]
Describes a Gaussian distribution of particles
Parameters
-
parameter centroid_position: list[float] [Optional]
Position of the bunch centroid at t=0 [m]
-
parameter centroid_velocity: list[float] [Optional]
Velocity (gamma*V) of the bunch centroid at t=0 [m/s]
-
parameter n_physical_particles: float [Required]
Number of physical particles in the bunch
-
parameter rms_bunch_size: list[float] [Required]
RMS bunch size at t=0 [m]
-
parameter rms_velocity: list[float] [Optional]
RMS velocity spread at t=0 [m/s]
-
parameter velocity_divergence: list[float] [Optional]
Expansion rate of the bunch at t=0 [m/s/m]
-
pydantic model picmistandard.PICMI_UniformDistribution[source]
Describes a uniform density distribution of particles
Parameters
-
parameter density: float [Required]
Physical number density [m^-3]
-
parameter directed_velocity: list[float] [Optional]
Directed, average, proper velocity [m/s]
-
parameter fill_in: bool | None = None
Flags whether to fill in the empty spaced opened up when the grid moves
-
parameter lower_bound: list[float | None] [Optional]
Lower bound of the distribution [m]
-
parameter rms_velocity: list[float] [Optional]
Thermal velocity spread [m/s]
-
parameter upper_bound: list[float | None] [Optional]
Upper bound of the distribution [m]
-
pydantic model picmistandard.PICMI_FoilDistribution[source]
Describes a foil with optional exponential pre- and post-plasma ramps along the propagation direction.
Parameters
-
parameter density: float [Required]
Physical number density [m^-3]
-
parameter directed_velocity: list[float] [Optional]
Directed, average, proper velocity [m/s]
-
parameter exponential_post_plasma_cutoff: float | None = None
Cutoff length for exponential decay of post-foil density [m]
-
parameter exponential_post_plasma_length: float | None = None
Length scale of exponential decay of post-foil plasma density [m]
-
parameter exponential_pre_plasma_cutoff: float | None = None
Cutoff length for exponential decay of pre-foil density [m]
-
parameter exponential_pre_plasma_length: float | None = None
Length scale of exponential decay of pre-foil plasma density [m]
-
parameter fill_in: bool | None = None
Flags whether to fill in the empty spaced opened up when the grid moves
-
parameter front: float [Required]
Position of front surface of foil [m]
-
parameter lower_bound: list[float | None] [Optional]
Lower bound of the distribution [m]
-
parameter rms_velocity: list[float] [Optional]
Thermal velocity spread [m/s]
-
parameter thickness: float [Required]
Thickness of the foil [m]
-
parameter upper_bound: list[float | None] [Optional]
Upper bound of the distribution [m]
-
picmistandard.PICMI_UniformFluxDistribution
alias of PICMI_AnalyticFluxDistribution
-
pydantic model picmistandard.PICMI_AnalyticDistribution[source]
Describes a plasma with density following a provided analytic expression
Parameters can be used in the expressions, with their values given as keyword arguments.
For example, this creates a distribution where the density is n0 below rmax and
zero elsewhere:
dist = AnalyticDistribution(density_expression='((x**2+y**2)<rmax**2)*n0',
rmax = 1.,
n0 = 1.e20,
...)
Parameters
-
parameter density_expression: Expression [Required]
Analytic expression describing physical number density [m^-3]. Expression should be in terms of the position, written as ‘x’, ‘y’, and ‘z’. Parameters can be used in the expression with the values given as keyword arguments.
-
parameter directed_velocity: list[float] [Optional]
Directed, average, proper velocity [m/s]
-
parameter fill_in: bool | None = None
Flags whether to fill in the empty spaced opened up when the grid moves
-
parameter lower_bound: list[float | None] [Optional]
Lower bound of the distribution [m]
-
parameter momentum_expressions: list[Expression | None] [Optional]
Analytic expressions describing the gamma*velocity for each axis [m/s]. Expressions should be in terms of the position, written as ‘x’, ‘y’, and ‘z’. For any axis not supplied (set to None), directed_velocity will be used.
-
parameter momentum_spread_expressions: list[Expression | None] [Optional]
Analytic expressions describing the gamma*velocity Gaussian thermal spread sigma for each axis [m/s]. For any axis not supplied (set to None), zero will be used.
-
parameter rms_velocity: list[float] [Optional]
Thermal velocity spread [m/s]
-
parameter upper_bound: list[float | None] [Optional]
Upper bound of the distribution [m]
-
parameter user_defined_kw: dict [Optional]
Constants referenced in the analytic expressions, collected from otherwise-unrecognized keyword arguments.
-
pydantic model picmistandard.PICMI_AnalyticFluxDistribution[source]
Describes a flux of particles emitted from a plane
Parameters can be used in the flux expression, with their values given as keyword arguments.
Parameters
-
parameter directed_velocity: list[float] [Optional]
Directed, average, proper velocity [m/s]
-
parameter flux: Expression [Required]
Analytic expression describing flux of particles [m^-2.s^-1]. Expression should be in terms of the position and time, written as ‘x’, ‘y’, ‘z’, and ‘t’.
-
parameter flux_direction: Literal[-1, 1] [Required]
Direction of the flux relative to the plane: -1 or +1
-
parameter flux_normal_axis: str [Required]
x, y, or z for 3D, x or z for 2D, or r, t, or z in RZ geometry
-
parameter flux_tmax: float | None = None
Time at which the flux injection will be turned off.
-
parameter flux_tmin: float | None = None
Time at which the flux injection will be turned on.
-
parameter gaussian_flux_momentum_distribution: bool | None = None
If True, the momentum distribution is v*Gaussian, in the direction normal to the plane. Otherwise, the momentum distribution is simply Gaussian.
-
parameter lower_bound: list[float | None] [Optional]
Lower bound of the distribution [m]
-
parameter rms_velocity: list[float] [Optional]
Thermal velocity spread [m/s]
-
parameter surface_flux_position: float [Required]
Location of the injection plane [m] along the direction specified by flux_normal_axis
-
parameter upper_bound: list[float | None] [Optional]
Upper bound of the distribution [m]
-
parameter user_defined_kw: dict [Optional]
Constants referenced in the flux expression, collected from otherwise-unrecognized keyword arguments.
-
pydantic model picmistandard.PICMI_ParticleListDistribution[source]
Load particles at the specified positions and velocities
The positions and velocities can be given as lists, or as a single value that is used for
all particles. All lists must have the same length.
Parameters
-
parameter ux: list[float] [Optional]
List of ux of the particles (ux = gamma*vx) [m/s]
-
parameter uy: list[float] [Optional]
List of uy of the particles (uy = gamma*vy) [m/s]
-
parameter uz: list[float] [Optional]
List of uz of the particles (uz = gamma*vz) [m/s]
-
parameter weight: float | list[float] = 0.0
Particle weight or list of weights, number of real particles per simulation particle
-
parameter x: list[float] [Optional]
List of x positions of the particles [m]
-
parameter y: list[float] [Optional]
List of y positions of the particles [m]
-
parameter z: list[float] [Optional]
List of z positions of the particles [m]
-
pydantic model picmistandard.PICMI_FromFileDistribution[source]
Load particles from an openPMD file.
The openPMD file must contain the attributes position, momentum, weighting.
Parameters
-
parameter file_path: str [Required]
Path to the openPMD file
-
pydantic model picmistandard.PICMI_ParticleDistributionPlanarInjector[source]
Describes the injection of particles from a plane
Parameters
-
parameter method: Literal['InPlace', 'Plane'] = 'InPlace'
Method of injection
-
parameter plane_normal: list[float] [Required]
Vector normal to the plane of injection [1]
-
parameter plane_velocity: list[float] [Optional]
Velocity of the plane of injection [m/s]
-
parameter position: list[float] [Required]
Position of the particle centroid [m]