00001 /*************************************************************************** 00002 basisset.h - description 00003 ------------------- 00004 begin : Mon Jun 30 2003 00005 copyright : (C) 2003-2006 by Ben Swerts 00006 email : bswerts@users.sourceforge.net 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00020 00021 #ifndef BASISSET_H 00022 #define BASISSET_H 00023 00025 00026 // C++ header files 00027 #include <vector> 00028 00029 // Qt header files 00030 #include <qmap.h> // forward class declaration doesn't work 00031 00032 // Qt forward class declarations 00033 class QString; 00034 class QStringList; 00035 00037 class Basisset 00038 { 00039 public: 00041 static unsigned int basisToNum(const QString& basis); // returns the index to the given basis set 00042 static QString numToBasis(const unsigned int basis); // returns the basis set corresponding to the given index 00043 static QString numToBasisDir(const unsigned int basis); // returns the subdirectory corresponding to the given index 00044 static QString extension(); // returns the extension used for the basisset files 00045 static unsigned int maxBasissets(); // returns the number of basissets available 00046 static unsigned int contractedFunctions(const unsigned int basis, const unsigned int atom); // returns the number of contracted gaussian functions for a specific basisset and atom type 00047 00048 private: 00050 Basisset(); // constructor 00051 ~Basisset(); // destructor 00052 00054 static void initBasissets(); // initializes the static class variables class 00055 static bool isInitialized; // is set to true when initBasissets() has been called 00056 00058 static QStringList numToBas; // Holds conversion data. 00059 static QStringList numToDir; // Holds conversion data. 00060 static QMap<QString, unsigned int> basToNum; // Holds conversion data. 00061 static unsigned int numBasissets; // Holds the number of basissets available. 00062 static std::vector< std::vector<unsigned int> > ncf; // Holds the number of contracted functions for each basis set and row in the periodic table. 00063 }; 00064 #endif 00065