Particle layouts
Warning
This section is currently in development.
- class picmistandard.PICMI_GriddedLayout(*, n_macroparticle_per_cell: Sequence[int], grid: PICMI_Cartesian1DGrid | PICMI_Cartesian2DGrid | PICMI_Cartesian3DGrid | PICMI_CylindricalGrid | None = None, **extra_data: Any)[source]
Base class for all PICMI classes using Pydantic for validation and extensibility.
This class allows code-specific extensions (e.g., warpx_* kwargs) via Pydantic’s extra fields mechanism while maintaining type safety for standard attributes.
Implementation specific documentation
Specifies a gridded layout of particles
- field n_macroparticle_per_cell: Sequence[int] [Required]
Vector of integers. Number of particles per cell along each axis
- field grid: PICMI_Cartesian1DGrid | PICMI_Cartesian2DGrid | PICMI_Cartesian3DGrid | PICMI_CylindricalGrid | None = None
Grid instance, optional. Grid object specifying the grid to follow. If not specified, the underlying grid of the code is used.
- class picmistandard.PICMI_PseudoRandomLayout(*, n_macroparticles: int | None = None, n_macroparticles_per_cell: int | None = None, seed: int | None = None, grid: PICMI_Cartesian1DGrid | PICMI_Cartesian2DGrid | PICMI_Cartesian3DGrid | PICMI_CylindricalGrid | None = None, **extra_data: Any)[source]
Base class for all PICMI classes using Pydantic for validation and extensibility.
This class allows code-specific extensions (e.g., warpx_* kwargs) via Pydantic’s extra fields mechanism while maintaining type safety for standard attributes.
Implementation specific documentation
Specifies a pseudo-random layout of the particles
- field n_macroparticles: int | None = None
Integer, optional. Total number of macroparticles to load. Either this argument or n_macroparticles_per_cell should be supplied (not both).
- field n_macroparticles_per_cell: int | None = None
Integer, optional. Number of macroparticles to load per cell. Either this argument or n_macroparticles should be supplied (not both).
- field seed: int | None = None
Integer, optional. Pseudo-random number generator seed
- field grid: PICMI_Cartesian1DGrid | PICMI_Cartesian2DGrid | PICMI_Cartesian3DGrid | PICMI_CylindricalGrid | None = None
Grid instance, optional. Grid object specifying the grid to follow for n_macroparticles_per_cell. If not specified, the underlying grid of the code is used.
- class picmistandard.PICMI_ParticleDistributionPlanarInjector(*, position: ~collections.abc.Sequence[float], plane_normal: ~collections.abc.Sequence[float], plane_velocity: ~collections.abc.Sequence[float] = <factory>, method: ~typing.Literal['InPlace', 'Plane'] = 'InPlace', **extra_data: ~typing.Any)[source]
Base class for all PICMI classes using Pydantic for validation and extensibility.
This class allows code-specific extensions (e.g., warpx_* kwargs) via Pydantic’s extra fields mechanism while maintaining type safety for standard attributes.
Implementation specific documentation
Describes the injection of particles from a plane
- field position: Sequence[float] [Required]
Vector of length 3 of floats. Position of the particle centroid [m]
- field plane_normal: Sequence[float] [Required]
Vector of length 3 of floats. Vector normal to the plane of injection [1]
- field plane_velocity: Sequence[float] [Optional]
Vector of length 3 of floats, default=[0.,0.,0.]. Velocity of the plane of injection [m/s]
- field method: Literal['InPlace', 'Plane'] = 'InPlace'
String, default=’InPlace’. Method: ‘InPlace’ or ‘Plane’