Element
- class PlasmaCalcs.mhd.elements.Element(name=None, i=None, *, m=None, ionize_ev=None, saha_g1g0=None, abundance=None)
Bases:
FluidFluid corresponding to an element, including ions AND neutrals.
- CAUTION: some code assumes (without checking) that Element objects are immutable.
- Changing an Element after creating it could lead to unexpected behavior.
- name: None or str
- name of this element. None –> name unknown.defaults assume names will be title-case element symbol, e.g. ‘H’, ‘He’;using different names is allowed but will prevent default lookups.
- i: None or int
- index of this element (within an ElementList). None –> index unknown.
- m: None or number
- mass, in atomic mass units. E.g., ~1 for H.
- ionize_ev: None or number
- first ionization potential [eV]. E.g., ~13.6 for H.
- saha_g1g0: None or number
- ratio of g (degeneracy of states) for g1 (ions) to g0 (neutrals). E.g., 0.5 for H.
- abundance: None or number
- abundance of this element relative to H:A(elem) = 12 + log10(n(elem) / n(H)), n = number density.if not provided, trying to get abundance-related quantities will crash.
internally, q=None always, because elements have no charge info.Methods
__eq__(v)return self==v.
__init_subclass__(*[, _serial_typename])register cls as a subclass of XarrayIoSerializable.
copy(**kw_init)return a copy of self.
deserialize(serial)creates an XarrayIoSerializable object from a serialized representation.
returns whether self == v (another DimensionValue), ignoring i.
from_dict(d)return cls from dict d.
get_element(*args__None, **kw__None)return self (because self is an Element...).
get_elements(*args__None, **kw__None)return [self] (because self is an Element...).
ion([q])return ionized Specie of self.get_element()
tells whether self is a charged fluid.
tells whether self is an electron.
is_ion()tells whether self is an ion.
tells whether self is a neutral fluid.
returns dict for looking up self within a DimensionValueList, given int, str, or self.
n_per_nH()return n(elem)/n(H) for this element.
neutral(**kw_specie)return neutral Specie of self.get_element().
r_per_nH()return r(elem)/n(H) for this element.
register_type(cls_to_register[, ...])register cls_to_register as a serializable subclass of XarrayIoSerializable.
saha_list(*[, istart])return SpecieList of neutral & once-ionized ions of self.get_element().
return dict of info about self, including 'typename' key.
to_dict()return dictionary of info about self.
with_i(i)return copy of self with i=i, or self if self.i==i already.
contents used by self.__repr__
return simple repr for self: Classname(s, i).
Attributes
SERIAL_TYPESalias to self.
alias to neutral
alias to ion
alias to s
ndimsize- __eq__(v)
return self==v. Equal if:
- v is an instance of type(self), andall kw from both self._kw_eq and v._kw_eq have the same values.(any kw missing attrs will be treated as UNSET.)For DimensionValue, just compares self.s==v.s and self.i==v.i.Subclasses may add more kwargs to compare by altering _kw_def.- or, self.s == v or self.i == v, and v is not another DimensionValue- or, v is a DimensionSingleValueSpecifier and v.checker(self) gives True.Not equal if v is a DimensionValue but not an instance of type(self),e.g. class Fluid(DimensionValue):…; class Snap(DimensionValue):…;Fluid(‘H’, 0) != Snap(‘H’, 0).
- classmethod __init_subclass__(*, _serial_typename=None, **kw)
register cls as a subclass of XarrayIoSerializable.
- _serial_typename: None or str
- name to use for this type, for serialization purposes.None –> use cls.__name__.This method also sets cls._serial_typename = _serial_typename.
- _repr_contents()
contents used by self.__repr__
- _repr_simple()
return simple repr for self: Classname(s, i).
if s is None, use Classname(i) instead.if i is None, use Classname(s, i=None) instead.Called when using PlasmaCalcs.tools.repr_simple.
- copy(**kw_init)
return a copy of self. Can provide new kwargs here to override old values in result.
E.g. self.copy(i=7) makes a copy of self but with i=7 instead of self.i.
- static deserialize(serial)
creates an XarrayIoSerializable object from a serialized representation.
- serial: dict or str
- str –> convert to dict via ast.literal_eval.dict must contain ‘typename’ key.
The output here will be an instance of XarrayIoSerializable.SERIAL_TYPES[typename]
- property element
alias to self. because self (an Element) is the element corresponding to self.
- equal_except_i(v)
returns whether self == v (another DimensionValue), ignoring i.
equal if v is an instance of type(self) andall kw from both self._kw_eq and v._kw_eq have the same values.(any kw missing attrs will be treated as UNSET.)For DimensionValue: self.s==v.s and self.i==v.i. Subclasses may add more.
- classmethod from_dict(d)
return cls from dict d.
If ‘d’ contains ‘typename’, result is like cls.deserialize(d) instead,however, first require that result is an instance of cls (or subclass of cls).E.g. Fluid.from_dict(dict(typename=’EppicDist’, …)) returns EppicDist,but Snap.from_dict(dict(typename=’EppicDist’, …)) crashes with InputError.Subclasses wishing to alter deserialize behavior will probably override this method instead.
- property get_I
alias to neutral
- property get_II
alias to ion
- get_element(*args__None, **kw__None)
return self (because self is an Element…).
(ElementHaver-related logic expects this method to exist.)
- get_elements(*args__None, **kw__None)
return [self] (because self is an Element…).
(ElementHaver-related logic expects this method to exist.)
- ion(q=1, **kw_specie)
return ionized Specie of self.get_element()
q: charge in elementary charge units. (default: +1)
- is_charged()
tells whether self is a charged fluid. i.e. self.q != 0.
if self.q is None, returns None instead of bool.
- is_electron()
tells whether self is an electron. i.e. self.q < 0.
if self.q is None, returns None instead of bool.
- is_ion()
tells whether self is an ion. i.e. self.q > 0.
if self.q is None, returns None instead of bool.
- is_neutral()
tells whether self is a neutral fluid. i.e. self.q == 0.
if self.q is None, returns None instead of bool.
- lookup_dict()
returns dict for looking up self within a DimensionValueList, given int, str, or self.
(used by DimensionValueList.lookup_dict)
- n_per_nH()
return n(elem)/n(H) for this element. n = number density
- property name
alias to s
- neutral(**kw_specie)
return neutral Specie of self.get_element().
- r_per_nH()
return r(elem)/n(H) for this element. r = mass density
- static register_type(cls_to_register, _serial_typename=None)
register cls_to_register as a serializable subclass of XarrayIoSerializable.
- _serial_typename: str or None
- name to use for serialization. if None, use cls_to_register.__name__.
- saha_list(*, istart=0, **kw_specie)
return SpecieList of neutral & once-ionized ions of self.get_element().
istart: start index for the SpecieList. Index affects conversion to int.
- serialize()
return dict of info about self, including ‘typename’ key.
- specie_list_cls
alias of
SpecieList
- to_dict()
return dictionary of info about self. Attribute values for keys in self._kw_def.
e.g. if _kw_def={‘s’, ‘i’}: result = {‘s’: self.s, ‘i’: self.i}
- with_i(i)
return copy of self with i=i, or self if self.i==i already.