QCOverlapGtr.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_OVERLAP_GTR_H_
00021 #define QC_OVERLAP_GTR_H_
00022 
00023 
00024 #include "QCMatrix.hpp"
00025 #include "QCMatElemGtr.hpp"
00026 #include "QCCommon.hpp"
00027 #include "QCPoint.hpp"
00028 #include "QCFortran.hpp"
00029 #include "QCMndoParam.hpp"
00030 
00031 
00032 
00038 template <class TPMatrix>
00039 class QCOverlapGtr : public QCMatElemGtr<TPMatrix>
00040 {
00041 
00043 public:
00044 
00045 
00049   QCOverlapGtr (void);
00050 
00051 
00052 
00056   QCOverlapGtr (const int& dim);
00057 
00058 
00059 
00063   virtual ~QCOverlapGtr (void);
00064 
00065 
00066 
00070   template <class TPManager>
00071   static void FillExpHalfVector (TPManager& manager);
00072   
00073   
00074 
00078   static void DestroyExpHalfVector (void);
00079 
00080 
00081 
00085   template <class TPManager>
00086   void  computeElems (TPManager&       manager,
00087                       typename TPManager::TSystem::QCIterator& workingSystem,
00088                       const QCPoint3D& shift = QC_ORIGIN3D);
00089 
00090 
00091   
00095   template <class TPParam>
00096   void  computeElems (const TPParam *  QCRestrict parameters,
00097                       const QCSystem&  QCRestrict system,
00098                       QCMatrix&        QCRestrict overlapSAB,
00099                       int              nbMaxOrbTypes,
00100                       const QCPoint3D& QCRestrict shift = QC_ORIGIN3D);
00101 
00102 
00103   
00104   
00108   template <class TPManager>
00109   void  computeDerivatives (TPManager&       managerInst,
00110                             typename TPManager::TSystem::QCIterator& workingSystem,
00111                             const QCPoint3D& shift,
00112                             const QCFloat&   QCRestrict inv2DeltaQ = QC_ZERO);
00113 
00114 
00115 
00116 
00117   
00121   template <class TPParam>
00122   void  computeElemsAux (const QCPoint3D& QCRestrict coordsA,
00123                          const TPParam&   QCRestrict paramA,
00124                          int              expHalfIndexA,
00125                          const QCPoint3D& QCRestrict coordsB,
00126                          const TPParam&   QCRestrict paramB,
00127                          int              expHalfIndexB,
00128                          QCMatrix&        QCRestrict overlapSAB,
00129                          const QCPoint3D& shift = QC_ORIGIN3D);
00130 
00131 
00132 
00133 
00135 protected:
00136 
00137 
00139 private:
00140 
00145   template <class TPParam>
00146   static void FillQuantNumNVector (const TPParam *QCRestrict params,
00147                                    const int& nbParameter,
00148                                    int* QCRestrict quantNumNVectors);
00149   
00150   
00155   template <class TPParam>
00156   static void FillDzetaVector (const TPParam *QCRestrict params,
00157                                const int& nbParameters,
00158                                const int& nbMaxOrbTypes,
00159                                QCFloat* QCRestrict dzetaVector);
00160 
00161 
00164 public:
00165 protected:
00166 private:
00167 
00173   static QCFloat *ExpHalfVector;
00174 
00175 };
00176 
00177 
00178 
00179 
00180 #endif // QC_OVERLAP_GTR_H_

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