IonizationStateCollection¶
-
class
plasmapy.particles.ionization_state_collection.
IonizationStateCollection
(inputs: Union[Dict[str, numpy.ndarray], List, Tuple], *, T_e: Unit("K") = <Quantity nan K>, abundances: Optional[Dict[str, numbers.Real]] = None, log_abundances: Optional[Dict[str, numbers.Real]] = None, n0: Unit("1 / m3") = <Quantity nan 1 / m3>, tol: numbers.Real = 1e-15, kappa: numbers.Real = inf)¶ Bases:
object
Describe the ionization state distributions of multiple elements or isotopes.
- Parameters
inputs (
list
,tuple
, ordict
) – Alist
ortuple
of elements or isotopes (ifT_e
is provided); alist
ofIonizationState
instances; adict
with elements or isotopes as keys and andarray
of ionic fractions as the values; or adict
with elements or isotopes as keys andQuantity
instances with units of number density.abundances (
dict
, optional, keyword-only) – Adict
withParticleLike
objects used as the keys and the corresponding relative abundance as the values. The values must be positive real numbers.log_abundances (
dict
, optional, keyword-only) – Adict
withParticleLike
objects used as the keys and the corresponding base 10 logarithms of their relative abundances as the values. The values must be real numbers.n0 (
Quantity
, optional, keyword-only) – The number density normalization factor corresponding to the abundances. The number density of each element is the product of its abundance andn0
.T_e (
Quantity
, optional, keyword-only) – The electron temperature in units of temperature or thermal energy per particle.kappa (
float
, optional, keyword-only) – The value of kappa for a kappa distribution function.tol (
float
orinteger
, optional, keyword-only) – The absolute tolerance used byisclose
when testing normalizations and making comparisons. Defaults to1e-15
.
- Raises
ParticleError – If
IonizationStateCollection
cannot be instantiated.
See also
Examples
>>> from astropy import units as u >>> from plasmapy.particles import IonizationStateCollection >>> states = IonizationStateCollection( ... {'H': [0.5, 0.5], 'He': [0.95, 0.05, 0]}, ... T_e = 1.2e4 * u.K, ... n0 = 1e15 * u.m ** -3, ... abundances = {'H': 1, 'He': 0.08}, ... ) >>> states.ionic_fractions {'H': array([0.5, 0.5]), 'He': array([0.95, 0.05, 0. ])}
The number densities are given by the ionic fractions multiplied by the abundance and the number density scaling factor
n0
.>>> states.number_densities['H'] <Quantity [5.e+14, 5.e+14] 1 / m3> >>> states['He'] = [0.4, 0.59, 0.01]
To change the ionic fractions for a single element, use item assignment.
>>> states = IonizationStateCollection(['H', 'He']) >>> states['H'] = [0.1, 0.9]
Item assignment will also work if you supply number densities.
>>> states['He'] = [0.4, 0.6, 0.0] * u.m ** -3 >>> states.ionic_fractions['He'] array([0.4, 0.6, 0. ]) >>> states.number_densities['He'] <Quantity [0.4, 0.6, 0. ] 1 / m3>
Notes
No more than one of
abundances
andlog_abundances
may be specified.If the value provided during item assignment is a
Quantity
with units of number density that retains the total element density, then the ionic fractions will be set proportionately.When making comparisons between
IonizationStateCollection
instances,nan
values are treated as equal. Equality tests are performed to within a tolerance oftol
.Attributes Summary
Return the electron temperature.
Return the elemental abundances.
Return a list of the elements and isotopes whose ionization states are being kept track of.
Return a
dict
containing the ionic fractions for each element and isotope.Return the kappa parameter for a kappa distribution function for electrons.
Return a
dict
with atomic or isotope symbols as keys and the base 10 logarithms of the relative abundances as the corresponding values.Return the number density scaling factor.
Return the electron number density under the assumption of quasineutrality.
Return a
dict
containing the number densities for element or isotope.Return the absolute tolerance for comparisons.
Methods Summary
Normalize the ionic fractions so that the sum for each element equals one.
summarize
([minimum_ionic_fraction])Print quicklook information for an
IonizationStateCollection
instance.Attributes Documentation
-
T_e
¶ Return the electron temperature.
-
abundances
¶ Return the elemental abundances.
-
base_particles
¶ Return a list of the elements and isotopes whose ionization states are being kept track of.
-
ionic_fractions
¶ Return a
dict
containing the ionic fractions for each element and isotope.The keys of this
dict
are the symbols for each element or isotope. The values will bendarray
objects containing the ionic fractions for each ionization level corresponding to each element or isotope.
-
kappa
¶ Return the kappa parameter for a kappa distribution function for electrons.
The value of
kappa
must be greater than1.5
in order to have a valid distribution function. Ifkappa
equalsinf
, then the distribution function reduces to a Maxwellian.
-
log_abundances
¶ Return a
dict
with atomic or isotope symbols as keys and the base 10 logarithms of the relative abundances as the corresponding values.
-
n0
¶ Return the number density scaling factor.
-
n_e
¶ Return the electron number density under the assumption of quasineutrality.
-
tol
¶ Return the absolute tolerance for comparisons.
Methods Documentation
-
summarize
(minimum_ionic_fraction: numbers.Real = 0.01) → None¶ Print quicklook information for an
IonizationStateCollection
instance.- Parameters
minimum_ionic_fraction (
Real
) – If the ionic fraction for a particular ionization state is below this level, then information for it will not be printed. Defaults to 0.01.
Examples
>>> states = IonizationStateCollection( ... {'H': [0.1, 0.9], 'He': [0.95, 0.05, 0.0]}, ... T_e = 12000 * u.K, ... n0 = 3e9 * u.cm ** -3, ... abundances = {'H': 1.0, 'He': 0.1}, ... kappa = 3.4, ... ) >>> states.summarize() IonizationStateCollection instance for: H, He ---------------------------------------------------------------- H 0+: 0.100 n_i = 3.00e+14 m**-3 H 1+: 0.900 n_i = 2.70e+15 m**-3 ---------------------------------------------------------------- He 0+: 0.950 n_i = 2.85e+14 m**-3 He 1+: 0.050 n_i = 1.50e+13 m**-3 ---------------------------------------------------------------- n_e = 2.71e+15 m**-3 T_e = 1.20e+04 K kappa = 3.40 ----------------------------------------------------------------