Chem module

The chem module offers the following routines to access chemical data:

Function

Description

ztosym()

Returns atomic symbol.

symtoz()

Returns atomic number.

at_weight()

Returns atomic weight.

formula_parser()

Returns a parsed chemical formula.

formula_weight()

Returns formula weight.

References

  • W.T. Elam, B.D. Ravel, J.R. Sieber (2002) “A new atomic database for X-ray spectroscopic calculations”, Radiation Physics and Chemistry 63(2): pp 121-128, DOI:10.1016/S0969-806X(01)00227-4.

araucaria.xrdb.chem.ztosym(z)[source]

Returns atomic symbol.

Parameters

z (int) – Atomic number.

Return type

str

Returns

Atomic symbol.

Raises

NameError – If z is not available.

Example

>>> from araucaria.xrdb import ztosym
>>> z    = [26, 29, 30, 33]
>>> syms = []
>>> for val in z:
...     syms.append(ztosym(val))
>>> print(syms)
['Fe', 'Cu', 'Zn', 'As']
araucaria.xrdb.chem.symtoz(sym)[source]

Returns atomic number.

Parameters

sym (str) – Atomic symbol.

Return type

int

Returns

Atomic number.

Raises

NameError – If sym is not available.

Example

>>> from araucaria.xrdb import symtoz
>>> syms = ['Fe', 'Cu', 'Zn', 'As']
>>> z    = []
>>> for item in syms:
...     z.append(symtoz(item))
>>> print(z)
[26, 29, 30, 33]
araucaria.xrdb.chem.at_weight(sym)[source]

Returns atomic weight.

Parameters

sym (str) – Atomic symbol.

Return type

float

Returns

Atomic weight (grams/mole).

Raises

NameError – If sym is not available.

Example

>>> from araucaria.xrdb import at_weight
>>> syms = ['Fe', 'Cu', 'Zn', 'As']
>>> atw  = []
>>> for item in syms:
...     atw.append(at_weight(item))
>>> print(atw)
[55.847, 63.546, 65.38, 74.9216]
araucaria.xrdb.chem.formula_parser(formula, mult=1)[source]

Returns a dictionary with parsed formula.

Parameters
  • formula (str) – Chemical formula to parse.

  • mult (float) – Multiplier for chemical formula.

Return type

dict

Returns

Dictionary with parsed formula.

Raises

NameError – If parentheses in formula are not balanced.

Example

>>> from araucaria.xrdb import formula_parser
>>> formulas = ['As2O3', 'Fe(OH)3', 'CuCO3Cu(OH)2']
>>> for f in formulas:
...     print(formula_parser(f))
{'As': 2.0, 'O': 3.0}
{'Fe': 1.0, 'H': 3.0, 'O': 3.0}
{'C': 1.0, 'Cu': 2.0, 'H': 2.0, 'O': 5.0}
araucaria.xrdb.chem.formula_weight(formula, mult=1)[source]

Returns formula weight.

Parameters
  • formula (str) – Chemical formula to parse.

  • mult (float) – Multiplier for chemical formula.

Return type

float

Returns

Formula weight (gr/mole).

See also

formula_parser()

Returns a parsed chemical formula.

at_weight()

Returns atomic weight.

Example

>>> from araucaria.xrdb import formula_weight
>>> formulas = ['As2O3', 'Fe(OH)3', 'CuCO3Cu(OH)2']
>>> for f in formulas:
...     fweight = formula_weight(f)
...     print('{0:12} : {1:1.3f} gr/mole'.format(f, fweight))
As2O3        : 197.841 gr/mole
Fe(OH)3      : 106.869 gr/mole
CuCO3Cu(OH)2 : 221.116 gr/mole