jaxrts.plasmastate.PlasmaState

class jaxrts.plasmastate.PlasmaState(ions: list[Element], Z_free: list | Quantity, mass_density: list | Quantity, T_e: Quantity, T_i: list | Quantity | None = None)[source]

Define a plasma. The PlasmaState is defined by the set of state parameters, which are attributes of this object and have to be set during initialization:

  • ions: a list of jaxrts.elements.Element objects that define the constituents of the plasma.

  • Z_free: a list of ionization states for each of the constituents.

  • mass_density: a list of partial mass densities for the ions. Therefore, the mass_density also contains the information about the stoichiometry plasma (see :py:attr:~.number_fraction`. Summing up mass_density gives the total mass density.

  • T_e: The electronic temperature of the system.

  • T_i: The ionic temperature of the system. One temperature per ion species. If T_i is not given when initializing the plasma state, we assume equilibrium between electron- and ion temperatures.

Instances of a jaxrts.models.Model can be set to describe certain aspects of a plasa state, i.e., the ionization potential depression model, or the description of free-free scattering. To attach such a Models instance to a PlasmaState, assign it to a key that is valid for the specific jaxrts.models.Model, e.g.,

>>> state["free-free scattering"] = jaxrts.models.RPA()

Methods

__init__(ions, Z_free, mass_density, T_e[, T_i])

citation([style])

Return bibliographic information for all the :py:class`jaxrts.models.Model` attached to this PlasmaState.

db_wavelength(kind)

evaluate(key, setup)

Evaluate an individual :py:class:~`jaxrts.models.Model`, attached to this :py:class`~.PlasmaState` with the modelkey key.

expand_integer_ionization_states()

Creates a new PlasmaState with twice the amount of ion species, where each of the ions has an integer charge state and the number of ions is adjusted so that the mean charge is the (potentially fractional) charge of self.

keys()

Return a list of keys under which jaxrts.models.Model s are attached to the PlasmaState.

probe(setup)

Function to generate a spectrum by combining the :py:class:~.PlasmaState` (and the connected Models therein) with a jaxrts.setup.Setup.

update_default_model(model_name, model_class)

Add a model to the PlasmaState, if it does not exist, already.

Attributes

T_F

Return the fermi temperature of the free electron system, determined by the electron density.

Teff_e

Return the effective electron temperature.

Z_A

The atomic number of the atom-species.

Z_core

The number of electrons still bound to the ion.

atomic_masses

The atomic weight of the atoms.

degeneracy_param

Return the degree of degeneracy of the electrons.

ee_coupling

ion_core_radius

mean_Z_A

The mean atomic number.

n_e

The free electron number density.

n_i

The ion number density.

nions

The number of species in the plasma.

number_fraction

Return the number fraction of the elements.

screening_length

This is a shortcut to just get the screening length, which is used, e.g., by the jaxrts.hnc_potentials.DebyeHueckelPotential.

ions

A list of jaxrts.elements.Element objects that define the constituents of the plasma.

Z_free

A list of ionization states for each of the constituents.

mass_density

A list of partial mass densities for the ions.

T_e

The electronic temperature of the system.

T_i

The ionic temperature of the system.