|
std::unordered_map< std::string, const Element * > | names_ |
|
std::unordered_map< std::string, const Element * > | symbols_ |
|
std::unordered_map< unsigned int, const Element * > | atomic_numbers_ |
|
bool | hasElement (const std::string &name) const |
| returns true if the db contains an element with the given name More...
|
|
bool | hasElement (unsigned int atomic_number) const |
| returns true if the db contains an element with the given atomic_number More...
|
|
IsotopeDistribution | parseIsotopeDistribution_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
|
double | calculateAvgWeight_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
|
double | calculateMonoWeight_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
|
void | storeElements_ () |
| constructs element objects More...
|
|
void | buildElement_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
| build element objects from given abundances, masses, name, symbol, and atomic number More...
|
|
void | addElementToMaps_ (const std::string &name, const std::string &symbol, const unsigned int an, std::unique_ptr< const Element > e) |
| add element objects to documentation maps More...
|
|
void | storeIsotopes_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &Z_to_mass, const IsotopeDistribution &isotopes) |
| constructs isotope objects More...
|
|
void | clear_ () |
|
| ElementDB () |
|
| ~ElementDB () |
|
| ElementDB (const ElementDB &db)=delete |
|
| ElementDB (const ElementDB &&db)=delete |
|
ElementDB & | operator= (const ElementDB &db)=delete |
|
|
static ElementDB * | getInstance () |
|
const std::unordered_map< std::string, const Element * > & | getNames () const |
| returns a hashmap that contains names mapped to pointers to the elements More...
|
|
const std::unordered_map< std::string, const Element * > & | getSymbols () const |
| returns a hashmap that contains symbols mapped to pointers to the elements More...
|
|
const std::unordered_map< unsigned int, const Element * > & | getAtomicNumbers () const |
| returns a hashmap that contains atomic numbers mapped to pointers of the elements More...
|
|
const Element * | getElement (const std::string &name) const |
|
const Element * | getElement (unsigned int atomic_number) const |
| returns a pointer to the element of atomic number; if no element is found 0 is returned More...
|
|
void | addElement (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass, bool replace_existing) |
|
Singleton that stores elements and isotopes.
The elements weights (in the default file) are taken from "Isotopic Compositions of the Elements 1997", Pure Appl. Chem., 70(1), 217-235, 1998. (http://www.iupac.org/reports/1998/7001rosman/)
The isotope distributions (in the default file) are taken from "Atomic weights of the elements. Review 2000" (IUPAC Technical Report) Pure Appl. Chem., 2003, Vol. 75, No. 6, pp. 683-799 doi:10.1351/pac200375060683
Specific isotopes of elements can be accessed by writing the atomic number of the isotope in brackets followed by the element name, e.g. "(2)H" for deuterium.
- Improvement:
include exact mass values for the isotopes (done) and update IsotopeDistribution (Andreas)
add exact isotope distribution based on exact isotope values (Andreas)