ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
Classes | Functions
AtomData Namespace Reference

Useful atomic data/functions. More...

Classes

struct  NonRelConfig
 Stores non-relativistic single-electron config: {n, l, number}. More...
 
struct  DiracConfig
 Stores relativistic single-electron state {n, kappa, energy}. More...
 
struct  Element
 Atomic element data: Z, symbol, A, name. More...
 

Functions

bool operator== (const NonRelConfig &lhs, const NonRelConfig &rhs)
 
bool operator< (const NonRelConfig &lhs, const NonRelConfig &rhs)
 
int defaultA (int Z)
 Looks up default A (most common) for given Z.
 
std::string atomicSymbol (int Z)
 e.g., 55 -> "Cs"
 
std::string atomicName (int Z)
 e.g., 55 -> "Cesium"
 
int atomic_Z (const std::string &at)
 Converts atomic symbol to integer Z (e.g., 'Cs' to 55 )
 
std::string l_symbol (int l)
 l (int) to symbol (e.g., 0->'s', 1->'p')
 
std::string L_symbol (int l)
 L (int) to symbol (e.g., 0->'S', 1->'P')
 
std::string kappa_symbol (int kappa)
 kappa (int) to symbol, e.g., -1 -> s_1/2
 
std::string shortSymbol (int n, int kappa)
 Returns shortSymbol, given n and kappa: (6,-1)->"6s+".
 
int symbol_to_l (std::string_view l_str)
 e.g., 'p' -> 1
 
std::pair< int, int > parse_symbol (std::string_view symbol)
 Parses electron 'symbol' or 'shortSymbol' to {n,kappa}, e.g., "6s+" -> {6,-1}; "6p-" -> {6,1}; "6p_1/2" -> {6,1}.
 
std::string coreConfig (const std::string &in_ng)
 Given a nobel-gas conifg (e.g., '[Xe]') returns full electron config.
 
std::string niceCoreOutput (const std::string &full_core)
 Given a full electron config., returns nicer format by recognising nobel gas.
 
std::string configs_to_string (const std::vector< NonRelConfig > &configs)
 Given a list of NonRelConfigs, returns full string.
 
double diracen (double z, double n, int k, double alpha=0.00729735256635)
 Exact H-like energy.
 
std::vector< NonRelConfigcore_parser (const std::string &str_core_in)
 Takes a "core string" in form "[X],nLm,nLm,..." converts to vector of NonRelConfig, after converting [X] to a state string. Allows negative and non-physical m's (to allow combining); responsability of whoever uses the list to check for validity.
 
NonRelConfig term_parser (std::string_view term)
 Given a term symbol 'nLm', returns corresponding NonRelConfig.
 
std::vector< NonRelConfigstate_parser (const std::string &str_states)
 Takes a string of states in form "nLm,nLm,..." converts to vector of NonRelConfig. Allows negative and non-physical m's (to allow combining)
 
void state_parser (std::vector< NonRelConfig > *states, const std::string &str_states)
 Overload; adds to existing states vector (may be empty)
 
std::string guessCoreConfigStr (const int total_core_electrons)
 Given a number of electrons, guesses the configuration, returns as string.
 
std::vector< NonRelConfigcore_guess (const int total_core_electrons)
 Given a number of electrons, guesses the configuration, returns list of NonRelConfigs.
 
std::vector< DiracConfiglistOfStates_nk (const std::string &in_list)
 Generates a list of DiracConfig from string: full list.
 
std::vector< DiracConfiglistOfStates_singlen (const std::string &in_list)
 Generates a list of DiracConfig from string: just max n for each kappa.
 
std::vector< std::pair< int, int > > n_kappa_list (const std::string &basis_string)
 Given a "basis string", returns list of {n, kappa}. e.g., 6sp5d ->{{6,-1}, {6,1}, {6,-2}, {5,2}, {5,-2}}.
 
std::string helper_s (const Element &el)
 
std::string helper_z (const Element &el)
 
void printTable ()
 Prints a periodic table to screen.
 
int atomic_Z (int z)
 Overload, to can call with int anyway.
 
void instructions ()
 
void printData (const Nuclear::Isotope &nuc)
 
int parse_A (const std::string &A_str, int z)
 
void printConstants ()
 
void periodicTable (std::string z_str, std::string a_str)
 

Detailed Description

Useful atomic data/functions.