Applied Field descriptions
Warning
This section is currently in development.
Constant fields
- class picmistandard.PICMI_ConstantAppliedField(*, Ex: float | None = None, Ey: float | None = None, Ez: float | None = None, Bx: float | None = None, By: float | None = None, Bz: float | None = None, lower_bound: ~collections.abc.Sequence[float | None] = <factory>, upper_bound: ~collections.abc.Sequence[float | None] = <factory>, **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 a constant applied field.
- field Ex: float | None = None
Constant Ex field [V/m]
- field Ey: float | None = None
Constant Ey field [V/m]
- field Ez: float | None = None
Constant Ez field [V/m]
- field Bx: float | None = None
Constant Bx field [T]
- field By: float | None = None
Constant By field [T]
- field Bz: float | None = None
Constant Bz field [T]
- field lower_bound: Sequence[float | None] [Optional]
Lower bound of the region where the field is applied [m]
- field upper_bound: Sequence[float | None] [Optional]
Upper bound of the region where the field is applied [m]
Analytic fields
- class picmistandard.PICMI_AnalyticAppliedField(*, Ex_expression: str | None = None, Ey_expression: str | None = None, Ez_expression: str | None = None, Bx_expression: str | None = None, By_expression: str | None = None, Bz_expression: str | None = None, lower_bound: ~collections.abc.Sequence[float | None] = <factory>, upper_bound: ~collections.abc.Sequence[float | None] = <factory>, user_defined_kw: dict[str, ~typing.Any] = <factory>, **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 an analytic applied field.
The expressions should be in terms of the position and time, written as ‘x’, ‘y’, ‘z’, ‘t’. Parameters can be used in the expression with the values given as additional keyword arguments. Expressions should be relative to the lab frame.
- field Ex_expression: str | None = None
Analytic expression describing Ex field [V/m]
- field Ey_expression: str | None = None
Analytic expression describing Ey field [V/m]
- field Ez_expression: str | None = None
Analytic expression describing Ez field [V/m]
- field Bx_expression: str | None = None
Analytic expression describing Bx field [T]
- field By_expression: str | None = None
Analytic expression describing By field [T]
- field Bz_expression: str | None = None
Analytic expression describing Bz field [T]
- field lower_bound: Sequence[float | None] [Optional]
Lower bound of the region where the field is applied [m]
- field upper_bound: Sequence[float | None] [Optional]
Upper bound of the region where the field is applied [m]
- field user_defined_kw: dict[str, Any] [Optional]
Refecting mirrors
- class picmistandard.PICMI_Mirror(*, x_front_location: float | None = None, y_front_location: float | None = None, z_front_location: float | None = None, depth: float | None = None, number_of_cells: int | 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
Describes a perfectly reflecting mirror, where the E and B fields are zeroed out in a plane of finite thickness.
Only one of the [x,y,z]_front_location should be specified. The mirror will be set perpendicular to the respective direction and infinite in the others. The depth of the mirror will be the maximum of the specified depth and number_of_cells, or the code’s default value if neither are specified.
- field x_front_location: float | None = None
Location in x of the front of the mirror [m]
- field y_front_location: float | None = None
Location in y of the front of the mirror [m]
- field z_front_location: float | None = None
Location in z of the front of the mirror [m]
- field depth: float | None = None
Depth of the mirror [m]
- field number_of_cells: int | None = None
Minimum number of cells zeroed out
Loading fields from file
- class picmistandard.PICMI_LoadAppliedField(*, read_fields_from_path: str, load_B: bool = True, load_E: bool = True, **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
The E and B fields read from file are applied to the particles directly. (They are not affected by the field solver.) The expected format is the file is OpenPMD with axes (x,y,z) in Cartesian, or (r,z) in Cylindrical geometry.
- field read_fields_from_path: str [Required]
Path to file with field data
- field load_B: bool = True
If False, do not load magnetic field
- field load_E: bool = True
If False, do not load electric field
- class picmistandard.PICMI_LoadGriddedField(*, read_fields_from_path: str, load_B: bool = True, load_E: bool = True, **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
The data read in is used to initialize the E and B fields on the grid at the start of the simulation. The expected format is the file is OpenPMD with axes (x,y,z) in Cartesian, or (r,z) in Cylindrical geometry.
- field read_fields_from_path: str [Required]
Path to file with field data
- field load_B: bool = True
If False, do not load magnetic field
- field load_E: bool = True
If False, do not load electric field