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_r12technology_h
00029 #define _chemistry_qc_mbptr12_r12technology_h
00030
00031 #ifdef __GNUC__
00032 #pragma interface
00033 #endif
00034
00035 #include <chemistry/qc/mbptr12/ansatz.h>
00036 #include <chemistry/qc/mbptr12/linearr12.h>
00037
00038 namespace sc {
00039
00040
00041
00043 class R12Technology: virtual public SavableState {
00044
00045 bool abs_eq_obs_;
00046 bool vbs_eq_obs_;
00047
00048 Ref<LinearR12::CorrelationFactor> corrfactor_;
00049 LinearR12::StandardApproximation stdapprox_;
00050 Ref<LinearR12Ansatz> ansatz_;
00051 LinearR12::ABSMethod abs_method_;
00052 unsigned int maxnabs_;
00053 bool gbc_;
00054 bool ebc_;
00055 bool omit_P_;
00056 bool pauli_;
00057 bool safety_check_;
00058 LinearR12::PositiveDefiniteB posdef_B_;
00059
00060
00061 bool omit_B_;
00062
00063
00064 #if 0
00065
00066 struct GTGFitWeight {
00067 typedef enum {TewKlopper, Cusp} Type;
00068 };
00069 GTGFitWeight::Type gtg_fit_weight_;
00070 #endif
00071
00072 public:
00073 R12Technology(StateIn&);
00167 R12Technology(const Ref<KeyVal>&,
00168 const Ref<GaussianBasisSet>& bs,
00169 const Ref<GaussianBasisSet>& vbs,
00170 const Ref<GaussianBasisSet>& abs
00171 );
00172 ~R12Technology();
00173
00174 void save_data_state(StateOut&);
00175
00176 const Ref<LinearR12::CorrelationFactor>& corrfactor() const;
00178 void corrfactor(const Ref<LinearR12::CorrelationFactor>&);
00179 unsigned int maxnabs() const;
00180 bool gbc() const;
00181 bool ebc() const;
00182 LinearR12::ABSMethod abs_method() const;
00183 LinearR12::StandardApproximation stdapprox() const;
00184 const Ref<LinearR12Ansatz>& ansatz() const;
00185 bool spinadapted() const;
00186 bool omit_P() const;
00187 bool pauli() const;
00188 bool include_mp1() const;
00189 bool safety_check() const;
00190 const LinearR12::PositiveDefiniteB& posdef_B() const;
00191
00192
00193
00194
00195
00196 bool omit_B() const;
00197
00198
00199 void check_integral_factory(const Ref<Integral>& ints);
00200
00201 void print(std::ostream&o=ExEnv::out0()) const;
00202 };
00203
00204 }
00205
00206 #endif
00207
00208
00209
00210
00211