pymatgen.core.periodic_table module

class DummySpecie(symbol='X', oxidation_state=0, properties=None)[source]

Bases: pymatgen.core.periodic_table.Specie

A special specie for representing non-traditional elements or species. For example, representation of vacancies (charged or otherwise), or special sites, etc.

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.
symbol

Symbol for the DummySpecie.

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.

X

DummySpecie is always assigned an electronegativity of 0. The effect of this is that DummySpecie are always sorted in front of actual Specie.

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.

as_dict()[source]

A JSON serializable dict representation of an object.

classmethod from_dict(d)[source]
static from_string(species_string)[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.
oxi_state

Oxidation state associated with DummySpecie

classmethod safe_from_composition(comp, oxidation_state=0)[source]

Returns a DummySpecie object that can be safely used with (i.e. not present in) a given composition

symbol
class Element(symbol)[source]

Bases: enum.Enum

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.

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

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'
X
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.

average_anionic_radius
average_cationic_radius
average_ionic_radius
block

Return the block character “s,p,d,f”

common_oxidation_states

Tuple of all known oxidation states

data

Returns dict of data for element.

from_Z = <function Element.from_Z>[source]
from_dict = <function Element.from_dict>[source]
from_row_and_group = <function Element.from_row_and_group>[source]
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)]

ground_state_term_symbol

Ground state term symbol Selected based on Hund’s Rule

group

Returns the periodic table group of the element.

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

ionic_radii
is_actinoid

True if element is a actinoid.

is_alkali

True if element is an alkali metal.

is_alkaline

True if element is an alkaline earth metal (group II).

is_chalcogen

True if element is a chalcogen.

is_halogen

True if element is a halogen.

is_lanthanoid

True if element is a lanthanoid.

is_metalloid

True if element is a metalloid.

is_noble_gas

True if element is noble gas.

is_post_transition_metal

True if element is a post-transition or poor metal.

is_quadrupolar

Checks if this element can be quadrupolar

is_rare_earth_metal

True if element is a rare earth metal.

is_transition_metal

True if element is a transition metal.

is_valid_symbol = <function Element.is_valid_symbol>[source]
max_oxidation_state

Maximum oxidation state for element

metallic_radius
min_oxidation_state

Minimum oxidation state for element

nmr_quadrupole_moment

Get a dictionary the nuclear electric quadrupole moment in units of e*millibarns for various isotopes

number

Alternative attribute for atomic number

oxidation_states

Tuple of all known oxidation states

print_periodic_table = <function Element.print_periodic_table>[source]
row

Returns the periodic table row of the element.

term_symbols

All possible Russell-Saunders term symbol of the Element eg. L = 1, n_e = 2 (s2) returns

[[‘1D2’], [‘3P0’, ‘3P1’, ‘3P2’], [‘1S0’]]
valence

# From full electron config obtain valence subshell # angular moment (L) and number of valence e- (v_e)

class Specie(symbol, oxidation_state=None, properties=None)[source]

Bases: monty.json.MSONable

An 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.

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.

as_dict()[source]

A JSON serializable dict representation of an object.

element

Underlying element object

classmethod from_dict(d)[source]
static from_string(species_string)[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='oct', spin_config='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, spin='', radius_type='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.

ionic_radius

Ionic radius of specie. Returns None if data is not present.

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.