20 #ifndef DMRGSCFINTEGRALS_CHEMPS2_H 21 #define DMRGSCFINTEGRALS_CHEMPS2_H 23 #include "DMRGSCFindices.h" 63 void set_coulomb(
const int Ic1,
const int Ic2,
const int Ia1,
const int Ia2,
const int c1,
const int c2,
const int a1,
const int a2,
const double val);
75 void add_coulomb(
const int Ic1,
const int Ic2,
const int Ia1,
const int Ia2,
const int c1,
const int c2,
const int a1,
const int a2,
const double val);
87 double get_coulomb(
const int Ic1,
const int Ic2,
const int Ia1,
const int Ia2,
const int c1,
const int c2,
const int a1,
const int a2)
const;
99 void set_exchange(
const int Ic1,
const int Ic2,
const int Iv1,
const int Iv2,
const int c1,
const int c2,
const int v1,
const int v2,
const double val);
111 void add_exchange(
const int Ic1,
const int Ic2,
const int Iv1,
const int Iv2,
const int c1,
const int c2,
const int v1,
const int v2,
const double val);
123 double get_exchange(
const int Ic1,
const int Ic2,
const int Iv1,
const int Iv2,
const int c1,
const int c2,
const int v1,
const int v2)
const;
135 double FourIndexAPI(
const int I1,
const int I2,
const int I3,
const int I4,
const int index1,
const int index2,
const int index3,
const int index4)
const;
154 long long **** coulomb_ptr;
155 long long coulomb_size;
156 double * coulomb_array;
157 long long calcNumCoulombElements(
const bool allocate);
158 long long get_coulomb_ptr(
const int Ic1,
const int Ic2,
const int Ia1,
const int Ia2,
const int c1,
const int c2,
const int a1,
const int a2 )
const;
163 long long **** exchange_ptr;
164 long long exchange_size;
165 double * exchange_array;
166 long long calcNumExchangeElements(
const bool allocate);
167 long long get_exchange_ptr(
const int Ic1,
const int Ic2,
const int Iv1,
const int Iv2,
const int c1,
const int c2,
const int v1,
const int v2 )
const;
double get_coulomb(const int Ic1, const int Ic2, const int Ia1, const int Ia2, const int c1, const int c2, const int a1, const int a2) const
Get an element of the Coulomb object ( c1 c2 | a1 a2 )
virtual ~DMRGSCFintegrals()
Destructor.
void add_coulomb(const int Ic1, const int Ic2, const int Ia1, const int Ia2, const int c1, const int c2, const int a1, const int a2, const double val)
Add a double to an element of the Coulomb object ( c1 c2 | a1 a2 )
double FourIndexAPI(const int I1, const int I2, const int I3, const int I4, const int index1, const int index2, const int index3, const int index4) const
Get a two-body matrix element with at most 2 virtual indices, using the FourIndex API...
void set_exchange(const int Ic1, const int Ic2, const int Iv1, const int Iv2, const int c1, const int c2, const int v1, const int v2, const double val)
Set an element of the Exchange object ( c1 v1 | c2 v2 )
void add_exchange(const int Ic1, const int Ic2, const int Iv1, const int Iv2, const int c1, const int c2, const int v1, const int v2, const double val)
Add a double to an element of the Exchange object ( c1 v1 | c2 v2 )
double get_exchange(const int Ic1, const int Ic2, const int Iv1, const int Iv2, const int c1, const int c2, const int v1, const int v2) const
Get an element of the Exchange object ( c1 v1 | c2 v2 )
DMRGSCFintegrals(DMRGSCFindices *iHandler)
Constructor.
void clear()
Set the storage objects to zero.
void set_coulomb(const int Ic1, const int Ic2, const int Ia1, const int Ia2, const int c1, const int c2, const int a1, const int a2, const double val)
Set an element of the Coulomb object ( c1 c2 | a1 a2 )