cherab.imas.plasma.load_plasma¶

cherab.imas.plasma.load_plasma(*args, time: float = 0, occurrence_core: int = 0, edge_args: tuple | None = None, edge_kwargs: dict | None = None, time_edge: float | None = None, occurrence_edge: int = 0, grid_ggd: IDSStructure | None = None, grid_subset_id: int | str = 5, equilibrium: EFITEquilibrium | None = None, b_field: Function2D | None = None, psi_interpolator: Callable[[float], float] | None = None, mask: Function2D | Function3D | None = None, time_threshold: float = inf, parent: _NodeBase | None = None, **kwargs) PlasmaSource¶

Load core and edge profiles and create a Plasma object.

If the edge_profiles IDS is empty, returns only the core plasma. If the core_profiles IDS is empty, returns only the edge plasma.

To load the edge plasma from a different IMAS entry, use edge_args and edge_kwargs to pass different arguments to the DBEntry constructor.

Parameters:
*args¶

Arguments passed to the DBEntry constructor.

time: float = 0¶

Time for the core plasma, by default 0.

occurrence_core: int = 0¶

Occurrence index of the core_profiles IDS, by default 0.

edge_args: tuple | None = None¶

Arguments passed to the DBEntry constructor for the edge plasma if different from the core plasma. By default None: uses the same as *args.

edge_kwargs: dict | None = None¶

Keyword arguments passed to the DBEntry constructor for the edge plasma if different from the core plasma. By default None: uses the same as **kwargs.

time_edge: float | None = None¶

Time for the edge plasma. If None, uses time. By default None.

occurrence_edge: int = 0¶

Occurrence index of the edge_profiles IDS, by default 0.

grid_ggd: IDSStructure | None = None¶

Alternative grid_ggd structure describing the grid. By default None.

grid_subset_id: int | str = 5¶

Identifier of the grid subset (index or name). By default 5 ("Cells").

equilibrium: EFITEquilibrium | None = None¶

Alternative EFITEquilibrium used to map core profiles. By default None: the equilibrium is read from the same IMAS query as the core profiles. Ignored if the core plasma is not available.

b_field: Function2D | None = None¶

Alternative 2D interpolator of the magnetic field vector (Br, Bphi, Bz). By default None: the magnetic field is loaded from the equilibrium IDS.

psi_interpolator: Callable[[float], float] | None = None¶

Alternative psi_norm(rho_tor_norm) interpolator. Used only if psi is missing in the core grid. By default None. Obtained from the equilibrium IDS.

mask: Function2D | Function3D | None = None¶

Mask function used for blending: (1 - mask) * f_edge + mask * f_core. By default, uses EFITEquilibrium’s inside_lcfs.

time_threshold: float = inf¶

Maximum allowed difference between the requested time and the nearest available time, by default numpy.inf.

parent: _NodeBase | None = None¶

Parent node in the Raysect scene graph, by default None. Typically a World instance.

**kwargs¶

Keyword arguments passed to the DBEntry constructor.

Returns:

Plasma object with core and/or edge profiles.

Return type:

Plasma

Raises:

RuntimeError – If neither core nor edge profiles are available.