TkN 2.7
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
 
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)
 
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)
 returns the lifetime in second
 
shared_ptr< tkmeasure > get_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< 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
 
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 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 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::is_nan() on the returned value.

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

Definition at line 207 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 155 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 313 of file tknucleus.cpp.

◆ get_discovery_year()

int get_discovery_year ( )
inline

return the discovery year

Definition at line 158 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 164 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 247 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 290 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 173 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 126 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 224 of file tknucleus.cpp.

◆ get_lifetime_measure()

shared_ptr< tkmeasure > get_lifetime_measure ( ) const
inline

returns the lifetime tkmeasure object

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

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

Definition at line 138 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 171 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 176 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.

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

Definition at line 302 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 164 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 120 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 166 of file tknucleus.h.

◆ is_z_magic()

bool is_z_magic ( )

return true in case of z is a magic number

Definition at line 114 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 340 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: