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

harpavec.h

Go to the documentation of this file.
00001 
00008 #ifndef HARPAVEC_H
00009 #define HARPAVEC_H
00010 
00011 enum OPER_TYPE {REAL_OPER,IMAG_OPER};
00012 
00013 #include "halocorb.h"
00014 #include "haatgroup.h"
00015 #include "hamatdb.h"
00016 
00017 class HaRPAvec
00019 {
00020 public:
00021         HaRPAvec();
00022         HaRPAvec(HaQCMod & qc_mod);
00023         HaRPAvec(const HaLocExcit & excit,HaQCMod & qc_mod);
00024         virtual ~HaRPAvec();
00025 
00026         int GetNBfunc() const;
00027         
00028         bool Print_info(ostream &sout, const int level) const;
00029 
00030     int GetNumOccMO() const; // the number occupied MOs
00031         int GetNumVacMO() const; // the number of vacant MOs
00032                                  // used to define the excitation array 
00033 
00034     int SetFromLocExcit(const HaLocExcit & excit);
00035     // set RPA vector expanding local excitation
00036 
00037         int SetFromAOMat(const HaMat_double & aomat,
00038                              const OPER_TYPE optyp=REAL_OPER );
00039         // set RPA vector from AO density assumed premultiplied on bith sides by S^-1
00040 
00041         int SetFromLOGrpMat(const HaString& gid1,const HaString& gid2, 
00042                                     const HaMat_double & fmloc,
00043                                                         const OPER_TYPE optyp=REAL_OPER);
00044         // set RPA vector from the submatrix of operator matrix fmat 
00045         // (premultiplied by S^-1) on active local orbitals of groups ig1 and ig2
00046 
00047         friend double
00048                    SProd(const HaRPAvec & left, const HaRPAvec & right); 
00049         // Calculate scalar product between two RPA vector
00050         
00051         friend HaMat_double
00052                    SProd(const vector<HaRPAvec> & left, const vector<HaRPAvec> & right); 
00053 
00054         friend HaVec_double
00055                    SProd(const HaRPAvec & RPAv, const vector<HaRPAvec> & RPAv_arr); 
00056 
00057         // Calculate scalar product between arrays of RPA vectors 
00058         
00059         friend double dot2(const HaRPAvec & left, const HaRPAvec & right);
00060 
00061         friend HaVec_double
00062                    dot2(const vector<HaRPAvec> & left, const vector<HaRPAvec> & right);
00063 
00064         friend double norm2(const HaRPAvec & RPAv);
00065         friend HaVec_double norm2(const vector<HaRPAvec> & RPAv_arr);
00066 
00067         friend class HaRPAHam;
00068         friend class HaRPAResolv;
00069 
00070         // multiply by a const:
00071         friend HaRPAvec 
00072         operator*(const double factor, const HaRPAvec & RPAv); 
00073 
00074         friend vector<HaRPAvec> 
00075         operator*(const HaVec_double & vfactor, const vector<HaRPAvec> & RPAv_arr); 
00076 
00077 
00078         friend HaRPAvec
00079         operator+(HaRPAvec & left, HaRPAvec & right); 
00080 
00081         friend vector<HaRPAvec>
00082         operator+(vector<HaRPAvec> & left, vector<HaRPAvec> & right); 
00083 
00084         friend vector<HaRPAvec> 
00085         operator-(vector<HaRPAvec> & left, vector<HaRPAvec> & right); 
00086 
00087         HaRPAvec &
00088         operator+=(HaRPAvec & rpav);
00089 
00090         friend vector<HaRPAvec> &
00091         operator+=(vector<HaRPAvec> & left,  vector<HaRPAvec> & right);
00092 
00093         HaRPAvec &
00094         operator-=(HaRPAvec & rpav);
00095 
00096         friend vector<HaRPAvec> &
00097         operator-=(vector<HaRPAvec> & left, vector<HaRPAvec> & right);
00098 
00099         HaQCMod* GetpHost();
00100 
00101         const bool Get_AO_dens(HaMat_double & dens, const int imat);
00102         
00103         HaMat_double Z_mat; 
00104         HaMat_double Y_mat; // 
00105                              
00106         HaGrpOperID id;
00107 
00108 protected:
00109         
00110         HaQCMod* phost; 
00111 
00112 };
00113 
00114 
00115 
00116 
00117 #endif /* !HALOCEXCIT_H */

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