00001 //*****************************************************************************// 00002 // // 00003 // Copyright (c) 2001 // 00004 // INRIA // 00005 // 54600 VILLERS LES NANCY // 00006 // France // 00007 // // 00008 //*****************************************************************************// 00009 // // 00010 // *** NOTICE OF PROPRIETARY INFORMATION *** // 00011 // // 00012 // The information contained in this file is considered proprietary and the // 00013 // exclusive property of INRIA. This information may not be disclosed, // 00014 // duplicated or used, in whole or in part, for any purpose whatsoever // 00015 // without express written authorization from INRIA // 00016 // // 00017 //*****************************************************************************// 00018 00019 00020 #ifndef QC_PARAMETER_H_ 00021 #define QC_PARAMETER_H_ 00022 00023 00024 00025 #include <string> 00026 #include <iostream> 00027 00028 #include "QCCommon.hpp" 00029 #include "QCReader.hpp" 00030 00031 00037 class QCParameter 00038 { 00039 00040 friend ostream& operator << (ostream& out, const QCParameter& param); 00041 00043 public: 00044 00048 int getIdentifier (void) const { return identifier; }; 00049 int getNbAO (void) const { return nbAO; }; 00050 int getQuantumNumberN (void) const { return quantumNumberN; }; 00051 int getAtomicNbZ (void) const { return atomicNbZ; }; 00052 int getCoreCharge (void) const { return coreCharge; }; 00053 int getNbValenceElec (void) const { return coreCharge; }; 00054 00055 00056 00058 protected: 00059 00063 QCParameter (void); 00064 00065 00069 virtual ~QCParameter (void) {}; 00070 00071 00075 QCFloat getMass (void) const { return mass; }; 00076 00077 00081 void readSetOfParameters (QCReader *reader); 00082 00083 00087 const QCParameter& asBase(void) const { return *this; }; 00088 00089 00091 private: 00092 00093 00094 00096 public: 00097 protected: 00098 00102 int identifier; 00106 int atomicNbZ; 00110 int coreCharge; 00114 int nbAO; 00118 QCFloat mass; 00122 int quantumNumberN; 00123 00124 00125 private: 00126 00130 static const string IDENTIFIER; 00131 static const string MASS; 00132 static const string ATOMIC_NUMBER; 00133 static const string CORE_NUCLEAR_CHARGE; 00134 static const string NB_VALENCE_ATOMIC_ORBITALS; 00135 static const string PRINCIPAL_QUANTUM_NUMBER; 00136 00137 00138 }; 00139 00140 00141 00145 extern ostream& 00146 operator << (ostream& out, const QCParameter& param); 00147 00148 00149 00150 #endif // QC_PARAMETER_H_