TkN 2.7.1
Toolkit for Nuclei
Loading...
Searching...
No Matches
TkN: Version 2.7

The data changes below require a database generated with TkN 2.7. Updating the library alone does not change the contents of an existing database.

Migration from 2.6

  • Missing ground-state magnetic-dipole and electric-quadrupole moments now return NaN rather than -1. Use std::isnan() or has_property() to test for an absent moment.
  • Lifetime properties are displayed as half-life or decay width rather than lifetime, while the property key remains lifetime. Values marked uncertain are displayed as [uncertain] rather than [no uncertainty]. Scripts that parse these labels may need updating.
  • tklevel::get_decays_down() and get_decays_up() now return const references rather than copies.
  • databases/groundstates.csv is no longer installed. Database generation instead uses the primary-source files under ground_state_properties/ and nuclear_moments/, together with nudat.json.

Nuclear data

  • Recommended static magnetic and electric-quadrupole moments are associated with their matching ENSDF adopted levels, rather than automatically with the ground state. Access them through tklevel::get_magnetic_dipole() and get_electric_quadrupole(); the corresponding *_measure() methods also provide uncertainties and source information. Ground-state access through tknucleus remains available.
  • For example, in 20Ne, μ = +1.08(8) μN and Q = −0.23(3) b belong to the 1633.674-keV 2+ level, not the 0+ ground state.
  • When a source gives alternative moment values, TkN retains the first as uncertain instead of averaging them. tkmeasure::has_alternative() detects this case; get_alternative() returns the source text for the other solution, and get_info_tag() retains its provenance.
  • The LiveChart ground-state export has been replaced by primary sources: unrounded AME2020 masses, the IAEA charge-radii table, NuDat discovery years, and the dedicated IAEA/Stone recommended-moments tables.
  • ENSDF relative gamma-intensity and conversion-coefficient uncertainties now use the correct last-digit scale.

C++ API and numerical corrections

  • tknucleus and tklevel now provide get_half_life(), get_mean_lifetime() and get_decay_width(). The legacy get_lifetime() remains available, but returns a half-life in time units or a decay width in energy units, not the mean lifetime. Stable states return an infinite time or zero width; absent data return NaN through the new accessors.
  • tknucleus::get_ground_state() and the new tklevel_scheme::get_ground_state() return the zero-energy adopted level independently of dataset selection, or nullptr if none is available.
  • Missing measured properties are no longer represented by numeric zero: has_property() returns false, get() returns nullptr, and get_property() returns an empty string.
  • tknucleus adds get_element_state(), is_gas(), is_liquid() and is_solid(). An unknown isotope constructed from (Z,A) retains those numbers; construction from an unknown name no longer crashes.
  • Unit conversion rejects incompatible dimensions, correctly propagates reciprocal time/energy uncertainties, and leaves the original measure unchanged when reading a converted value. Unknown uncertainties are not turned into numeric ones; QdeltaAlpha no longer double-counts a mass.
  • First access to default level schemes is synchronized for concurrent read-only use. Dataset selection, edits to shared objects and direct low-level database cursors still require application-level coordination.

Installation, updater and history

  • Parent projects can configure TkN's installation layout with TKN_INSTALL_* CMake variables. The standalone layout is unchanged. The bundled SQLite library is updated to 3.53.4.
  • With DB_DOWNLOAD=ON, installation now fails if the database download fails. tkn-db-update checks a downloaded database before activation, preserves the active database on failure, and returns a nonzero status. It will not overwrite an ordinary TkN.db file or different bytes under an existing database filename.
  • Database-history reports now detail changes to physical values, including level moments. Changes limited to uncertainties, qualifiers or comments are counted as metadata without long lists of individual records.