MTK++ Latest version: 0.2.0

element.h
Go to the documentation of this file.
00001 
00033 #ifndef ELEMENT_h
00034 #define ELEMENT_h
00035 
00036 #include <iostream>
00037 #include <string>
00038 #include <map>
00039 #include <vector>
00040 #include <algorithm>
00041 
00042 #include "Utils/constants.h"
00043 
00044 namespace MTKpp
00045 {
00046 
00047 // ============================================================
00048 // Struct : element
00049 // ------------------------------------------------------------
00054 // ============================================================
00055 struct element
00056 {
00058     int number;
00059 
00061     std::string symbol;
00062 
00064     std::string name;
00065 
00067     double mass;
00068 
00070     int group;
00071 
00073     int period;
00074 
00076     double red;
00077 
00079     double green;
00080 
00082     double blue;
00083 
00085     int valence;
00086 
00088     int filledShell;
00089 
00091     double covalentRadius;
00092 
00094     double vdWRadius;
00095 
00097     double paulingEN;
00098 
00100     std::vector<std::string> seHams;
00101 };
00102 
00103 // ============================================================
00104 // Class : elements()
00105 // ------------------------------------------------------------
00113 // ============================================================
00114 class elements
00115 {
00116 public:
00118     elements();
00119 
00121     virtual ~elements();
00122 
00127     element* addElement();
00128 
00133     void     setElementName(const std::string s);
00134 
00140     element* getElement(const std::string s);
00141 
00147     int getElementNumber(const std::string s);
00148 
00154     std::string getElementName(const std::string s);
00155 
00161     double getElementMass(const std::string s);
00162 
00169     bool hasSEHamiltonian(const std::string e, const std::string h);
00170 
00171 protected:
00173     std::map<std::string, element*> itsElementMap;
00174 
00176     typedef std::map<std::string, element*>::iterator ElementMapIterator;
00177 
00179     element* pElement;
00180 
00182     typedef std::vector<std::string>::iterator strIterator;
00183 };
00184 
00185 } // MTKpp namespace
00186 
00187 #endif // ELEMENT_H

Generated on Fri Dec 23 2011 09:28:50 for MTK++ by Doxygen 1.7.5.1