RDKit
Open-source cheminformatics and machine learning.
atomic_data.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2008 Greg Landrum and Rational Discovery LLC
3 //
4 // @@ All Rights Reserved @@
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 
11 /*! \file atomic_data.h
12 
13  \brief No user-serviceable parts inside
14 
15  This stuff is used by the PeriodicTable interface
16 
17 */
18 #include <RDGeneral/export.h>
19 #ifndef __RD_ATOMIC_DATA_H
20 #define __RD_ATOMIC_DATA_H
21 
22 #include <RDGeneral/types.h>
23 #include <map>
24 
25 namespace RDKit {
26 RDKIT_GRAPHMOL_EXPORT extern const std::string periodicTableAtomData;
27 RDKIT_GRAPHMOL_EXPORT extern const std::string isotopesAtomData[];
28 RDKIT_GRAPHMOL_EXPORT extern const std::vector<std::string> elementNames;
29 namespace constants {
30 RDKIT_GRAPHMOL_EXPORT extern const double electronMass;
31 }
33  public:
34  atomicData(const std::string &dataLine);
35  ~atomicData() = default;
36 
37  int AtomicNum() const { return anum; }
38 
39  int DefaultValence() const { return valence.front(); }
40 
41  int NumValence() const { return static_cast<int>(valence.size()); }
42 
43  const INT_VECT &ValenceList() const { return valence; }
44 
45  double Mass() const { return mass; }
46 
47  std::string Symbol() const { return symb; }
48 
49  std::string Name() const { return name; }
50 
51  double Rcov() const { return rCov; }
52 
53  double Rb0() const { return rB0; }
54 
55  double Rvdw() const { return rVdw; }
56 
57  int NumOuterShellElec() const { return nVal; }
58 
59  int MostCommonIsotope() const { return commonIsotope; }
60 
61  double MostCommonIsotopeMass() const { return commonIsotopeMass; }
62 
63  // maps isotope number -> mass
64  std::map<unsigned int, std::pair<double, double>>
65  d_isotopeInfoMap; // available isotopes
66  private:
67  int anum; // atomic number
68  std::string symb; // atomic symbol
69  std::string name; // atomic name
70  double rCov, rB0, rVdw; // radii
71  INT_VECT valence; // list of all valences, the first one is the default
72  // valence, -1 at the end signifies that any upper valence
73  // is tolerated
74  double mass; // atomic mass
75  int nVal; // number of outer shell electrons
76  int commonIsotope; // most common isotope
77  double commonIsotopeMass; // most common isotope
78 };
79 }; // namespace RDKit
80 #endif
std::string Symbol() const
Definition: atomic_data.h:47
int AtomicNum() const
Definition: atomic_data.h:37
int NumOuterShellElec() const
Definition: atomic_data.h:57
double Rcov() const
Definition: atomic_data.h:51
std::string Name() const
Definition: atomic_data.h:49
std::map< unsigned int, std::pair< double, double > > d_isotopeInfoMap
Definition: atomic_data.h:65
double Rb0() const
Definition: atomic_data.h:53
atomicData(const std::string &dataLine)
int MostCommonIsotope() const
Definition: atomic_data.h:59
int NumValence() const
Definition: atomic_data.h:41
const INT_VECT & ValenceList() const
Definition: atomic_data.h:43
int DefaultValence() const
Definition: atomic_data.h:39
~atomicData()=default
double Mass() const
Definition: atomic_data.h:45
double MostCommonIsotopeMass() const
Definition: atomic_data.h:61
double Rvdw() const
Definition: atomic_data.h:55
#define RDKIT_GRAPHMOL_EXPORT
Definition: export.h:225
RDKIT_GRAPHMOL_EXPORT const double electronMass
Std stuff.
Definition: Abbreviations.h:19
std::vector< int > INT_VECT
Definition: types.h:278
RDKIT_GRAPHMOL_EXPORT const std::string isotopesAtomData[]
RDKIT_GRAPHMOL_EXPORT const std::vector< std::string > elementNames
RDKIT_GRAPHMOL_EXPORT const std::string periodicTableAtomData