libelemental 2.0.2
Elemental Namespace Reference

A periodic table library with detailed information on elements. More...

Classes

struct  color
class  EntriesView
 An interface for the display of value entries. More...
class  EntriesStream
 An adapter for the display of value entries on an output stream. More...
class  value_base
 A base class for qualified values. More...
class  color_value_base
 A base class for qualified values which have representative colors. More...
class  Value
 A qualified value of a generic type. More...
class  ValueList
 A qualified list of values of a generic type. More...
class  Message
class  Event
class  Series
 A qualified value representing a chemical series. More...
class  Block
 A qualified value representing a periodic table block. More...
class  Phase
 A qualified value representing a phase of matter. More...
class  LatticeType
 A qualified value representing a Bravais lattice type. More...
class  ColorValue
class  PropertyBase
 A property of the chemical elements. More...
class  Property
 A typed property of the chemical elements. More...
class  Property< Float >
 A floating-point property of the chemical elements. More...
class  Category
 A category of properties of the chemical elements. More...
class  Element

Typedefs

typedef unsigned int AtomicNumber
 An atomic number.
typedef Value< double > Float
 A qualified floating-point value.
typedef Value< long > Int
 A qualified integer value.
typedef Value< ustring > String
 A qualified UTF-8 string value that does not require translation.
typedef ValueList< double > FloatList
 A qualified list of floating-point values.
typedef ValueList< long > IntList
 A qualified list of integer values.
typedef Property< Float > FloatProperty
 A floating-point property of the chemical elements.
typedef std::vector< const Element * > Table
 The periodic table of elements.

Enumerations

enum  Qualifier {
  Q_NEUTRAL ,
  Q_UNK ,
  Q_NA ,
  Q_EST ,
  Q_CA ,
  Q_ISO
}
 A qualification of the meaning of a value. More...

Functions

void initialize () throw ()
 Initializes libelemental.
const Table & get_table () throw ()
const Element & get_element (AtomicNumber number)
 Returns the element with a given atomic number.
const Element & get_element (const std::string &which)
 Returns the element with a given symbol or atomic number.

Variables

const double STANDARD_TEMPERATURE
 The standard temperature, in Kelvin, as defined by IUPAC.
std::list< Category * > CATEGORIES
 The categories of available properties of the chemical elements.
General Properties
Category C_GENERAL
Property< Message > P_NAME
Property< String > P_OFFICIAL_NAME
Property< String > P_ALTERNATE_NAME
Property< std::string > P_SYMBOL
Property< AtomicNumber > P_NUMBER
Property< Series > P_SERIES
Property< Int > P_GROUP
Property< Int > P_PERIOD
Property< Block > P_BLOCK
Historical Properties
Category C_HISTORICAL
Property< Event > P_DISCOVERY
Property< Message > P_DISCOVERED_BY
Property< Message > P_ETYMOLOGY
Physical Properties
Category C_PHYSICAL
Property< Phase > P_PHASE
Property< Float > P_DENSITY_SOLID
Property< Float > P_DENSITY_LIQUID
Property< Float > P_DENSITY_GAS
Property< Message > P_APPEARANCE
Thermal Properties
Category C_THERMAL
Property< Float > P_MELTING_POINT
Property< Float > P_BOILING_POINT
Property< Float > P_FUSION_HEAT
Property< Float > P_VAPORIZATION_HEAT
Property< Float > P_SPECIFIC_HEAT
Property< Float > P_THERMAL_CONDUCTIVITY
Property< Float > P_DEBYE_TEMPERATURE
Atomic Properties
Category C_ATOMIC
Property< Float > P_ATOMIC_MASS
Property< Float > P_ATOMIC_VOLUME
Property< Float > P_ATOMIC_RADIUS
Property< Float > P_COVALENT_RADIUS
Property< Float > P_VAN_DER_WAALS_RADIUS
Property< String > P_IONIC_RADII
Crystallographic Properties
Category C_CRYSTALLOGRAPHIC
Property< LatticeType > P_LATTICE_TYPE
Property< Int > P_SPACE_GROUP
Property< FloatList > P_LATTICE_EDGES
Property< FloatList > P_LATTICE_ANGLES
Property< Float > P_LATTICE_VOLUME
Electronic Properties
Category C_ELECTRONIC
Property< String > P_CONFIGURATION
Property< IntList > P_OXIDATION_STATES
Property< Float > P_ELECTRONEGATIVITY
Property< Float > P_ELECTRON_AFFINITY
Property< Float > P_FIRST_ENERGY
Miscellaneous Properties
Category C_MISCELLANEOUS
Property< ColorValue > P_COLOR
Property< Message > P_NOTES

Detailed Description

A periodic table library with detailed information on elements.

Enumeration Type Documentation

◆ Qualifier

A qualification of the meaning of a value.

Enumerator
Q_NEUTRAL 

Indicates a presumably valid value.

Q_UNK 

Indicates that a value is unknown or unavailable.

Q_NA 

Indicates that a value is not applicable for an element.

Q_EST 

Indicates that a value is estimated or calculated.

Q_CA 

Indicates that a value is approximate.

Q_ISO 

Indicates a value for the most stable isotope of an element.

Function Documentation

◆ get_element() [1/2]

const Element & Elemental::get_element ( AtomicNumber number)

Returns the element with a given atomic number.

Parameters
numberThe atomic number of an element.
Returns
A reference to the corresponding element.
Exceptions
std::out_of_rangeif the atomic number is invalid.

References get_element().

Referenced by get_element(), and get_element().

◆ get_element() [2/2]

const Element & Elemental::get_element ( const std::string & which)

Returns the element with a given symbol or atomic number.

Parameters
whichThe standard symbol of an element, or the string representation of the atomic number of an element.
Returns
A reference to the corresponding element.
Exceptions
std::invalid_argumentif the symbol or number is invalid.

References get_element().

◆ get_table()

const Table & Elemental::get_table ( )
throw ( )

Returns the periodic table of elements. The table is a singleton.

References get_table().

Referenced by get_table().

◆ initialize()

void Elemental::initialize ( )
throw ( )

Initializes libelemental.

This function may be called more than once. This function, or one of the get_table() or get_element() functions, which call it, should be called before any other features in the library are used.

Referenced by Elemental::Property< Float >::is_colorable().