![]() |
TkN 2.7.1
Toolkit for Nuclei
|
To access any nuclear property, a tknucleus needs to be created. it can be created using its symbol, or its proton and mass number:
If the requested nucleus is not available, the object is left without nuclear properties and is_known() returns false. This should be checked before accessing its properties.
A nucleus can also be create only using it's element name or charge number. In such case, the most stable isotope will be returned, and the most abundant in case of multiple stable nuclei:
The main properties of a nucleus can be printed with:
For each element, the following properties can be available:
The physical state of the element at standard conditions is available through get_element_state() and the corresponding convenience methods:
get_element_state() returns Gas, Liquid or Solid. It returns an empty string when the information is unavailable; in that case, is_gas(), is_liquid() and is_solid() all return false.
Then, for each isotope, the following properties can be available from the databases (see (see the data sources section)):
From the mass excess values, the following properties are calculated in TkN:
to see the available properties for a given nucleus, use the tknucleus::list_properties() method:
The results can be filtered using a regular expression:
To test if a property is available, use the tknucleus::has_property() method.
Database fields with no value are not added to the nucleus property list. Applications can therefore distinguish missing information from a valid zero using has_property().
For an unavailable property:
has_property() returns false;get() returns nullptr for measured properties;get_property() returns an empty string;NaN or -1.Property availability should be checked before using a convenience accessor, especially for spin-parity, lifetime, mass excess and discovery information.
For a faster access to the most used properties, few specific methods have been added to tknucleus objects:
| method name | description |
|---|---|
| get_a() | nucleon number |
| get_n() | neutron number |
| get_z() | proton number |
| get_symbol() | nucleus name (ex: 12C) |
| get_element_name() | element name (ex: Carbon) |
| get_element_symbol() | element symbol (ex: C) |
| get_element_state() | physical state of the element at standard conditions |
| is_gas() | returns true if the element is a gas at standard conditions |
| is_liquid() | returns true if the element is a liquid at standard conditions |
| is_solid() | returns true if the element is a solid at standard conditions |
| is_known() | returns true if the nucleus is known in the database |
| is_stable() | returns true if the nucleus is stable |
| is_bound() | returns true if the binding energy is positive |
| is_z_magic() | is Z a magic number |
| is_n_magic() | is N a magic number |
| is_doubly_magic() | is nucleus doubly magic |
| get_abundance() | abundance for stable nuclei (in %) |
| get_binding_energy_over_a() | binding energy per nucleon (MeV) (unit as parameter) |
| get_half_life() | ground-state half-life T1/2 (seconds by default) |
| get_mean_lifetime() | mean lifetime tau = T1/2 / ln(2) (seconds by default) |
| get_decay_width() | width Gamma = hbar/tau (keV by default) |
| get_lifetime() | legacy T1/2 or Gamma, not tau |
| get_mass_excess() | mass excess (keV by default; unit as parameter) |
| get_radius() | charge radius (fm) |
| get_magnetic_dipole() | magnetic dipole moment (μN) |
| get_electric_quadrupole() | electric quadrupole moment (barn) |
| get_jpi() | ground state spin and parity as a string |
| get_xrays() | vector of the known xray energies |
| get_decay_mode_str() | decay modes as a string |
| get_decay_modes() | decay modes as a vector of decay and branching ratio |
| get_discovery_year() | year of discovery of the isotope |
| get_ground_state() | access the ground state tkn::tklevel |
| get_level_scheme() | access the tkn::tklevel_scheme |
| get_fission_yield(tkstring _parent, bool _cumulative=false) | get the fission yield of for a given fissioning nucleus (cumulative or not) |
The above methods giving access to a measure (ex: get_lifetime() ), are directly returning the value as a double. Dedicated methods allows to access the tkn::tkmeasure to access to units, uncertainties... etc (see Measures and units).
get_lifetime_measure() returns the stored ENSDF half-life or width, with uncertainties and qualifiers; see the time conventions. The new time accessors return infinity for stable states and NaN for absent data. The legacy accessor retains its historical stable-state sentinel.
Both moment accessors return NaN when absent; a measured -1 remains valid. Radius and abundance retain their historical missing sentinel of -1. get_ground_state() returns the zero-energy adopted level without changing the selected dataset, or nullptr if no adopted ground state is available. It does not substitute an excited level or an XUNDL assignment. is_bound() tests positive total binding energy, not a drip-line criterion; consult separation energies for nucleon-emission energetics.