reconcile_nucleus
- qcelemental.molparse.reconcile_nucleus(A=None, Z=None, E=None, mass=None, real=None, label=None, speclabel=True, nonphysical=False, mtol=0.001, verbose=1)[source]
Forms consistent set of nucleus descriptors from all information from arguments, supplemented by the periodic table. At the least, must provide element identity somehow. Defaults to most-abundant isotope.
- Parameters:
A (
Optional
[int
]) – Mass number, number of protons and neutrons.label (
Optional
[str
]) – Atom label according toqcelemental.molparse.regex.NUCLEUS
.speclabel (
bool
) – If True, interpret label as potentially full nucleus spec including ghosting, isotope, mass, tagging information, e.g.,@13C_mine
orHe4@4.01
. If False, interpret label as only the user/tagging extension to nucleus label, e.g._mine
or4
in the previous examples.nonphysical (
bool
) – When True, turns off sanity checking that prevents periodic table violations (e.g, light uranium:1U@1.007
).mtol (
float
) – How different mass can be from a known nuclide mass and still merit the mass number assignment. Note that for elements dominated by a single isotope, the default may not be tight enough to prevent standard atomic weight (abundance-average of isotopes) from being labeled as the dominant isotope for A.verbose (
int
) – Quantity of printing.
- Returns:
A, Z, E, mass, real, userlabel – mass number, unless clues don’t point to a known nuclide, in which case -1. atomic number. element symbol, capitalized. mass value [u]. real/ghost. user portion of label if present, else ‘’.
- Return type:
- Raises:
Examples
>>> reconcile_nucleus(E='co') >>> reconcile_nucleus(Z=27) >>> reconcile_nucleus(A=59, Z=27) >>> reconcile_nucleus(E='cO', mass=58.933195048) >>> reconcile_nucleus(A=59, Z=27, E='CO') >>> reconcile_nucleus(A=59, E='cO', mass=58.933195048) >>> reconcile_nucleus(label='co') >>> reconcile_nucleus(label='59co') >>> reconcile_nucleus(label='co@58.933195048') >>> reconcile_nucleus(A=59, Z=27, E='cO', mass=58.933195048, label='co@58.933195048') >>> reconcile_nucleus(A=59, Z=27, E='cO', mass=58.933195048, label='27@58.933195048') >>> reconcile_nucleus(label='27') 59, 27, 'Co', 58.933195048, True, ''
>>> reconcile_nucleus(label='co_miNe') >>> reconcile_nucleus(label='co_mIne@58.933195048') 59, 27, 'Co', 58.933195048, True, '_mine'
>>> reconcile_nucleus(E='cO', mass=58.933) >>> reconcile_nucleus(label='cO@58.933') 59, 27, 'Co', 58.933, True, '' >>> assert 59, 27, 'Co', 58.933, True, '' == reconcile_nucleus(E='cO', mass=58.933, mtol=1.e-4)) AssertionError
>>> reconcile_nucleus(E='Co', A=60) >>> reconcile_nucleus(Z=27, A=60, real=True) >>> reconcile_nucleus(E='Co', A=60) >>> reconcile_nucleus(Z=27, mass=59.933817059) >>> reconcile_nucleus(A=60, Z=27, mass=59.933817059) >>> reconcile_nucleus(label='60Co') >>> reconcile_nucleus(label='27', mass=59.933817059) >>> reconcile_nucleus(label='Co', mass=59.933817059) >>> reconcile_nucleus(A=60, label='Co') 60, 27, 'Co', 59.933817059, True, ''
>>> reconcile_nucleus(E='Co', A=60, real=False)) >>> reconcile_nucleus(A=60, Z=27, mass=59.933817059, real=0)) >>> reconcile_nucleus(label='@60Co')) >>> reconcile_nucleus(label='Gh(27)', mass=59.933817059)) >>> reconcile_nucleus(label='@Co', mass=59.933817059)) >>> reconcile_nucleus(A=60, label='Gh(Co)')) 60, 27, 'Co', 59.933817059, False, ''
>>> reconcile_nucleus(Z=27, mass=200, nonphysical=True) 60, 27, 'Co', 200.00000000, True, ''
>>> reconcile_nucleus(mass=60.6, Z=27) >>> reconcile_nucleus(mass=60.6, E='Co') >>> reconcile_nucleus(mass=60.6, label='27') >>> reconcile_nucleus(label='Co@60.6') -1, 27, 'Co', 60.6, True, ''
>>> reconcile_nucleus(mass=60.6, Z=27, A=61)) >>> reconcile_nucleus(A=80, Z=27) >>> reconcile_nucleus(Z=27, mass=200) >>> reconcile_nucleus(Z=27, mass=-200, nonphysical=True) >>> reconcile_nucleus(Z=-27, mass=200, nonphysical=True) >>> reconcile_nucleus(Z=1, label='he') >>> reconcile_nucleus(A=4, label='3he') >>> reconcile_nucleus(label='@U', real=True) >>> reconcile_nucleus(label='U', real=False) ValidationError