jaxrts.ipd.ipd_stewart_pyatt_preston

jaxrts.ipd.ipd_stewart_pyatt_preston(Zi: float, ne: Quantity, ni: Quantity, Te: Quantity, Ti: Quantity, ion_population=None, arb_deg: bool = False, crowley_correction: bool = False) Quantity[source]

The Stewart Pyatt IPD, as presented by [Preston et al., 2013], which closely resembles the seminal work of [Stewart and Pyatt, 1966].

The IPD is dependent on the quantity \(z^* = \frac{\langle z^2 \rangle}{\langle z\rangle}\) which is only calculated if an ion_population argument is given. Otherwise, we assume this value was the average ionization state, which is, however, not accurate.

The connection between this formulation and the implementation in ipd_stewart_pyatt() can be found in Appendix A of [Pain, 2022].

[Crowley, 2014] pointed out a correction to the formula used by Stewart and Pyatt. This can be handled by setting the crowley_correction flag to true

Parameters:
  • Z – The charge state of the atom (note that this is the state before the ionization).

  • ne – Electron density. Units of 1/[length]**3.

  • ni – Ion density. Units of 1/[length]**3.

  • Te – The electron temperature.

  • Ti – The ion temperature.

  • ion_population – The ion population fractions.

  • arb_deg (bool, default false) – If True the Debye screening length is evaluated using inverse_screening_length_e(), which includes solving the Fermi integral, rather than the classical value.

  • crowley_correction (bool, default False) – If True apply the correction presented by [Crowley, 2014].

Returns:

Quantity – The ipd shift in units of electronvolt.