QCDensityGtr.hpp

Go to the documentation of this file.
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_DENSITY_GTR_H_
00021 #define QC_DENSITY_GTR_H_
00022 
00023 
00024 #include "QCMatElemGtr.hpp"
00025 
00026 
00027 class QCSubDomain;
00028 class QCMatrix;
00029 class QCSymMatrix;
00034 template <class TPMatrix>
00035 class QCDensityGtr :
00036   public QCMatElemGtr<TPMatrix>
00037 {
00038 
00040 public:
00041 
00045   QCDensityGtr (void);
00046   
00047 
00048 
00052   QCDensityGtr (int dimMatrix);
00053 
00054 
00055 
00059   virtual ~QCDensityGtr (void);
00060 
00061 
00062 
00063 //   /**
00064 //    * Method to initialize the elements of the density matrix.
00065 //    */  
00066 //   template <class TPManager>
00067 //   void   init (TPManager& manager, typename TPManager::TSystem::QCIterator& iter);
00072   template <class TPManager>
00073   void   initDiag (TPManager& manager, typename TPManager::TSystem::QCIterator& iter);
00074 //   /**
00075 //    * Method to initialize the elements of the density matrix by reading
00076 //    * a density matrix from file.
00077 //    */  
00078 //   template <class TPManager>
00079 //   void   initFromFile (TPManager& manager, typename TPManager::TSystem::QCIterator& iter);  
00080 //   /**
00081 //    *
00082 //    */
00083   template <class TPMatrix2>
00084   void computeElems (QCMemory&                QCRestrict memory,
00085                      const int                nbElecOfSystem,
00086                      QCMatElemGtr<TPMatrix2>& QCRestrict eigenVectC);
00087 
00088 
00092   template <class TPMatrix2>
00093   void computeElemsDC (QCMemory&                QCRestrict memory,
00094                        const int                nbFilledOM,
00095                        const int                nbOccupiedOM,
00096                        const int                nbAOCoreShell1,
00097                        const QCFloat *          QCRestrict orbitalOccupN,
00098                        QCMatElemGtr<TPMatrix2>& QCRestrict eigenVectCt);
00099 
00100 
00101 
00105   template <class TPParam>
00106   void mergeDensity (const TPParam * QCRestrict parameters,
00107                      QCSubDomain&    QCRestrict workingDomain,
00108                      QCSubDomain&    QCRestrict remoteDomain,
00109                      QCSymMatrix&    QCRestrict remWeightedDensity,
00110                      int                        remoteMapIdx,   
00111                      QCMatrix&       QCRestrict wDensityAB,
00112                      QCMatrix&       QCRestrict interPAB,
00113                      QCSymMatrix&    QCRestrict  wDensityAA);
00114 
00115 
00116 
00117 
00124   template <class TPMatrix2>
00125   inline void  swapMatrix (QCDensityGtr<TPMatrix2>& densityP);
00126 
00127 
00128   
00129 
00130 
00132 protected:
00133 
00134 
00136 private:
00137 
00138 
00139 
00142 public:
00143 protected:
00144 private:
00145 
00146 };
00147 
00148 
00149 
00150 
00157 template <class TPMatrix>
00158 template <class TPMatrix2>
00159 inline void             
00160 QCDensityGtr<TPMatrix>::swapMatrix (QCDensityGtr<TPMatrix2>& densityP) {
00161   this->matrix.swap(densityP.getMatrix());
00162 }
00163 
00164 
00165 
00166 
00167 
00168 #endif // QC_DENSITY_GTR_H_

Generated on Sat Jan 28 21:07:25 2006 for QC++ by  doxygen 1.4.4