armi.nucDirectory.elements module
This module provides fundamental element information to be used throughout the framework and applications.
Implementation: A tool for querying basic data for elements of the periodic table. I_ARMI_ND_ELEMENTS0
|
The |
The element class structure is outlined here.
Examples
>>> elements.byZ[92]
<Element U (Z=92), Uranium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>
>>> elements.bySymbol["U"]
<Element U (Z=92), Uranium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>
>>> elements.byName["Uranium"]
<Element U (Z=92), Uranium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>
Retrieve gaseous elements at Standard Temperature and Pressure (STP):
>>> elements.getElementsByChemicalPhase(elements.ChemicalPhase.GAS)
[<Element H (Z=1), Hydrogen, ChemicalGroup.NONMETAL, ChemicalPhase.GAS>,
<Element HE (Z=2), Helium, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element N (Z=7), Nitrogen, ChemicalGroup.NONMETAL, ChemicalPhase.GAS>,
<Element O (Z=8), Oxygen, ChemicalGroup.NONMETAL, ChemicalPhase.GAS>,
<Element F (Z=9), Fluorine, ChemicalGroup.HALOGEN, ChemicalPhase.GAS>,
<Element NE (Z=10), Neon, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element CL (Z=17), Chlorine, ChemicalGroup.HALOGEN, ChemicalPhase.GAS>,
<Element AR (Z=18), Argon, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element KR (Z=36), Krypton, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element XE (Z=54), Xenon, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element RN (Z=86), Radon, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>,
<Element OG (Z=118), Oganesson, ChemicalGroup.NOBLE_GAS, ChemicalPhase.GAS>]
Retrieve elements that are classified as actinides:
>>> elements.getElementsByChemicalGroup(elements.ChemicalGroup.ACTINIDE)
[<Element AC (Z=89), Actinium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element TH (Z=90), Thorium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element PA (Z=91), Protactinium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element U (Z=92), Uranium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element NP (Z=93), Neptunium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element PU (Z=94), Plutonium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element AM (Z=95), Americium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element CM (Z=96), Curium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element BK (Z=97), Berkelium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element CF (Z=98), Californium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element ES (Z=99), Einsteinium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element FM (Z=100), Fermium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element MD (Z=101), Mendelevium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element NO (Z=102), Nobelium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>,
<Element LR (Z=103), Lawrencium, ChemicalGroup.ACTINIDE, ChemicalPhase.SOLID>]
For specific data on nuclides within each element, refer to the nuclide bases summary table.
z |
name |
symbol |
phase |
group |
is naturally occurring? |
is heavy metal? |
num. nuclides |
---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes
Currently, this module contains a lot of data in the global scope. But ARMI is in the process of encapsulating this data, moving it out of the global scope, making it part of the reactor data model, and making it configurable via Settings. Pardon the mess during this transition.
- class armi.nucDirectory.elements.ChemicalPhase(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
Enum
- GAS = 1
- LIQUID = 2
- SOLID = 3
- UNKNOWN = 4
- class armi.nucDirectory.elements.ChemicalGroup(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
Enum
- ALKALI_METAL = 1
- ALKALINE_EARTH_METAL = 2
- NONMETAL = 3
- TRANSITION_METAL = 4
- POST_TRANSITION_METAL = 5
- METALLOID = 6
- HALOGEN = 7
- NOBLE_GAS = 8
- LANTHANIDE = 9
- ACTINIDE = 10
- UNKNOWN = 11
- class armi.nucDirectory.elements.Element(z, symbol, name, phase='UNKNOWN', group='UNKNOWN', addToGlobal=True)[source]
Bases:
object
Represents an element defined on the Periodic Table.
Creates an instance of an Element.
The
Element
class acts as a data structure for organizing information about an individual element, including number of protons, name, chemical symbol, phase (at STP), periodic table group, standard weight, and a list of isotopenuclideBase
instances.The
Element
class has a few methods for appending additional isotopes, checking whether an isotope is naturally occurring, retrieving the natural isotopic abundance, or whether the element is a heavy metal.- Parameters:
- getNaturalIsotopics()[source]
Return a list of nuclides that are naturally occurring for this element.
Notes
This method will filter out any NaturalNuclideBases from the nuclides attribute.
- isHeavyMetal()[source]
Return True if all nuclides belonging to the element are heavy metals.
Notes
Heavy metal in this instance is not related to an exact weight or density cut-off, but rather is designated for nuclear fuel burn-up evaluations, where the initial heavy metal mass within a component should be tracked. It is typical to include any element/nuclide above Actinium.
- armi.nucDirectory.elements.getElementsByChemicalPhase(phase: ChemicalPhase) List[Element] [source]
Pass through to Elements.getElementsByChemicalPhase() for the global Elements object.
- armi.nucDirectory.elements.getElementsByChemicalGroup(group: ChemicalGroup) List[Element] [source]
Pass through to Elements.getElementsByChemicalGroup() for the global Elements object.
- armi.nucDirectory.elements.getName(z: int = None, symbol: str = None) str [source]
Pass through to Elements.getName() for the global Elements object.
- armi.nucDirectory.elements.getSymbol(z: int = None, name: str = None) str [source]
Pass through to Elements.getSymbol() for the global Elements object.
- armi.nucDirectory.elements.getElementZ(symbol: str = None, name: str = None) int [source]
Pass through to Elements.getElementZ() for the global Elements object.
- armi.nucDirectory.elements.factory()[source]
Pass through to Elements.factory() for the global Elements object.
- armi.nucDirectory.elements.addGlobalElement(element: Element)[source]
Pass through to Elements.addElement() for the global Elements object.
- armi.nucDirectory.elements.destroyGlobalElements()[source]
Pass through to Elements.clear() for the global Elements object.
- class armi.nucDirectory.elements.Elements[source]
Bases:
object
A container for all the elements information in the simulation.
By design, you would only expect to have one instance of this object in memory during a simulation.
- Variables:
byZ (dict[int, Element]) – A dictionary to find Element objects by atomic number (integer Z).
byName (dict[str, Element]) – A dictionary to find Element objects by unique string identifier (“C”, “PU239”, “U235”, etc).
bySymbol (dict[str, Element]) – A dictionary to find Element objects by atomic symbol (“C”, “N”, “PU”, etc).
elementsFile (str) – File path to the custom ARMI “elements.dat” file.
- addElement(element: Element)[source]
Add an element to this collection.
- Raises:
ValueError – If the element already exists in the collection.
- getElementsByChemicalPhase(phase: ChemicalPhase) List[Element] [source]
Returns all elements that are of the given chemical phase.
- Parameters:
phase (ChemicalPhase) – This should be one of the valid options from the ChemicalPhase class.
- Returns:
elems – A list of elements that are associated with the given chemical phase.
- Return type:
List[Element]
- getElementsByChemicalGroup(group: ChemicalGroup) List[Element] [source]
Returns all elements that are of the given chemical group.
- Parameters:
group (ChemicalGroup) – This should be one of the valid options from the ChemicalGroup class.
- Returns:
elems – A list of elements that are associated with the given chemical group.
- Return type:
List[Element]
- getName(z: int = None, symbol: str = None) str [source]
Returns element name.
Examples
>>> elements.getName(10) 'Neon' >>> elements.getName(symbol='Ne') 'Neon'
- getSymbol(z: int = None, name: str = None) str [source]
Returns element abbreviation given atomic number Z.
Examples
>>> elements.getSymbol(10) 'Ne' >>> elements.getSymbol(name='Neon') 'Ne'