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

hamultipole.h

Go to the documentation of this file.
00001 
00011 #ifndef HAMULTIPOLE_H
00012 #define HAMULTIPOLE_H
00013 
00014 #include "halinalg.h"
00015 #include "hastl.h"
00016 #include "halocorb.h"
00017 
00018 class HaQCMod;
00019  
00020 
00021 class HaOperT
00023 {
00024 public:
00025     HaOperT();
00026         ~HaOperT();
00027 
00028         int FillMat(GauBasisSet* pbset,HaMat_double& t_mat); 
00029 
00030 };
00031 
00032 class HaOperV
00034 {
00035 public:
00036         HaOperV();
00037     ~HaOperV();
00038 
00039         int FillMat(GauBasisSet* pbset,HaMat_double& t_mat);
00040 };
00041 
00042 
00043 class HaOper1e 
00045 {
00046 public:
00047         HaOper1e();
00048         HaOper1e(HaQCMod & qc_mod);
00049 
00050         virtual ~HaOper1e();
00051 
00052         virtual bool Recalc();
00053         virtual bool FillMat(HaMat_double & fmat, const int ic=1) const; 
00054         virtual bool FillMatActv(HaMat_double & fmat, const int ic=1) const; 
00055     virtual bool FillMatActvSM1(HaMat_double & fmat, const int ic=1) const; 
00056                        // fill fmat with Matrix of operator component on active orbitals
00057                        // premultiplied by S^-1 of the basis of active orbitals
00058     virtual bool PreMult_SM1();  // premultiply interaction matricies by S^-1 on both sides
00059         virtual bool Print_info(ostream & sout,const int level) const; 
00060         virtual bool SetCurrComp(const int icomp); 
00061         virtual bool SetFromMat(const HaMat_double & fmat, const int ic);
00062         virtual bool SetNumComp(const int NumComp);
00063         virtual operator HaMat_double();    
00064 
00065         virtual void SetDebugLevel(int new_debug_level);
00066 
00067 protected:
00068         HaQCMod* ptr_qc_mod;
00069         vector<HaMat_double> data; 
00070         int icomp; 
00071 
00072         int debug_level;
00073 };
00074 
00075 
00076 class HaOperR : public HaOper1e
00078 {
00079 public:
00080   
00081   HaOperR(HaQCMod & qc_mod);
00082   virtual ~HaOperR(void);
00083 
00084   virtual bool Recalc();
00085 
00086   bool Print_info(ostream & sout,const int level) const; 
00087 
00088   protected:
00089         
00090 };
00091 
00092 class HaOperRDelt : public HaOper1e
00094 {
00095 public:
00096   
00097   HaOperRDelt(HaQCMod & qc_mod);
00098   virtual ~HaOperRDelt(void);
00099 
00100   virtual bool Recalc();
00101   virtual bool Print_info(ostream & sout,const int level) const;
00102   
00103   bool RecalcFromHr(); 
00104   bool RecalcFromHr2(); 
00105   bool RecalcLondon(); 
00106   bool LondonDaltonCalc(); 
00107 
00108  
00109   void SetLondonAO(){ i_lond=1; }
00110 protected:
00111   int i_lond;
00112                  
00113 };
00114 
00115 
00116 class HaOperGrad : public HaOper1e
00118 {
00119 public:
00120   HaOperGrad(HaQCMod & qc_mod);
00121   virtual ~HaOperGrad(void);
00122 
00123   virtual bool Recalc(); 
00124   virtual bool Print_info(ostream & sout,const int level) const; 
00125 
00126  protected:
00127                  
00128 };
00129 
00130 class HaOperKinEner : public HaOper1e
00132 {
00133 public:
00134         HaOperKinEner(HaQCMod & qc_mod);
00135         virtual ~HaOperKinEner();
00136         
00137         virtual bool Recalc();
00138         virtual bool Print_info(ostream & sout,const int level=1) const; 
00139 
00140 protected:
00141 
00142 };
00143 
00144 
00145 
00146 #endif /* !HAMULTIPOLE_H */

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