Grids

Warning

This section is currently in development.

3D Cartesian geometry

pydantic model picmistandard.PICMI_Cartesian3DGrid[source]

Three dimensional Cartesian grid Parameters can be specified either as vectors or separately. (If both are specified, the vector is used.)

References

absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle. Based on the Silver-Mueller Radiation Condition, e.g., in

Parameters

parameter bc_xmax: str | None = None

Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmax_particles: str | None = None

Boundary condition at max X for particles: One of periodic, absorbing, reflect, thermal

parameter bc_xmin: str | None = None

Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmin_particles: str | None = None

Boundary condition at min X for particles: One of periodic, absorbing, reflect, thermal

parameter bc_ymax: str | None = None

Boundary condition at max Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_ymax_particles: str | None = None

Boundary condition at max Y for particles: One of periodic, absorbing, reflect, thermal

parameter bc_ymin: str | None = None

Boundary condition at min Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_ymin_particles: str | None = None

Boundary condition at min Y for particles: One of periodic, absorbing, reflect, thermal

parameter bc_zmax: str | None = None

Boundary condition at max Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_zmax_particles: str | None = None

Boundary condition at max Z for particles: One of periodic, absorbing, reflect, thermal

parameter bc_zmin: str | None = None

Boundary condition at min Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_zmin_particles: str | None = None

Boundary condition at min Z for particles: One of periodic, absorbing, reflect, thermal

parameter guard_cells: list[int] | None = None

Number of guard cells used along each direction

parameter lower_bound: list[float] | None = None

Position of the node at the lower bound [m]

parameter lower_bound_particles: list[float] | None = None

Position of particle lower bound [m]

parameter lower_boundary_conditions: list[str | None] | None = None

Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter lower_boundary_conditions_particles: list[str | None] | None = None

Conditions at lower boundaries for particles, periodic, absorbing, reflect or thermal

parameter moving_window_velocity: list[float] | None = None

Moving frame velocity [m/s]

parameter number_of_cells: list[int] | None = None

Number of cells along each axis (number of nodes is number_of_cells+1)

parameter nx: int | None = None

Number of cells along X (number of nodes=nx+1)

parameter ny: int | None = None

Number of cells along Y (number of nodes=ny+1)

parameter nz: int | None = None

Number of cells along Z (number of nodes=nz+1)

parameter pml_cells: list[int] | None = None

Number of Perfectly Matched Layer (PML) cells along each direction

parameter refined_regions: list [Optional]

List of refined regions, each element being a list of the format [level, lo, hi, refinement_factor], with level being the refinement level, with 1 being the first level of refinement, 2 being the second etc, lo and hi being vectors of length 3 specifying the extent of the region, and refinement_factor defaulting to [2,2,2] (relative to next lower level)

parameter upper_bound: list[float] | None = None

Position of the node at the upper bound [m]

parameter upper_bound_particles: list[float] | None = None

Position of particle upper bound [m]

parameter upper_boundary_conditions: list[str | None] | None = None

Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter upper_boundary_conditions_particles: list[str | None] | None = None

Conditions at upper boundaries for particles, periodic, absorbing, reflect or thermal

parameter xmax: float | None = None

Position of last node along X [m]

parameter xmax_particles: float | None = None

Position of max particle boundary along X [m]

parameter xmin: float | None = None

Position of first node along X [m]

parameter xmin_particles: float | None = None

Position of min particle boundary along X [m]

parameter ymax: float | None = None

Position of last node along Y [m]

parameter ymax_particles: float | None = None

Position of max particle boundary along Y [m]

parameter ymin: float | None = None

Position of first node along Y [m]

parameter ymin_particles: float | None = None

Position of min particle boundary along Y [m]

parameter zmax: float | None = None

Position of last node along Z [m]

parameter zmax_particles: float | None = None

Position of max particle boundary along Z [m]

parameter zmin: float | None = None

Position of first node along Z [m]

parameter zmin_particles: float | None = None

Position of min particle boundary along Z [m]

Methods

add_refined_region(level, lo, hi, refinement_factor=None)[source]

Add a refined region.

Parameters:
  • level (int) – The refinement level, with 1 being the first level of refinement, 2 being the second etc.

  • lo (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 3

  • hi (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 3

  • refinement_factor (list of int, optional) – The refinement factor relative to the next lower level (default: [2, 2, 2])

Attributes

number_of_dimensions: ClassVar[int] = 3

2D Cartesian geometry

pydantic model picmistandard.PICMI_Cartesian2DGrid[source]

Two dimensional Cartesian grid Parameters can be specified either as vectors or separately. (If both are specified, the vector is used.)

References

absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle. Based on the Silver-Mueller Radiation Condition, e.g., in

Parameters

parameter bc_xmax: str | None = None

Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmax_particles: str | None = None

Boundary condition at max X for particles: One of periodic, absorbing, reflect, thermal

parameter bc_xmin: str | None = None

Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmin_particles: str | None = None

Boundary condition at min X for particles: One of periodic, absorbing, reflect, thermal

parameter bc_ymax: str | None = None

Boundary condition at max Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_ymax_particles: str | None = None

Boundary condition at max Y for particles: One of periodic, absorbing, reflect, thermal

parameter bc_ymin: str | None = None

Boundary condition at min Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_ymin_particles: str | None = None

Boundary condition at min Y for particles: One of periodic, absorbing, reflect, thermal

parameter guard_cells: list[int] | None = None

Number of guard cells used along each direction

parameter lower_bound: list[float] | None = None

Position of the node at the lower bound [m]

parameter lower_bound_particles: list[float] | None = None

Position of particle lower bound [m]

parameter lower_boundary_conditions: list[str | None] | None = None

Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter lower_boundary_conditions_particles: list[str | None] | None = None

Conditions at lower boundaries for particles, periodic, absorbing, reflect or thermal

parameter moving_window_velocity: list[float] | None = None

Moving frame velocity [m/s]

parameter number_of_cells: list[int] | None = None

Number of cells along each axis (number of nodes is number_of_cells+1)

parameter nx: int | None = None

Number of cells along X (number of nodes=nx+1)

parameter ny: int | None = None

Number of cells along Y (number of nodes=ny+1)

parameter pml_cells: list[int] | None = None

Number of Perfectly Matched Layer (PML) cells along each direction

parameter refined_regions: list [Optional]

List of refined regions, each element being a list of the format [level, lo, hi, refinement_factor], with level being the refinement level, with 1 being the first level of refinement, 2 being the second etc, lo and hi being vectors of length 2 specifying the extent of the region, and refinement_factor defaulting to [2,2] (relative to next lower level)

parameter upper_bound: list[float] | None = None

Position of the node at the upper bound [m]

parameter upper_bound_particles: list[float] | None = None

Position of particle upper bound [m]

parameter upper_boundary_conditions: list[str | None] | None = None

Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter upper_boundary_conditions_particles: list[str | None] | None = None

Conditions at upper boundaries for particles, periodic, absorbing, reflect or thermal

parameter xmax: float | None = None

Position of last node along X [m]

parameter xmax_particles: float | None = None

Position of max particle boundary along X [m]

parameter xmin: float | None = None

Position of first node along X [m]

parameter xmin_particles: float | None = None

Position of min particle boundary along X [m]

parameter ymax: float | None = None

Position of last node along Y [m]

parameter ymax_particles: float | None = None

Position of max particle boundary along Y [m]

parameter ymin: float | None = None

Position of first node along Y [m]

parameter ymin_particles: float | None = None

Position of min particle boundary along Y [m]

Methods

add_refined_region(level, lo, hi, refinement_factor=None)[source]

Add a refined region.

Parameters:
  • level (int) – The refinement level, with 1 being the first level of refinement, 2 being the second etc.

  • lo (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 2

  • hi (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 2

  • refinement_factor (list of int, optional) – The refinement factor relative to the next lower level (default: [2, 2])

Attributes

number_of_dimensions: ClassVar[int] = 2

1D Cartesian geometry

pydantic model picmistandard.PICMI_Cartesian1DGrid[source]

One-dimensional Cartesian grid Parameters can be specified either as vectors or separately. (If both are specified, the vector is used.)

References

absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle. Based on the Silver-Mueller Radiation Condition, e.g., in

Parameters

parameter bc_xmax: str | None = None

Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmax_particles: str | None = None

Boundary condition at max X for particles: One of periodic, absorbing, reflect, thermal

parameter bc_xmin: str | None = None

Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_xmin_particles: str | None = None

Boundary condition at min X for particles: One of periodic, absorbing, reflect, thermal

parameter guard_cells: list[int] | None = None

Number of guard cells used along each direction

parameter lower_bound: list[float] | None = None

Position of the node at the lower bound [m]

parameter lower_bound_particles: list[float] | None = None

Position of particle lower bound [m]

parameter lower_boundary_conditions: list[str | None] | None = None

Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter lower_boundary_conditions_particles: list[str | None] | None = None

Conditions at lower boundaries for particles, periodic, absorbing, reflect or thermal

parameter moving_window_velocity: list[float] | None = None

Moving frame velocity [m/s]

parameter number_of_cells: list[int] | None = None

Number of cells along each axis (number of nodes is number_of_cells+1)

parameter nx: int | None = None

Number of cells along X (number of nodes=nx+1)

parameter pml_cells: list[int] | None = None

Number of Perfectly Matched Layer (PML) cells along each direction

parameter refined_regions: list [Optional]

List of refined regions, each element being a list of the format [level, lo, hi, refinement_factor], with level being the refinement level, with 1 being the first level of refinement, 2 being the second etc, lo and hi being vectors of length 1 specifying the extent of the region, and refinement_factor defaulting to [2] (relative to next lower level)

parameter upper_bound: list[float] | None = None

Position of the node at the upper bound [m]

parameter upper_bound_particles: list[float] | None = None

Position of particle upper bound [m]

parameter upper_boundary_conditions: list[str | None] | None = None

Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter upper_boundary_conditions_particles: list[str | None] | None = None

Conditions at upper boundaries for particles, periodic, absorbing, reflect or thermal

parameter xmax: float | None = None

Position of last node along X [m]

parameter xmax_particles: float | None = None

Position of max particle boundary along X [m]

parameter xmin: float | None = None

Position of first node along X [m]

parameter xmin_particles: float | None = None

Position of min particle boundary along X [m]

Methods

add_refined_region(level, lo, hi, refinement_factor=None)[source]

Add a refined region.

Parameters:
  • level (int) – The refinement level, with 1 being the first level of refinement, 2 being the second etc.

  • lo (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 1

  • hi (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 1

  • refinement_factor (list of int, optional) – The refinement factor relative to the next lower level (default: [2])

Attributes

number_of_dimensions: ClassVar[int] = 1

Cylindrical geometry

pydantic model picmistandard.PICMI_CylindricalGrid[source]

Axisymmetric, cylindrical grid Parameters can be specified either as vectors or separately. (If both are specified, the vector is used.)

References

absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle. Based on the Silver-Mueller Radiation Condition, e.g., in

Parameters

parameter bc_rmax: str | None = None

Boundary condition at max R: One of open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_rmax_particles: str | None = None

Boundary condition at max R for particles: One of periodic, absorbing, reflect, thermal

parameter bc_rmin: str | None = None

Boundary condition at min R: One of open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_rmin_particles: str | None = None

Boundary condition at min R for particles: One of periodic, absorbing, reflect, thermal

parameter bc_zmax: str | None = None

Boundary condition at max Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_zmax_particles: str | None = None

Boundary condition at max Z for particles: One of periodic, absorbing, reflect, thermal

parameter bc_zmin: str | None = None

Boundary condition at min Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter bc_zmin_particles: str | None = None

Boundary condition at min Z for particles: One of periodic, absorbing, reflect, thermal

parameter guard_cells: list[int] | None = None

Number of guard cells used along each direction

parameter lower_bound: list[float] | None = None

Position of the node at the lower bound [m]

parameter lower_bound_particles: list[float] | None = None

Position of particle lower bound [m]

parameter lower_boundary_conditions: list[str | None] | None = None

Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter lower_boundary_conditions_particles: list[str | None] | None = None

Conditions at lower boundaries for particles, periodic, absorbing, reflect or thermal

parameter moving_window_velocity: list[float] | None = None

Moving frame velocity [m/s]

parameter n_azimuthal_modes: int | None = None

Number of azimuthal modes

parameter nr: int | None = None

Number of cells along R (number of nodes=nr+1)

parameter number_of_cells: list[int] | None = None

Number of cells along each axis (number of nodes is number_of_cells+1)

parameter nz: int | None = None

Number of cells along Z (number of nodes=nz+1)

parameter pml_cells: list[int] | None = None

Number of Perfectly Matched Layer (PML) cells along each direction

parameter refined_regions: list [Optional]

List of refined regions, each element being a list of the format [level, lo, hi, refinement_factor], with level being the refinement level, with 1 being the first level of refinement, 2 being the second etc, lo and hi being vectors of length 2 specifying the extent of the region, and refinement_factor defaulting to [2,2] (relative to next lower level)

parameter rmax: float | None = None

Position of last node along R [m]

parameter rmax_particles: float | None = None

Position of max particle boundary along R [m]

parameter rmin: float | None = None

Position of first node along R [m]

parameter rmin_particles: float | None = None

Position of min particle boundary along R [m]

parameter upper_bound: list[float] | None = None

Position of the node at the upper bound [m]

parameter upper_bound_particles: list[float] | None = None

Position of particle upper bound [m]

parameter upper_boundary_conditions: list[str | None] | None = None

Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann

parameter upper_boundary_conditions_particles: list[str | None] | None = None

Conditions at upper boundaries for particles, periodic, absorbing, reflect or thermal

parameter zmax: float | None = None

Position of last node along Z [m]

parameter zmax_particles: float | None = None

Position of max particle boundary along Z [m]

parameter zmin: float | None = None

Position of first node along Z [m]

parameter zmin_particles: float | None = None

Position of min particle boundary along Z [m]

Methods

add_refined_region(level, lo, hi, refinement_factor=None)[source]

Add a refined region.

Parameters:
  • level (int) – The refinement level, with 1 being the first level of refinement, 2 being the second etc.

  • lo (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 2

  • hi (list of float) – The lower (lo) and upper (hi) corner of the region, each a vector of length 2

  • refinement_factor (list of int, optional) – The refinement factor relative to the next lower level (default: [2, 2])

Attributes

number_of_dimensions: ClassVar[int] = 2