00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _chemistry_qc_mbptr12_r12amps_h
00029 #define _chemistry_qc_mbptr12_r12amps_h
00030
00031 #ifdef __GNUC__
00032 #pragma interface
00033 #endif
00034
00035 #include <stdexcept>
00036 #include <math/scmat/matrix.h>
00037 #include <chemistry/qc/mbptr12/spin.h>
00038
00039 namespace sc {
00040
00041 class R12IntEval;
00042
00050 class F12Amplitudes : public RefCount {
00051 public:
00052 F12Amplitudes(const Ref<R12IntEval>& r12eval);
00053 ~F12Amplitudes();
00054
00055 const RefSCMatrix& T2(SpinCase2 S);
00056 const RefSCMatrix& Fvv(SpinCase2 S);
00057 const RefSCMatrix& Foo(SpinCase2 S);
00058 const RefSCMatrix& Fov(SpinCase2 S);
00059 const RefSCMatrix& Fox(SpinCase2 S);
00060 const RefSCMatrix& Fvo(SpinCase2 S);
00061 const RefSCMatrix& Fxo(SpinCase2 S);
00062
00063 private:
00064 Ref<R12IntEval> r12eval_;
00065 RefSCMatrix T2_[NSpinCases2];
00066 RefSCMatrix Fvv_[NSpinCases2];
00067 RefSCMatrix Foo_[NSpinCases2];
00068 RefSCMatrix Fov_[NSpinCases2];
00069 RefSCMatrix Fox_[NSpinCases2];
00070 RefSCMatrix Fvo_[NSpinCases2];
00071 RefSCMatrix Fxo_[NSpinCases2];
00072
00073 void compute_(SpinCase2 sc2);
00074
00075 };
00076
00077 }
00078
00079 #endif
00080
00081
00082
00083
00084