4 #ifndef INDIGOX_CLASSES_PERIODIC_TABLE_HPP 5 #define INDIGOX_CLASSES_PERIODIC_TABLE_HPP 7 #include "../utils/common.hpp" 8 #include "../utils/fwd_declares.hpp" 10 #include <EASTL/vector_map.h> 57 Element(uint8_t Z, std::string name, std::string sym,
double mass,
58 uint8_t grp, uint8_t prd, uint8_t val, uint8_t oct, uint8_t hyp,
59 double rad,
double cov,
double vdw,
double chi);
121 bool operator==(
const std::string &name)
const;
124 bool operator!=(
const std::string &name)
const;
133 std::shared_ptr<ElementImpl> m_elemdat;
138 #define INDIGOX_NUMBER_ELEMENTS 119 200 void GeneratePeriodicTable();
204 std::array<Element, INDIGOX_NUMBER_ELEMENTS> _elems;
206 eastl::vector_map<std::string, size_t> _name_to_idx;
214 std::ostream &
operator<<(std::ostream &os,
const PeriodicTable &pt);
bool operator<=(const Element &element) const
double GetCovalentRadius() const
Get covalent radius.
bool operator!=(int32_t Z) const
double GetAtomicMass() const
Get atomic mass.
Element operator[](const int32_t z) const
Get the element with the given atomic number.
Definition: periodictable.hpp:173
friend struct indigox::test::TestElement
Friendship allows testing.
Definition: periodictable.hpp:33
double GetElectronegativity() const
Get electronegativity.
Element GetElement(const int32_t z) const
Get the element with the given atomic number.
int32_t GetOctet() const
Get full outer shell octet.
const PeriodicTable & GetPeriodicTable()
Element operator[](const std::string name) const
Get the element with the given name or symbol.
Definition: periodictable.hpp:179
std::string GetSymbol() const
Get element symbol.
double GetAtomicRadius() const
Get atomic radius.
Namespace for all graph related functionality.
Definition: access.hpp:7
Element & operator=(const Element &)
Element GetUndefined() const
Get the element for use when an element is not defined.
Definition: periodictable.hpp:187
std::string GetName() const
Get element name.
size_t NumElements() const
Number of elements in the PeriodicTable.
Definition: periodictable.hpp:191
bool operator>(const Element &element) const
int32_t GetValenceElectronCount() const
Get number of valence electrons.
Read only class for storing elemental information.
Definition: periodictable.hpp:28
int32_t GetHypervalentOctet() const
Get full outer shell octet whne allowing for hypervalency.
bool operator>=(const Element &element) const
int32_t GetAtomicNumber() const
Get atomic number.
std::ostream & operator<<(std::ostream &os, const Dihedral &dhd)
int32_t GetGroup() const
Get element group number.
bool operator==(int32_t Z) const
friend struct indigox::test::TestPeriodicTable
Friendship allws for testing implementation.
Definition: periodictable.hpp:150
bool operator<(const Element &element) const
double GetVanDerWaalsRadius() const
Get van der Waals radius.
Singleton class for storing and access elemental information.
Definition: periodictable.hpp:145
friend const PeriodicTable & GetPeriodicTable()
Friendship allows for access to a single PeriodicTable instance.
int32_t GetPeriod() const
Get element period.