pymatgen.core.periodic_table module¶
Module contains classes presenting Element and Specie (Element + oxidation state) and PeriodicTable.
-
class
DummySpecie(symbol: str = 'X', oxidation_state: float = 0, properties: dict = None)[source]¶ Bases:
pymatgen.core.periodic_table.SpecieA special specie for representing non-traditional elements or species. For example, representation of vacancies (charged or otherwise), or special sites, etc.
-
oxi_state¶ Oxidation state associated with Specie.
-
Z¶ DummySpecie is always assigned an atomic number equal to the hash number of the symbol. Obviously, it makes no sense whatsoever to use the atomic number of a Dummy specie for anything scientific. The purpose of this is to ensure that for most use cases, a DummySpecie behaves no differently from an Element or Specie.
-
X¶ DummySpecie is always assigned an electronegativity of 0.
- Parameters
symbol (str) – An assigned symbol for the dummy specie. Strict rules are applied to the choice of the symbol. The dummy symbol cannot have any part of first two letters that will constitute an Element symbol. Otherwise, a composition may be parsed wrongly. E.g., “X” is fine, but “Vac” is not because Vac contains V, a valid Element.
oxidation_state (float) – Oxidation state for dummy specie. Defaults to zero.
-
property
X DummySpecie is always assigned an electronegativity of 0. The effect of this is that DummySpecie are always sorted in front of actual Specie.
-
property
Z DummySpecie is always assigned an atomic number equal to the hash of the symbol. The expectation is that someone would be an actual dummy to use atomic numbers for a Dummy specie.
-
static
from_string(species_string: str)[source]¶ Returns a Dummy from a string representation.
- Parameters
species_string (str) – A string representation of a dummy species, e.g., “X2+”, “X3+”.
- Returns
A DummySpecie object.
- Raises
ValueError if species_string cannot be intepreted. –
-
property
oxi_state Oxidation state associated with DummySpecie
-
property
symbol¶ Symbol for DummySpecie.
- Type
return
-
-
class
Element(symbol: str)[source]¶ Bases:
enum.EnumEnum representing an element in the periodic table.
Basic immutable element object with all relevant properties.
Only one instance of Element for each symbol is stored after creation, ensuring that a particular element behaves like a singleton. For all attributes, missing data (i.e., data for which is not available) is represented by a None unless otherwise stated.
- Parameters
symbol (str) – Element symbol, e.g., “H”, “Fe”
-
Z¶ Atomic number
-
symbol¶ Element symbol
-
X¶ Pauling electronegativity. Elements without an electronegativity number are assigned a value of zero by default.
-
number¶ Alternative attribute for atomic number
-
max_oxidation_state¶ Maximum oxidation state for element
-
min_oxidation_state¶ Minimum oxidation state for element
-
oxidation_states¶ Tuple of all known oxidation states
-
common_oxidation_states¶ Tuple of all common oxidation states
-
full_electronic_structure¶ Full electronic structure as tuple. E.g., The electronic structure for Fe is represented as: [(1, “s”, 2), (2, “s”, 2), (2, “p”, 6), (3, “s”, 2), (3, “p”, 6), (3, “d”, 6), (4, “s”, 2)]
-
row¶ Returns the periodic table row of the element.
-
group¶ Returns the periodic table group of the element.
-
block¶ Return the block character “s,p,d,f”
-
is_noble_gas¶ True if element is noble gas.
-
is_transition_metal¶ True if element is a transition metal.
-
is_post_transition_metal¶ True if element is a post transition metal.
-
is_rare_earth_metal¶ True if element is a rare earth metal.
-
is_metalloid¶ True if element is a metalloid.
-
is_alkali¶ True if element is an alkali metal.
-
is_alkaline¶ True if element is an alkaline earth metal (group II).
-
is_halogen¶ True if element is a halogen.
-
is_lanthanoid¶ True if element is a lanthanoid.
-
is_actinoid¶ True if element is a actinoid.
-
iupac_ordering¶ Ordering according to Table VI of “Nomenclature of Inorganic Chemistry (IUPAC Recommendations 2005)”. This ordering effectively follows the groups and rows of the periodic table, except the Lanthanides, Actanides and hydrogen.
-
long_name¶ Long name for element. E.g., “Hydrogen”.
-
atomic_mass¶ Atomic mass for the element.
-
atomic_radius¶ Atomic radius for the element. This is the empirical value. Data is obtained from http://en.wikipedia.org/wiki/Atomic_radii_of_the_elements_(data_page).
-
atomic_radius_calculated¶ Calculated atomic radius for the element. This is the empirical value. Data is obtained from http://en.wikipedia.org/wiki/Atomic_radii_of_the_elements_(data_page).
-
van_der_waals_radius¶ Van der Waals radius for the element. This is the empirical value. Data is obtained from http://en.wikipedia.org/wiki/Atomic_radii_of_the_elements_(data_page).
-
mendeleev_no¶ Mendeleev number from definition given by Pettifor, D. G. (1984). A chemical scale for crystal-structure maps. Solid State Communications, 51 (1), 31-34
-
electrical_resistivity¶ Electrical resistivity
-
velocity_of_sound¶ Velocity of sound
-
reflectivity¶ Reflectivity
-
refractive_index¶ Refractice index
-
poissons_ratio¶ Poisson’s ratio
-
molar_volume¶ Molar volume
-
electronic_structure¶ Electronic structure. Simplified form with HTML formatting. E.g., The electronic structure for Fe is represented as [Ar].3d<sup>6</sup>.4s<sup>2</sup>
-
atomic_orbitals¶ Atomic Orbitals. Energy of the atomic orbitals as a dict. E.g., The orbitals energies in eV are represented as {‘1s’: -1.0, ‘2s’: -0.1} Data is obtained from https://www.nist.gov/pml/data/atomic-reference-data-electronic-structure-calculations The LDA values for neutral atoms are used
-
thermal_conductivity¶ Thermal conductivity
-
boiling_point¶ Boiling point
-
melting_point¶ Melting point
-
critical_temperature¶ Critical temperature
-
superconduction_temperature¶ Superconduction temperature
-
liquid_range¶ Liquid range
-
bulk_modulus¶ Bulk modulus
-
youngs_modulus¶ Young’s modulus
-
brinell_hardness¶ Brinell hardness
-
rigidity_modulus¶ Rigidity modulus
-
mineral_hardness¶ Mineral hardness
-
vickers_hardness¶ Vicker’s hardness
-
density_of_solid¶ Density of solid phase
-
coefficient_of_linear_thermal_expansion¶ Coefficient of linear thermal expansion
-
average_ionic_radius¶ Average ionic radius for element in ang. The average is taken over all oxidation states of the element for which data is present.
-
average_cationic_radius¶ Average cationic radius for element in ang. The average is taken over all positive oxidation states of the element for which data is present.
-
average_anionic_radius¶ Average ionic radius for element in ang. The average is taken over all negative oxidation states of the element for which data is present.
-
ionic_radii¶ All ionic radii of the element as a dict of {oxidation state: ionic radii}. Radii are given in ang.
-
Ac= 'Ac'¶
-
Ag= 'Ag'¶
-
Al= 'Al'¶
-
Am= 'Am'¶
-
Ar= 'Ar'¶
-
As= 'As'¶
-
At= 'At'¶
-
Au= 'Au'¶
-
B= 'B'¶
-
Ba= 'Ba'¶
-
Be= 'Be'¶
-
Bi= 'Bi'¶
-
Bk= 'Bk'¶
-
Br= 'Br'¶
-
C= 'C'¶
-
Ca= 'Ca'¶
-
Cd= 'Cd'¶
-
Ce= 'Ce'¶
-
Cf= 'Cf'¶
-
Cl= 'Cl'¶
-
Cm= 'Cm'¶
-
Co= 'Co'¶
-
Cr= 'Cr'¶
-
Cs= 'Cs'¶
-
Cu= 'Cu'¶
-
Dy= 'Dy'¶
-
Er= 'Er'¶
-
Es= 'Es'¶
-
Eu= 'Eu'¶
-
F= 'F'¶
-
Fe= 'Fe'¶
-
Fm= 'Fm'¶
-
Fr= 'Fr'¶
-
Ga= 'Ga'¶
-
Gd= 'Gd'¶
-
Ge= 'Ge'¶
-
H= 'H'¶
-
He= 'He'¶
-
Hf= 'Hf'¶
-
Hg= 'Hg'¶
-
Ho= 'Ho'¶
-
I= 'I'¶
-
In= 'In'¶
-
Ir= 'Ir'¶
-
K= 'K'¶
-
Kr= 'Kr'¶
-
La= 'La'¶
-
Li= 'Li'¶
-
Lr= 'Lr'¶
-
Lu= 'Lu'¶
-
Md= 'Md'¶
-
Mg= 'Mg'¶
-
Mn= 'Mn'¶
-
Mo= 'Mo'¶
-
N= 'N'¶
-
Na= 'Na'¶
-
Nb= 'Nb'¶
-
Nd= 'Nd'¶
-
Ne= 'Ne'¶
-
Ni= 'Ni'¶
-
No= 'No'¶
-
Np= 'Np'¶
-
O= 'O'¶
-
Os= 'Os'¶
-
P= 'P'¶
-
Pa= 'Pa'¶
-
Pb= 'Pb'¶
-
Pd= 'Pd'¶
-
Pm= 'Pm'¶
-
Po= 'Po'¶
-
Pr= 'Pr'¶
-
Pt= 'Pt'¶
-
Pu= 'Pu'¶
-
Ra= 'Ra'¶
-
Rb= 'Rb'¶
-
Re= 'Re'¶
-
Rh= 'Rh'¶
-
Rn= 'Rn'¶
-
Ru= 'Ru'¶
-
S= 'S'¶
-
Sb= 'Sb'¶
-
Sc= 'Sc'¶
-
Se= 'Se'¶
-
Si= 'Si'¶
-
Sm= 'Sm'¶
-
Sn= 'Sn'¶
-
Sr= 'Sr'¶
-
Ta= 'Ta'¶
-
Tb= 'Tb'¶
-
Tc= 'Tc'¶
-
Te= 'Te'¶
-
Th= 'Th'¶
-
Ti= 'Ti'¶
-
Tl= 'Tl'¶
-
Tm= 'Tm'¶
-
U= 'U'¶
-
V= 'V'¶
-
W= 'W'¶
-
property
X Electronegativity of element. Note that if an element does not have an electronegativity, a NaN float is returned.
- Type
return
-
Xe= 'Xe'¶
-
Y= 'Y'¶
-
Yb= 'Yb'¶
-
Zn= 'Zn'¶
-
Zr= 'Zr'¶
-
as_dict()[source]¶ Makes Element obey the general json interface used in pymatgen for easier serialization.
-
property
atomic_mass The atomic mass of the element in amu.
- Type
Returns
-
property
atomic_radius The atomic radius of the element in Ångstroms.
- Type
Returns
-
property
average_anionic_radius Average anionic radius for element (with units). The average is taken over all negative oxidation states of the element for which data is present.
-
property
average_cationic_radius Average cationic radius for element (with units). The average is taken over all positive oxidation states of the element for which data is present.
-
property
average_ionic_radius Average ionic radius for element (with units). The average is taken over all oxidation states of the element for which data is present.
-
property
block Return the block character “s,p,d,f”
-
property
common_oxidation_states Tuple of all known oxidation states
-
property
data¶ Returns dict of data for element.
-
property
full_electronic_structure Full electronic structure as tuple. E.g., The electronic structure for Fe is represented as: [(1, “s”, 2), (2, “s”, 2), (2, “p”, 6), (3, “s”, 2), (3, “p”, 6), (3, “d”, 6), (4, “s”, 2)]
-
property
ground_state_term_symbol¶ Ground state term symbol Selected based on Hund’s Rule
-
property
group Returns the periodic table group of the element.
-
property
icsd_oxidation_states¶ Tuple of all oxidation states with at least 10 instances in ICSD database AND at least 1% of entries for that element
-
property
ionic_radii All ionic radii of the element as a dict of {oxidation state: ionic radii}. Radii are given in ang.
-
property
is_actinoid True if element is a actinoid.
-
property
is_alkali True if element is an alkali metal.
-
property
is_alkaline True if element is an alkaline earth metal (group II).
-
property
is_chalcogen¶ True if element is a chalcogen.
-
property
is_halogen True if element is a halogen.
-
property
is_lanthanoid True if element is a lanthanoid.
-
property
is_metal¶ True if is a metal.
- Type
return
-
property
is_metalloid True if element is a metalloid.
-
property
is_noble_gas True if element is noble gas.
-
property
is_post_transition_metal True if element is a post-transition or poor metal.
-
property
is_quadrupolar¶ Checks if this element can be quadrupolar
-
property
is_rare_earth_metal True if element is a rare earth metal.
-
property
is_transition_metal True if element is a transition metal.
-
property
iupac_ordering Ordering according to Table VI of “Nomenclature of Inorganic Chemistry (IUPAC Recommendations 2005)”. This ordering effectively follows the groups and rows of the periodic table, except the Lanthanides, Actanides and hydrogen.
-
property
max_oxidation_state Maximum oxidation state for element
-
property
metallic_radius¶ Metallic radius of the element. Radius is given in ang.
-
property
min_oxidation_state Minimum oxidation state for element
-
property
nmr_quadrupole_moment¶ Get a dictionary the nuclear electric quadrupole moment in units of e*millibarns for various isotopes
-
property
number Alternative attribute for atomic number
-
property
oxidation_states Tuple of all known oxidation states
-
property
row Returns the periodic table row of the element.
-
property
term_symbols¶ All possible Russell-Saunders term symbol of the Element eg. L = 1, n_e = 2 (s2) returns
[[‘1D2’], [‘3P0’, ‘3P1’, ‘3P2’], [‘1S0’]]
-
property
valence¶ # From full electron config obtain valence subshell # angular moment (L) and number of valence e- (v_e)
-
class
Specie(symbol: str, oxidation_state: float = 0.0, properties: dict = None)[source]¶ Bases:
monty.json.MSONableAn extension of Element with an oxidation state and other optional properties. Properties associated with Specie should be “idealized” values, not calculated values. For example, high-spin Fe2+ may be assigned an idealized spin of +5, but an actual Fe2+ site may be calculated to have a magmom of +4.5. Calculated properties should be assigned to Site objects, and not Specie.
Initializes a Specie.
- Parameters
symbol (str) – Element symbol, e.g., Fe
oxidation_state (float) – Oxidation state of element, e.g., 2 or -2
properties – Properties associated with the Specie, e.g., {“spin”: 5}. Defaults to None. Properties must be one of the Specie supported_properties.
-
oxi_state¶ Oxidation state associated with Specie
-
ionic_radius¶ Ionic radius of Specie (with specific oxidation state).
Changed in version 2.6.7: Properties are now checked when comparing two Species for equality.
-
property
element¶ Underlying element object
-
static
from_string(species_string: str)[source]¶ Returns a Specie from a string representation.
- Parameters
species_string (str) – A typical string representation of a species, e.g., “Mn2+”, “Fe3+”, “O2-“.
- Returns
A Specie object.
- Raises
ValueError if species_string cannot be intepreted. –
-
get_crystal_field_spin(coordination: str = 'oct', spin_config: str = 'high')[source]¶ Calculate the crystal field spin based on coordination and spin configuration. Only works for transition metal species.
- Parameters
coordination (str) – Only oct and tet are supported at the moment.
spin_config (str) – Supported keywords are “high” or “low”.
- Returns
Crystal field spin in Bohr magneton.
- Raises
AttributeError if species is not a valid transition metal or has –
an invalid oxidation state. –
ValueError if invalid coordination or spin_config. –
-
get_nmr_quadrupole_moment(isotope=None)[source]¶ Gets the nuclear electric quadrupole moment in units of e*millibarns
- Parameters
isotope (str) – the isotope to get the quadrupole moment for default is None, which gets the lowest mass isotope
-
get_shannon_radius(cn: str, spin: str = '', radius_type: str = 'ionic')[source]¶ Get the local environment specific ionic radius for species.
- Parameters
cn (str) – Coordination using roman letters. Supported values are I-IX, as well as IIIPY, IVPY and IVSQ.
spin (str) – Some species have different radii for different spins. You can get specific values using “High Spin” or “Low Spin”. Leave it as “” if not available. If only one spin data is available, it is returned and this spin parameter is ignored.
radius_type (str) – Either “crystal” or “ionic” (default).
- Returns
Shannon radius for specie in the specified environment.
-
property
ionic_radius Ionic radius of specie. Returns None if data is not present.
-
property
oxi_state Oxidation state of Specie.
-
supported_properties= ('spin',)¶
-
get_el_sp(obj)[source]¶ Utility method to get an Element or Specie from an input obj. If obj is in itself an element or a specie, it is returned automatically. If obj is an int or a string representing an integer, the Element with the atomic number obj is returned. If obj is a string, Specie parsing will be attempted (e.g., Mn2+), failing which Element parsing will be attempted (e.g., Mn), failing which DummyElement parsing will be attempted.
- Parameters
obj (Element/Specie/str/int) – An arbitrary object. Supported objects are actual Element/Specie objects, integers (representing atomic numbers) or strings (element symbols or species strings).
- Returns
Specie or Element, with a bias for the maximum number of properties that can be determined.
- Raises
ValueError if obj cannot be converted into an Element or Specie. –