TkN 2.6
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< tkmeasureget_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< tkmeasureget_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
 
int get_discovery_year ()
 return the discovery year
 
double get_electric_quadrupole ()
 return the electric quadrupole moment in barn by default
 
shared_ptr< tkmeasureget_electric_quadrupole_measure ()
 return the electric quadrupole moment tkmeasure object
 
const tkstringget_element_name ()
 return the name of the chemical element
 
const tkstringget_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< tklevelget_ground_state ()
 return the ground state level (nullptr if no GS known)
 
const tkstringget_jpi () const
 return the ground state spin and parity as a string
 
shared_ptr< tklevel_schemeget_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)
 returns the lifetime in second
 
shared_ptr< tkmeasureget_lifetime_measure () const
 returns the lifetime tkmeasure object
 
tkstring get_lifetime_str ()
 returns the lifetime in string (using the best adapted unit)
 
double get_magnetic_dipole ()
 return the magnetic dipole moment in mun by default
 
shared_ptr< tkmeasureget_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< tkmeasureget_mass_excess_measure ()
 return the mass excess tkmeasure object
 
int get_n ()
 return the neutron number
 
double get_radius () const
 returns the radius in fm
 
shared_ptr< tkmeasureget_radius_measure ()
 return the radius tkmeasure object
 
const tkspin_parityget_spin_parity () const
 return the ground state spin and parity object
 
const tkstringget_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_known () const
 test if the nucleus is known
 
bool is_n_magic ()
 return true in case of n is a magic number
 
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< tkmeasureget (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 40 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 64 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 88 of file tknucleus.cpp.

◆ ~tknucleus()

virtual ~tknucleus ( )
overridevirtualdefault

Member Function Documentation

◆ get_a()

int get_a ( )
inline

return the mass number

Definition at line 88 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::is_nan() on the returned value.

Definition at line 175 of file tknucleus.cpp.

◆ get_abundance_measure()

shared_ptr< tkmeasure > get_abundance_measure ( )
inline

return the abundance tkmeasure object

Definition at line 119 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::is_nan() on the returned value.

Definition at line 205 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 129 of file tknucleus.h.

◆ get_decay_mode_str()

tkstring get_decay_mode_str ( )
inline

return the decay modes as a string

Definition at line 147 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 311 of file tknucleus.cpp.

◆ get_discovery_year()

int get_discovery_year ( )
inline

return the discovery year

Definition at line 150 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. in case no abundance is known for this nucleus, a value of -1 is returned. It can be tested using tknucleus::has_property("electric_quadrupole") prior to call this method or std::is_nan() on the returned value.

Definition at line 162 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 114 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_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 245 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.

The ground state is defined as the first level (lowest energy) in the default dataset.

See also
tklevel_scheme::get_levels()

Definition at line 288 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 165 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 124 of file tknucleus.cpp.

◆ get_lifetime()

double get_lifetime ( const tkunit_manager::units_keys _unit = tkunit_manager::units_keys::s)

returns the lifetime in second

Parameters
_unitunit of the returned result. second is used by default

This method returns the groundstate lifetime of the nucleus in unit of _units. A std::nan(1) is returned in case no lifetime is known for this nucleus. It can be tested using tknucleus::has_property("lifetime") prior to call this method or std::is_nan() on the returned value.

Definition at line 222 of file tknucleus.cpp.

◆ get_lifetime_measure()

shared_ptr< tkmeasure > get_lifetime_measure ( ) const
inline

returns the lifetime tkmeasure object

Definition at line 134 of file tknucleus.h.

◆ get_lifetime_str()

tkstring get_lifetime_str ( )

returns the lifetime in string (using the best adapted unit)

This method returns the level lifetime as string using the best adapted unit

Definition at line 257 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. in case no abundance is known for this nucleus, a value of -1 is returned. It can be tested using tknucleus::has_property("magnetic_dipole") prior to call this method or std::is_nan() on the returned value.

Definition at line 149 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 109 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::is_nan() on the returned value.

Definition at line 188 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 124 of file tknucleus.h.

◆ get_n()

int get_n ( )
inline

return the neutron number

Definition at line 86 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::is_nan() on the returned value.

Definition at line 136 of file tknucleus.cpp.

◆ get_radius_measure()

shared_ptr< tkmeasure > get_radius_measure ( )
inline

return the radius tkmeasure object

Definition at line 104 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 163 of file tknucleus.h.

◆ get_symbol()

const tkstring & get_symbol ( )
inline

return the nucleus symbol

Definition at line 91 of file tknucleus.h.

◆ get_xrays()

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

returns the list of xrays

Definition at line 168 of file tknucleus.h.

◆ get_z()

int get_z ( )
inline

return the proton number

Definition at line 84 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.

A nucleus beyond the proton or neutron drip line has a negative binding energy and is therefore unbound.

Definition at line 300 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 98 of file tknucleus.h.

◆ is_known()

bool is_known ( ) const
inline

test if the nucleus is known

Definition at line 156 of file tknucleus.h.

◆ is_n_magic()

bool is_n_magic ( )

return true in case of n is a magic number

Definition at line 118 of file tknucleus.cpp.

◆ is_stable()

bool is_stable ( ) const
inline

test if the nucleus is stable

Definition at line 158 of file tknucleus.h.

◆ is_z_magic()

bool is_z_magic ( )

return true in case of z is a magic number

Definition at line 112 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 338 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: