TkN 2.7.1
Toolkit for Nuclei
Loading...
Searching...
No Matches
tknucleus Class Reference

Represents a nucleus and provides access to its properties. More...

#include <physics/tknucleus.h>

Inheritance diagram for tknucleus:
tkproperty_list

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
 

Detailed Description

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:

using namespace tkn;
tknucleus nuc("132Sn");
nuc.print();
auto ls = nuc.get_level_scheme();
ls->print("dataset");
tknucleus()
default constructor
Definition tknucleus.h:72
Definition tklog.cpp:16
See also
tklevel_scheme, tklevel, tkmeasure

See the elements and nuclei user guide.

Definition at line 50 of file tknucleus.h.

Constructor & Destructor Documentation

◆ tknucleus() [1/4]

tknucleus ( )
inline

default constructor

Definition at line 72 of file tknucleus.h.

◆ tknucleus() [2/4]

tknucleus ( int _Z,
int _A )

tknucleus constructor taking Z and A as input

Parameters
_Zproton number
_Anucleon number

Definition at line 41 of file tknucleus.cpp.

◆ tknucleus() [3/4]

tknucleus ( int _Z)

tknucleus constructor taking only Z as input

Parameters
_Zproton 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() [4/4]

tknucleus ( const char * _symbol)

tknucleus constructor taking a string as input

Parameters
_symbolnucleus 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.

◆ ~tknucleus()

virtual ~tknucleus ( )
overridevirtualdefault

Member Function Documentation

◆ get_a()

int get_a ( )
inline

return the mass number

Definition at line 96 of file tknucleus.h.

◆ get_abundance()

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.

◆ get_abundance_measure()

shared_ptr< tkmeasure > get_abundance_measure ( )
inline

return the abundance tkmeasure object

Definition at line 127 of file tknucleus.h.

◆ get_binding_energy_over_a()

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

Parameters
_unitunit 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.

◆ get_binding_energy_over_a_measure()

shared_ptr< tkmeasure > get_binding_energy_over_a_measure ( )
inline

returns the binding energy tkmeasure object

Definition at line 137 of file tknucleus.h.

◆ get_decay_mode_str()

tkstring get_decay_mode_str ( )
inline

return the decay modes as a string

Definition at line 162 of file tknucleus.h.

◆ get_decay_modes()

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.

◆ get_decay_width()

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.

◆ get_discovery_year()

int get_discovery_year ( )
inline

return the discovery year

Definition at line 165 of file tknucleus.h.

◆ get_electric_quadrupole()

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.

◆ get_electric_quadrupole_measure()

shared_ptr< tkmeasure > get_electric_quadrupole_measure ( )
inline

return the electric quadrupole moment tkmeasure object

Definition at line 122 of file tknucleus.h.

◆ get_element_name()

const tkstring & get_element_name ( )
inline

return the name of the chemical element

Definition at line 81 of file tknucleus.h.

◆ get_element_state()

tkstring get_element_state ( ) const
inline

return the physical state at standard conditions, or an empty string if unavailable

Definition at line 83 of file tknucleus.h.

◆ get_element_symbol()

const tkstring & get_element_symbol ( )
inline

return the symbol of the chemical element

Definition at line 79 of file tknucleus.h.

◆ get_fission_yield()

double get_fission_yield ( tkstring _parent,
bool _cumulative = false )

returns the fission yield of the current nucleus

Parameters
_parentname of the fissioning nucleus
_cumulativeif 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:

  • 235U
  • 238U
  • 239Pu
  • 241Pu
  • 252Cf

Definition at line 260 of file tknucleus.cpp.

◆ get_ground_state()

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
shared pointer to the ground state tklevel, or nullptr if no level is known.

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.

See also
tklevel_scheme::get_levels()

Definition at line 304 of file tknucleus.cpp.

◆ get_half_life()

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.

Parameters
unitrequested 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.

◆ get_jpi()

const tkstring & get_jpi ( ) const
inline

return the ground state spin and parity as a string

Definition at line 180 of file tknucleus.h.

◆ get_level_scheme()

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.

◆ get_lifetime()

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.

◆ get_lifetime_measure()

shared_ptr< tkmeasure > get_lifetime_measure ( ) const
inline

Legacy stored measure: half-life in time units, width in energy units.

Definition at line 142 of file tknucleus.h.

◆ get_lifetime_str()

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.

◆ get_magnetic_dipole()

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.

◆ get_magnetic_dipole_measure()

shared_ptr< tkmeasure > get_magnetic_dipole_measure ( )
inline

return the magnetic dipole moment tkmeasure object

Definition at line 117 of file tknucleus.h.

◆ get_mass_excess()

double get_mass_excess ( const tkunit_manager::units_keys _unit = tkunit_manager::units_keys::keV)

return the mass excess in keV by default

Parameters
_unitunit 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.

◆ get_mass_excess_measure()

shared_ptr< tkmeasure > get_mass_excess_measure ( )
inline

return the mass excess tkmeasure object

Definition at line 132 of file tknucleus.h.

◆ get_mean_lifetime()

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.

◆ get_n()

int get_n ( )
inline

return the neutron number

Definition at line 94 of file tknucleus.h.

◆ get_radius()

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.

◆ get_radius_measure()

shared_ptr< tkmeasure > get_radius_measure ( )
inline

return the radius tkmeasure object

Definition at line 112 of file tknucleus.h.

◆ get_spin_parity()

const tkspin_parity & get_spin_parity ( ) const
inline

return the ground state spin and parity object

Definition at line 178 of file tknucleus.h.

◆ get_symbol()

const tkstring & get_symbol ( )
inline

return the nucleus symbol

Definition at line 99 of file tknucleus.h.

◆ get_xrays()

const vector< shared_ptr< tkmeasure > > get_xrays ( )
inline

returns the list of xrays

Definition at line 183 of file tknucleus.h.

◆ get_z()

int get_z ( )
inline

return the proton number

Definition at line 92 of file tknucleus.h.

◆ is_bound()

bool is_bound ( ) const

test if the nucleus is bound (positive binding energy)

Returns true if the nucleus has a positive binding energy.

Returns
true if the binding energy per nucleon is positive (nucleus is bound), false otherwise.

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.

◆ is_doubly_magic()

bool is_doubly_magic ( )
inline

return true in case of z and n are magic numbers

Definition at line 106 of file tknucleus.h.

◆ is_gas()

bool is_gas ( ) const
inline

return true only when the recorded standard state is Gas

Definition at line 85 of file tknucleus.h.

◆ is_known()

bool is_known ( ) const
inline

test if the nucleus is known

Definition at line 171 of file tknucleus.h.

◆ is_liquid()

bool is_liquid ( ) const
inline

return true only when the recorded standard state is Liquid

Definition at line 87 of file tknucleus.h.

◆ is_n_magic()

bool is_n_magic ( )

return true in case of n is a magic number

Definition at line 121 of file tknucleus.cpp.

◆ is_solid()

bool is_solid ( ) const
inline

return true only when the recorded standard state is Solid

Definition at line 89 of file tknucleus.h.

◆ is_stable()

bool is_stable ( ) const
inline

test if the nucleus is stable

Definition at line 173 of file tknucleus.h.

◆ is_z_magic()

bool is_z_magic ( )

return true in case of z is a magic number

Definition at line 115 of file tknucleus.cpp.

◆ print()

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:

tknucleus nuc("12C");
nuc.print();
[ INFO ] 12C (Z=6, N=6) properties:
[ INFO ] Ground state configuration: 0+
[ INFO ] Stable nucleus, abundance: 98.93 %

Definition at line 353 of file tknucleus.cpp.

Friends And Related Symbol Documentation

◆ tkmanager

friend class tkmanager
friend

Definition at line 52 of file tknucleus.h.


The documentation for this class was generated from the following files: