QCModelMatrices.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_MODEL_MATRICES_H_
00021 #define QC_MODEL_MATRICES_H_
00022 
00023 
00024 #include "QCMatElemGtr.hpp"
00025 #include "QCOverlapGtr.hpp"
00026 #include "QCHamiltonGtr.hpp"
00027 #include "QCFockGtr.hpp"
00028 #include "QCDensityGtr.hpp"
00029 #include "QCRepInterElec.hpp"
00030 #include "QCSymMatrix.hpp"
00031 
00032 
00033 
00039 class QCModelMatrices
00040 {
00041 
00043 public:
00044 
00045   
00049   QCOverlapGtr<QCSymMatrix> * getOverlapS (void) { return overlapS; }
00050   QCHamiltonGtr<QCSymMatrix>& getHamiltonH (void) { return hamiltonH; }
00051   QCDensityGtr<QCSymMatrix>&  getDensityP (void) { return densityP; }
00052   QCDensityGtr<QCSymMatrix> * getWeightedDensityP (void) { return weightedDensityP; }
00053   QCFockGtr<QCSymMatrix>&     getFockF (void) { return fockF; }
00054   QCMatElemGtr<QCMatrix>&     getEigenVectCt (void) { return eigenVectCt; }
00055   QCFloat *&                  getEigenVal (void) { return eigenVal; }
00056   QCFloat                     getEigenVal (int idx) const { return eigenVal[idx]; }
00057   int *&                      getDegener (void) { return degener; }
00058   QCRepInterElec&             getRepInterElecIntegrals (void) { return *repInterElecIntegrals; }
00059   QCDensityGtr<QCSymMatrix>&  getDensityPnm1 (void) { return densityPnm1; }
00060   QCDensityGtr<QCSymMatrix> * getDensityPTild (void) { return densityPTild; }
00061   QCFockGtr<QCSymMatrix>    * getFockFTild (void) { return fockFTild; }
00062   QCOverlapGtr<QCSymMatrix> * getDOverlapSOnDr (void) { return dOverlapSOnDr; }
00063   QCRepInterElec            * getDRepInterElecIntegrals (void) { return dRepInterElecIntgOnDCoord; }
00064 
00065 
00066   
00070   template <class TPManager>
00071   void allocateMatrices (TPManager& manager, int nbAtomicOrbitals);
00072   
00077   template <class TPManager>
00078   void buildMatrices (TPManager& manager, typename TPManager::TSystem::QCIterator& workingSystem);
00079 
00083   template <class TPManager>
00084   void prepareIterations (TPManager& manager);
00085 
00087 protected:
00088 
00092   QCModelMatrices (void);
00093 
00097   virtual ~QCModelMatrices (void);
00098   
00102   QCModelMatrices& asBase (void) { return *this; }
00103 
00105 private:
00106 
00109 public:
00110 protected:
00111   
00118   QCOverlapGtr<QCSymMatrix> *overlapS;
00119 
00123   QCHamiltonGtr<QCSymMatrix> hamiltonH;
00124 
00128   QCDensityGtr<QCSymMatrix> densityP;
00129 
00133   QCDensityGtr<QCSymMatrix> densityPnm1;
00134 
00139   QCFockGtr<QCSymMatrix> fockF;
00140 
00145   QCFockGtr<QCSymMatrix> * fockFTild;
00146   
00151   QCDensityGtr<QCSymMatrix> * densityPTild;
00152 
00157   QCMatElemGtr<QCMatrix> eigenVectCt;
00158 
00162   QCFloat * eigenVal;
00163 
00167   int * degener;
00168 
00174   QCDensityGtr<QCSymMatrix> * weightedDensityP;
00175 
00179   QCDensityGtr<QCSymMatrix> * squareDensityP;
00180 
00184   QCDensityGtr<QCSymMatrix> * threeIdMDensityP;
00185 
00194   QCRepInterElec * repInterElecIntegrals;
00195 
00201   QCRepInterElec * dRepInterElecIntgOnDCoord;
00202   
00206   QCOverlapGtr<QCSymMatrix> * dOverlapSOnDr;
00207 
00208 private:
00209 
00210 };
00211 
00212 #endif // QC_MODEL_MATRICES_H_

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