QCRepInterElec.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_REPINTERELEC_H_
00021 #define QC_REPINTERELEC_H_
00022 
00023 
00024 #include "QCCommon.hpp"
00025 #include "QCMatElemGtr.hpp"
00026 #include "QCMatrix.hpp"
00027 #include "QCPoint.hpp"
00028 
00029 
00030 class QCIntgReader;
00031 class QCIntgWriter;
00032 class QCSystem;
00033 
00034 
00046 class QCRepInterElec : 
00047   public QCMatElemGtr<QCMatrix>
00048 {
00049 
00051 public:
00052   
00057   QCRepInterElec (const int& dim);
00058 
00059 
00063   virtual ~QCRepInterElec (void);
00064 
00065 
00066 
00070   QCIntgWriter * allocIntgWriter (void);
00071   QCIntgReader * allocIntgReader (void);
00072   
00073 
00074   
00075   
00079   const string&  getIntgTmpFile (void) const { return intgTmpFile; }
00080   QCIntgWriter * getIntgWriter (void)  const { return intgWriter; }
00081   QCIntgReader * getIntgReader (void)  const { return intgReader; }
00082   
00083   
00084   
00088   void setIntgTmpFile (const string& extFile) { intgTmpFile = extFile; }  
00089   
00090   
00091 
00092 
00097   template <class TPParam>
00098   void computeElems (const TPParam*   QCRestrict parameterA,
00099                      const TPParam*   QCRestrict parameterB,
00100                      const QCPoint3D& QCRestrict coordsA,
00101                      const QCPoint3D& QCRestrict coordsB,
00102                      QCFloat rAB,
00103                      bool  ssACalc,
00104                      bool  ssBCalc,
00105                      bool  compressedFormat = false,
00106                      const QCIntgAcquisitionMethod& intgAcquisitionMethod = QC_DIRECT_COMPUTATION,
00107                      bool  isItfirstCall = false);
00108 
00109 
00110 
00111 
00116   template <class TPParam>
00117   void  computeDerivatives (const TPParam*   QCRestrict parameterA,
00118                             const TPParam*   QCRestrict parameterB, 
00119                             QCRepInterElec&  QCRestrict workingIntg,
00120                             QCDerivationType derivationType,
00121                             const QCPoint3D& coordsA,
00122                             const QCPoint3D& coordsB,
00123                             const QCPoint3D& shift,
00124                             bool  ssACalc = false,
00125                             bool  ssBCalc = false,
00126                             const QCFloat&   QCRestrict inv2DeltaQ = QC_ZERO
00127 #ifdef TRACE_COMPUTE_DERIVATIVES
00128                             ,
00129                             QCChrono *       intgChr1Ptr = NULL,
00130                             QCChrono *       intgChr2Ptr = NULL, 
00131                             QCChrono *       intgChr3Ptr = NULL
00132 #endif // TRACE_COMPUTE_DERIVATIVES
00133                             );
00134 
00135 
00136 
00137 
00145   void expandOverDim16 (const int& nbAOofA, const int& nbAOofB);
00146 
00147 
00148 
00149 
00150 
00152 protected:
00153 
00154 
00156 private:
00157 
00158  
00159 
00162 public:
00163 protected:
00164 private:
00165 
00172   QCIntgWriter * intgWriter;
00173   
00178   QCIntgReader * intgReader;
00179   
00183   string         intgTmpFile;
00184 
00185 };
00186 
00187 #endif // QC_REPINTERELEC_H_

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