![]() |
TkN 2.7.1
Toolkit for Nuclei
|
Represents a nucleus and provides access to its properties. More...
#include <physics/tknucleus.h>
Public Member Functions | |
| tknucleus () | |
| default constructor | |
| tknucleus (const char *_symbol) | |
| tknucleus constructor taking a string as input | |
| tknucleus (int _Z) | |
| tknucleus constructor taking only Z as input | |
| tknucleus (int _Z, int _A) | |
| tknucleus constructor taking Z and A as input | |
| virtual | ~tknucleus () override=default |
| int | get_a () |
| return the mass number | |
| double | get_abundance () const |
| returns the natural abundance in percent | |
| shared_ptr< tkmeasure > | get_abundance_measure () |
| return the abundance tkmeasure object | |
| double | get_binding_energy_over_a (const tkunit_manager::units_keys _unit=tkunit_manager::units_keys::MeV) |
| returns the binding energy per mass unit in MeV | |
| shared_ptr< tkmeasure > | get_binding_energy_over_a_measure () |
| returns the binding energy tkmeasure object | |
| tkstring | get_decay_mode_str () |
| return the decay modes as a string | |
| vector< pair< tkstring, double > > | get_decay_modes () |
| return the decay modes as a vector of decay | |
| double | get_decay_width (tkunit_manager::units_keys _unit=tkunit_manager::keV) |
| Ground-state width Gamma = hbar/tau; energy units only. Stable: 0; absent: NaN. | |
| int | get_discovery_year () |
| return the discovery year | |
| double | get_electric_quadrupole () |
| return the electric quadrupole moment in barn by default | |
| shared_ptr< tkmeasure > | get_electric_quadrupole_measure () |
| return the electric quadrupole moment tkmeasure object | |
| const tkstring & | get_element_name () |
| return the name of the chemical element | |
| tkstring | get_element_state () const |
| return the physical state at standard conditions, or an empty string if unavailable | |
| const tkstring & | get_element_symbol () |
| return the symbol of the chemical element | |
| double | get_fission_yield (tkstring _parent, bool _cumulative=false) |
| returns the fission yield of the current nucleus | |
| shared_ptr< tklevel > | get_ground_state () |
| return the ground state level (nullptr if no GS known) | |
| double | get_half_life (tkunit_manager::units_keys _unit=tkunit_manager::s) |
| Ground-state half-life T1/2; time units only. Stable: +inf; absent/invalid: NaN. | |
| const tkstring & | get_jpi () const |
| return the ground state spin and parity as a string | |
| shared_ptr< tklevel_scheme > | get_level_scheme () |
| return a tklevel_scheme shared pointer to the nucleus level scheme | |
| double | get_lifetime (const tkunit_manager::units_keys _unit=tkunit_manager::units_keys::s) |
| shared_ptr< tkmeasure > | get_lifetime_measure () const |
| Legacy stored measure: half-life in time units, width in energy units. | |
| tkstring | get_lifetime_str () |
| Legacy formatting of T1/2 or Gamma (not mean lifetime). | |
| double | get_magnetic_dipole () |
| return the magnetic dipole moment in mun by default | |
| shared_ptr< tkmeasure > | get_magnetic_dipole_measure () |
| return the magnetic dipole moment tkmeasure object | |
| double | get_mass_excess (const tkunit_manager::units_keys _unit=tkunit_manager::units_keys::keV) |
| return the mass excess in keV by default | |
| shared_ptr< tkmeasure > | get_mass_excess_measure () |
| return the mass excess tkmeasure object | |
| double | get_mean_lifetime (tkunit_manager::units_keys _unit=tkunit_manager::s) |
| Ground-state mean lifetime tau = T1/2 / ln(2); time units only. | |
| int | get_n () |
| return the neutron number | |
| double | get_radius () const |
| returns the radius in fm | |
| shared_ptr< tkmeasure > | get_radius_measure () |
| return the radius tkmeasure object | |
| const tkspin_parity & | get_spin_parity () const |
| return the ground state spin and parity object | |
| const tkstring & | get_symbol () |
| return the nucleus symbol | |
| const vector< shared_ptr< tkmeasure > > | get_xrays () |
| returns the list of xrays | |
| int | get_z () |
| return the proton number | |
| bool | is_bound () const |
| test if the nucleus is bound (positive binding energy) | |
| bool | is_doubly_magic () |
| return true in case of z and n are magic numbers | |
| bool | is_gas () const |
| return true only when the recorded standard state is Gas | |
| bool | is_known () const |
| test if the nucleus is known | |
| bool | is_liquid () const |
| return true only when the recorded standard state is Liquid | |
| bool | is_n_magic () |
| return true in case of n is a magic number | |
| bool | is_solid () const |
| return true only when the recorded standard state is Solid | |
| bool | is_stable () const |
| test if the nucleus is stable | |
| bool | is_z_magic () |
| return true in case of z is a magic number | |
| void | print () const |
| print the main nucleus properties | |
Public Member Functions inherited from tkproperty_list | |
| tkproperty_list (tkstring _name) | |
| virtual | ~tkproperty_list ()=default |
| shared_ptr< tkmeasure > | get (const tkstring &_property) const |
| get the property as tkmeasure | |
| vector< shared_ptr< tkmeasure > > | get_data_properties (const tkstring &_opt="*") |
| get a vector of data properties according to a regular expression | |
| const auto & | get_properties () const |
| get the properties map | |
| tkstring | get_property (const tkstring &_property) const |
| get the property value as a string | |
| tkstring | get_property_type (const tkstring &_property) const |
| get the property type as a string | |
| tkstring | get_property_unit (const tkstring &_property) const |
| get the property unnit as a string | |
| bool | has_property (const tkstring &_property) const |
| to check if the property is available | |
| void | list_data_properties (const tkstring &_opt="*") const |
| list the available tkmeasure properties | |
| void | list_properties (const tkstring &_opt="*") const |
| list the available properties | |
Friends | |
| class | tkmanager |
Represents a nucleus and provides access to its properties.
A nucleus made of Z protons and N neutrons.
A tknucleus can be created by symbol, by (Z, A), or by Z alone (in which case the most stable isotope is returned). It provides access to ground-state properties (spin-parity, lifetime, mass excess, binding energy, Q-values, separation energies, decay modes, fission yields, X-rays, etc.) as well as to the level scheme via get_level_scheme().
Example:
See the elements and nuclei user guide.
Definition at line 50 of file tknucleus.h.
|
inline |
default constructor
Definition at line 72 of file tknucleus.h.
| tknucleus | ( | int | _Z, |
| int | _A ) |
tknucleus constructor taking Z and A as input
| _Z | proton number |
| _A | nucleon number |
Definition at line 41 of file tknucleus.cpp.
| tknucleus | ( | int | _Z | ) |
tknucleus constructor taking only Z as input
| _Z | proton number |
The most stable nucleus is returned and the most abundant if more than one stable
Definition at line 65 of file tknucleus.cpp.
| tknucleus | ( | const char * | _symbol | ) |
tknucleus constructor taking a string as input
| _symbol | nucleus symbol (ex: "12C") |
if only the element symbol is given, the most stable nucleus is returned (and the most abundant if more than one stable)
Definition at line 89 of file tknucleus.cpp.
|
overridevirtualdefault |
|
inline |
return the mass number
Definition at line 96 of file tknucleus.h.
| double get_abundance | ( | ) | const |
returns the natural abundance in percent
This method returns the natural abundance of the nucleus in percent. in case no abundance is known for this nucleus, a value of -1 is returned. It can be tested using tknucleus::has_property("abundance") prior to call this method or std::isnan() on the returned value.
Definition at line 178 of file tknucleus.cpp.
|
inline |
return the abundance tkmeasure object
Definition at line 127 of file tknucleus.h.
| double get_binding_energy_over_a | ( | const tkunit_manager::units_keys | _unit = tkunit_manager::units_keys::MeV | ) |
returns the binding energy per mass unit in MeV
| _unit | unit of the returned result. MeV are used by default |
This method returns the binding energy per mass unit of the nucleus in unit of _units. A std::nan(1) is returned in case no mass excess is known for this nucleus. It can be tested using tknucleus::has_property("binding_energy_overA") prior to call this method or std::isnan() on the returned value.
Definition at line 208 of file tknucleus.cpp.
|
inline |
returns the binding energy tkmeasure object
Definition at line 137 of file tknucleus.h.
|
inline |
return the decay modes as a string
Definition at line 162 of file tknucleus.h.
| vector< pair< tkstring, double > > get_decay_modes | ( | ) |
return the decay modes as a vector of decay
This method returns the different known decay modes as a vector of pair containing the decay as a string and the ratio as a double. A ratio value of -1 means that the value or decay is uncertain
Definition at line 326 of file tknucleus.cpp.
| double get_decay_width | ( | tkunit_manager::units_keys | _unit = tkunit_manager::keV | ) |
Ground-state width Gamma = hbar/tau; energy units only. Stable: 0; absent: NaN.
Definition at line 232 of file tknucleus.cpp.
|
inline |
return the discovery year
Definition at line 165 of file tknucleus.h.
| double get_electric_quadrupole | ( | ) |
return the electric quadrupole moment in barn by default
This method returns the electric quadrupole moment of the nucleus in barn. Returns NaN when the electric quadrupole moment is absent. It can be tested using tknucleus::has_property("electric_quadrupole") prior to call this method or std::isnan() on the returned value.
Definition at line 165 of file tknucleus.cpp.
|
inline |
return the electric quadrupole moment tkmeasure object
Definition at line 122 of file tknucleus.h.
|
inline |
return the name of the chemical element
Definition at line 81 of file tknucleus.h.
|
inline |
return the physical state at standard conditions, or an empty string if unavailable
Definition at line 83 of file tknucleus.h.
|
inline |
return the symbol of the chemical element
Definition at line 79 of file tknucleus.h.
| double get_fission_yield | ( | tkstring | _parent, |
| bool | _cumulative = false ) |
returns the fission yield of the current nucleus
| _parent | name of the fissioning nucleus |
| _cumulative | if true, returns the cumulative fission yield |
This method returns fission yield of the current nucleus for a given fissioning nucleus _parent. returns 0 if no fission yield is existing. Available fissioning nucleus:
Definition at line 260 of file tknucleus.cpp.
| shared_ptr< tklevel > get_ground_state | ( | ) |
return the ground state level (nullptr if no GS known)
Returns the ground state level of the nucleus.
Returns the zero-energy level without an offset in the adopted dataset. Selection of another dataset is left unchanged. No adopted ground state means nullptr.
Definition at line 304 of file tknucleus.cpp.
| double get_half_life | ( | tkunit_manager::units_keys | unit = tkunit_manager::s | ) |
Ground-state half-life T1/2; time units only. Stable: +inf; absent/invalid: NaN.
| unit | requested time unit, seconds by default. |
Ground-state half-life T1/2, not mean lifetime. Stable: infinity; absent: NaN.
Definition at line 222 of file tknucleus.cpp.
|
inline |
return the ground state spin and parity as a string
Definition at line 180 of file tknucleus.h.
| shared_ptr< tklevel_scheme > get_level_scheme | ( | ) |
return a tklevel_scheme shared pointer to the nucleus level scheme
Definition at line 127 of file tknucleus.cpp.
| double get_lifetime | ( | const tkunit_manager::units_keys | _unit = tkunit_manager::units_keys::s | ) |
Legacy API (deprecated in documentation): T1/2 in time units or Gamma in energy units. Prefer get_half_life(), get_mean_lifetime(), or get_decay_width().
Definition at line 237 of file tknucleus.cpp.
|
inline |
Legacy stored measure: half-life in time units, width in energy units.
Definition at line 142 of file tknucleus.h.
| tkstring get_lifetime_str | ( | ) |
Legacy formatting of T1/2 or Gamma (not mean lifetime).
This method returns the level lifetime as string using the best adapted unit
Definition at line 272 of file tknucleus.cpp.
| double get_magnetic_dipole | ( | ) |
return the magnetic dipole moment in mun by default
This method returns the magnetic dipole moment of the nucleus in mun. Returns NaN when the magnetic dipole moment is absent. It can be tested using tknucleus::has_property("magnetic_dipole") prior to call this method or std::isnan() on the returned value.
Definition at line 152 of file tknucleus.cpp.
|
inline |
return the magnetic dipole moment tkmeasure object
Definition at line 117 of file tknucleus.h.
| double get_mass_excess | ( | const tkunit_manager::units_keys | _unit = tkunit_manager::units_keys::keV | ) |
return the mass excess in keV by default
| _unit | unit of the returned result. keV are used by default |
This method returns the mass excess of the nucleus in unit of _units. A std::nan(1) is returned in case no mass excess is known for this nucleus. It can be tested using tknucleus::has_property("mass_excess") prior to call this method or std::isnan() on the returned value.
Definition at line 191 of file tknucleus.cpp.
|
inline |
return the mass excess tkmeasure object
Definition at line 132 of file tknucleus.h.
| double get_mean_lifetime | ( | tkunit_manager::units_keys | _unit = tkunit_manager::s | ) |
Ground-state mean lifetime tau = T1/2 / ln(2); time units only.
Definition at line 227 of file tknucleus.cpp.
|
inline |
return the neutron number
Definition at line 94 of file tknucleus.h.
| double get_radius | ( | ) | const |
returns the radius in fm
This method returns the charge radius in fm. in case no radius is known for this nucleus, a value of -1 is returned. It can be tested using tknucleus::has_property("radius") prior to call this method or std::isnan() on the returned value.
Definition at line 139 of file tknucleus.cpp.
|
inline |
return the radius tkmeasure object
Definition at line 112 of file tknucleus.h.
|
inline |
return the ground state spin and parity object
Definition at line 178 of file tknucleus.h.
|
inline |
return the nucleus symbol
Definition at line 99 of file tknucleus.h.
|
inline |
returns the list of xrays
Definition at line 183 of file tknucleus.h.
|
inline |
return the proton number
Definition at line 92 of file tknucleus.h.
| bool is_bound | ( | ) | const |
test if the nucleus is bound (positive binding energy)
Returns true if the nucleus has a positive binding energy.
This tests total binding only, not stability against nucleon emission. Positive binding energy does not imply being inside the drip lines.
Definition at line 315 of file tknucleus.cpp.
|
inline |
return true in case of z and n are magic numbers
Definition at line 106 of file tknucleus.h.
|
inline |
return true only when the recorded standard state is Gas
Definition at line 85 of file tknucleus.h.
|
inline |
test if the nucleus is known
Definition at line 171 of file tknucleus.h.
|
inline |
return true only when the recorded standard state is Liquid
Definition at line 87 of file tknucleus.h.
| bool is_n_magic | ( | ) |
return true in case of n is a magic number
Definition at line 121 of file tknucleus.cpp.
|
inline |
return true only when the recorded standard state is Solid
Definition at line 89 of file tknucleus.h.
|
inline |
test if the nucleus is stable
Definition at line 173 of file tknucleus.h.
| bool is_z_magic | ( | ) |
return true in case of z is a magic number
Definition at line 115 of file tknucleus.cpp.
| void print | ( | ) | const |
print the main nucleus properties
Prints the main properties of the nucleus to the terminal.
Prints the nucleus symbol, Z and N, ground state spin-parity, and for radioactive nuclei the lifetime and decay modes. For stable nuclei, the natural abundance is shown.
Example:
Definition at line 353 of file tknucleus.cpp.
|
friend |
Definition at line 52 of file tknucleus.h.