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