cherab.imas.plasma.load_core_plasmaΒΆ

cherab.imas.plasma.load_core_plasma(*args, time: float = 0, occurrence: int = 0, equilibrium: EFITEquilibrium | None = None, b_field: Function2D | None = None, psi_interpolator: Callable[[float], float] | None = None, time_threshold: float = inf, split_ion_bundles: bool = True, atomic_data: AtomicData | None = None, parent: _NodeBase | None = None, **kwargs) PlasmaSourceΒΆ

Load core profiles and create a Plasma object.

Prefer density_thermal over density profile.

The distribution of each species is defined with Maxwellian using its density and temperature profiles, which are mapped to 3D using the provided equilibrium.

The plasma geometry is defined as a cylindrical annulus between the inner and outer radii of the equilibrium, and between the minimum and maximum z values of the equilibrium.

The ion bundle species are split into their constituent charge states using solve_coronal_equilibrium when split_ion_bundles is True and the necessary atomic data is available. Otherwise, ion bundles are ignored with a warning.

Parameters:
*argsΒΆ

IMAS URI, netCDF path, or legacy positional arguments for DBEntry. For a URI or path, read mode is selected automatically; do not pass "r".

time: float = 0ΒΆ

Time for the core plasma, by default 0.

occurrence: int = 0ΒΆ

Occurrence index of the core_profiles IDS, by default 0.

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.

time_threshold: float = infΒΆ

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

split_ion_bundles: bool = TrueΒΆ

Whether to split ion bundles into their constituent charge states using solve_coronal_equilibrium, by default True.

atomic_data: AtomicData | None = NoneΒΆ

Atomic data provider class for this plasma, by default None. If None, some species (e.g. ion_bundle) may not be properly loaded.

parent: _NodeBase | None = NoneΒΆ

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

**kwargsΒΆ

Additional DBEntry options, such as dd_version or xml_path.

Returns:

Plasma – Plasma object with core profiles.

Raises: