find_ion_saturation_current

plasmapy.analysis.swept_langmuir.ion_saturation_current.find_ion_saturation_current(
voltage: ndarray,
current: ndarray,
*,
fit_type: str = 'exp_plus_linear',
current_bound: float | None = None,
voltage_bound: float | None = None,
) tuple[Linear, ISatExtras][source]

Determines the ion-saturation current (\(I_{sat}\)) for a given current-voltage (IV) curve obtained from a swept Langmuir probe. The current collected by a Langmuir probe reaches ion-saturation when the probe is sufficiently biased so the influx of electrons is completely repelled, which leads to only the collection of ions. (For additional details see the Notes section below.).

Aliases: find_isat_()

Parameters:
  • voltage (numpy.ndarray) – 1-D numpy array of monotonically increasing probe biases (should be in volts).

  • current (numpy.ndarray) – 1-D numpy array of probe current (should be in amperes) corresponding to the voltage array.

  • fit_type (str) –

    The type of curve (fit-function) to be fitted to the Langmuir trace, valid options are listed below. (DEFAULT "exp_plus_linear")

    "linear"

    Linear

    "exp_plus_offset"

    ExponentialPlusOffset

    "exp_plus_linear"

    ExponentialPlusLinear

  • current_bound (float) –

    A fraction representing a percentile window around the minimum current. The points to be fitted are defined to be within this window. For example, a value of 0.1 indicates to use all points within 10% of the minimum current. (DEFAULT None)


    If neither current_bound or voltage_bound are specified, then the routine will collect indices based on an internal current_bound setting for the specified fit_type.

    "linear"

    0.4

    "exponential"

    1.0

    "exp_plus_linear"

    1.0


    Cannot be used with keyword voltage_bound.

  • voltage_bound (float) –

    A bias voltage (in volts) that specifies an upper bound used to collect the points for the curve fit. That is, points that satisfy voltage <= voltage_bound are used in the fit. (DEFAULT None)


    Cannot be used with keyword current_bound.

Returns:

  • isat (Linear) – A fit-function representing the linear portion of the fitted curve. Note: All isat parameters will be in the same units as those of voltage and current. For example, if the voltage array is in milli-volts and the current array is in milli-amperes, then all parameters and computed values of isat will have the same units.

  • extras (ISatExtras) – Additional information from the curve fit:

    extras.fitted_func (fit-functions)

    The computed fit-function specified by fit_type.

    extras.rsq (float)

    The coefficient of determination (r-squared) value of the fit, that is of extras.fitted_func.

    extras.fitted_indices (slice)

    A slice object representing the indices of the voltage and current arrays used for the fit.

Notes

This routine works by:

  1. Selecting the points to be used in the fit as determined by voltage_bound or current_bound.

  2. Fitting the selected points with the fit-function specified by fit_type.

  3. Extracting the linear component of the fit and returning that as the ion-saturation current.

This routine opts to return a function representing a linear ion-saturation current, since, while ideal planar Langmuir probes reach a steady-state ion-saturation current, real world Langmuir probes “suffer” from expanding sheaths as the bias voltage becomes increasingly negative. This sheath expansion results in the ion-saturation current also increasing.