Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

haintengine.h

00001 //  haintengine.h
00002 //
00003 //  Classes to calculate elemenatal integrals on basis function in HARLEM
00004 //  and make summations over densities 
00005 //
00006 //
00007 //  Igor Kurnikov , University of Pittsburgh 
00008 //
00009 //  Revisions: April 15 1998
00010 //
00011 
00012 #ifndef HAINTENGINE_H
00013 #define HAINTENGINE_H
00014 
00015 #include "halinalg.h"
00016 
00017 class HaQCMod;
00018 
00019 
00020 enum TwoElComb{REG=0,RAFF1=11,RAFF2=12,RAFF3=13}; 
00021 // type of 2-e combinations 
00022 // REG - regular 2-e integrals (ia|jb) in MO or (ks|lt) AO notation
00023 // RAFF1 - Raffenetti 1 combination: 
00024 //      in MO notation: (A(1)-B)_ia,jb  4(ia|jb) - [(ij|ab) + (ib|ja)]     
00025 //      in AO notation: (A(1)-B)'_ks,lt  4(ks|lt) - [(kl|st) + (kt|sl)]
00026 //
00027 //
00028 // 
00029 
00030 class HaIntEngine
00031 //
00032 // Class to generate 12 and 2-e integrals on basis functions
00033 //
00034 {
00035 public:
00036 
00037         HaIntEngine();
00038         HaIntEngine(const HaQCMod & host);
00039         virtual ~HaIntEngine();
00040         
00041 
00042         int Gen2eInt(HaMat_double & R1, HaMat_double & R2, HaMat_double & R3,
00043                 const TwoElComb &Type2e) const; // load 2e integrals
00044 
00045         static int IntCanonToSq(double *pcan, HaMat_double & SqInt, int N);
00046         // convert 2e integral from canonic linear form to square (ij|kl) form
00047 
00048 protected:
00049         int LoadGauCom() const;
00050         const HaQCMod* ptr_qc_mod;
00051 
00052 
00053 };
00054 
00055 
00056 
00057 
00058 
00059 
00060 #endif /* !HAINTENGINE_H */

Generated on Tue Feb 17 02:03:04 2004 for harlem by doxygen 1.3.6