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
#ifdef __GNUG__
00029
#pragma interface
00030
#endif
00031
00032
#ifndef _chemistry_qc_mbptr12_vxbeval_h
00033
#define _chemistry_qc_mbptr12_vxbeval_h
00034
00035
#include <util/ref/ref.h>
00036
#include <chemistry/qc/mbptr12/mbptr12.h>
00037
#include <chemistry/qc/mbptr12/linearr12.h>
00038
#include <chemistry/qc/mbptr12/vxb_eval_info.h>
00039
#include <chemistry/qc/mbptr12/vxb_eval_sbs_a.h>
00040
#include <chemistry/qc/mbptr12/vxb_eval_abs_a.h>
00041
00042
namespace sc {
00043
00044
class MBPT2_R12;
00045
class R12IntEvalInfo;
00046
class R12IntEval_sbs_A;
00047
class R12IntEval_abs_A;
00048
00051 class R12IntEval :
virtual public SavableState {
00052
00054
bool evaluated_;
00055
00056
Ref<R12IntEvalInfo> r12info_;
00057
00058
Ref<R12IntEval_sbs_A> eval_sbs_a_;
00059
Ref<R12IntEval_abs_A> eval_abs_a_;
00060
00061
RefSCMatrix Vaa_, Vab_, Xaa_, Xab_, Baa_, Bab_;
00062
RefSCVector emp2pair_aa_, emp2pair_ab_;
00063
RefSCDimension dim_aa_, dim_ab_, dim_s_, dim_t_;
00064
00065 LinearR12::StandardApproximation stdapprox_;
00066
bool spinadapted_;
00067
int debug_;
00068
00069
public:
00070
00071
R12IntEval(
StateIn&);
00072
R12IntEval(
MBPT2_R12*);
00073 ~
R12IntEval();
00074
00075
void save_data_state(
StateOut&);
00077
void obsolete();
00078
00079
void set_stdapprox(LinearR12::StandardApproximation stdapprox);
00080
void set_spinadapted(
bool spinadapted);
00081
void set_debug(
int debug);
00082
void set_dynamic(
bool dynamic);
00083
void set_memory(size_t nbytes);
00084
00085
Ref<R12IntEvalInfo> r12info()
const;
00086
RefSCDimension dim_aa()
const;
00087
RefSCDimension dim_ab()
const;
00088
RefSCDimension dim_s()
const;
00089
RefSCDimension dim_t()
const;
00090
00091
RefSCMatrix V_aa();
00092
RefSCMatrix X_aa();
00093
RefSCMatrix B_aa();
00094
RefSCMatrix V_ab();
00095
RefSCMatrix X_ab();
00096
RefSCMatrix B_ab();
00097
RefSCVector emp2_aa();
00098
RefSCVector emp2_ab();
00099
00100
void compute();
00101
RefDiagSCMatrix evals()
const;
00102
00103 };
00104
00105 }
00106
00107
#endif
00108
00109
00110
00111
00112
00113
00114