00001
00009 #ifndef HARPAHAM_H
00010 #define HARPAHAM_H
00011
00012 #include "harpavec.h"
00013
00014
00015 class HaRPAHam
00017 {
00018 public:
00019 HaRPAHam();
00020 virtual ~HaRPAHam();
00021
00022 bool SetOpMode(int imode);
00023 bool SetEnergy(const double NewEne);
00024
00025 bool LoadGauCom(const HaQCMod & qc_mod) const;
00026
00027
00028 bool Apply(vector<HaRPAvec> & RPAvec);
00029
00030
00031 bool Apply_init(vector<HaRPAvec> & RPAvec) const;
00032
00033
00034
00035 vector<HaRPAvec>
00036 operator *(const vector<HaRPAvec> & RPAvec);
00037
00038 protected:
00039 double Ene;
00040 enum OperMode {FULL=0,MO_DIAG=1,E_MIN_H=2,E_MIN_H0=3} opmode;
00041 };
00042
00043
00044 class HaRPAResolv
00046 {
00047 public:
00048 HaRPAResolv();
00049 virtual ~HaRPAResolv();
00050
00051
00052 bool SetOpMode(const int imode);
00053
00054 bool SetEnergy(const double NewEne);
00055
00056 bool SetImag(const bool new_imag);
00057
00058
00059 bool Apply_Init(vector<HaRPAvec> & RPAvec) const;
00060
00061
00062 bool Apply(vector<HaRPAvec> & RPAvec) const;
00063
00064
00065 vector<HaRPAvec> solve(const vector<HaRPAvec> & CISvec) const;
00066
00067
00068 protected:
00069 bool imag;
00070 double Ene;
00071 enum OperMode {FULL=0, MO_DIAG} opmode;
00074 };
00075
00076
00077
00078 #endif