MPQC  2.3.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
sc::Int2eV3 Class Reference

Int2eV3 is a class wrapper for the two body part of the C language IntV3 library. More...

#include <int2e.h>

Inheritance diagram for sc::Int2eV3:
Inheritance graph
[legend]
Collaboration diagram for sc::Int2eV3:
Collaboration graph
[legend]

Classes

struct  store_list
 

Public Types

enum  { STORAGE_CHUNK = 4096 }
 

Public Member Functions

 Int2eV3 (Integral *, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3, const Ref< GaussianBasisSet > &bs4, int order, size_t storage)
 
void init_storage (int size)
 
void done_storage ()
 
int storage_used ()
 
void init_bounds ()
 
void init_bounds_1der ()
 
void done_bounds ()
 
void done_bounds_1der ()
 
int redundant ()
 
void set_redundant (int i)
 
int permute ()
 
void set_permute (int i)
 
int used_storage () const
 
void erep (int &psh1, int &psh2, int &psh3, int &psh4)
 
void erep (int *shells, int *sizes)
 
void erep_all1der (int &psh1, int &psh2, int &psh3, int &psh4, der_centersv3_t *der_centers)
 
void erep_all1der (int *shells, int *sizes, der_centersv3_t *dercenters)
 
void erep_2center (int &psh1, int &psh2)
 
void erep_2center (int *shells, int *sizes)
 
void erep_3center (int &psh1, int &psh2, int &psh3)
 
void erep_3center (int *shells, int *sizes)
 
int erep_4bound (int s1, int s2, int s3, int s4)
 
int erep_4bound_1der (int s1, int s2, int s3, int s4)
 
double * buffer ()
 
Ref< GaussianBasisSetbasis ()
 
Ref< GaussianBasisSetbasis1 ()
 
Ref< GaussianBasisSetbasis2 ()
 
Ref< GaussianBasisSetbasis3 ()
 
Ref< GaussianBasisSetbasis4 ()
 
Ref< GaussianBasisSetcs1 () const
 
Ref< GaussianBasisSetcs2 () const
 
Ref< GaussianBasisSetcs3 () const
 
Ref< GaussianBasisSetcs4 () const
 
GaussianBasisSetpcs1 () const
 
GaussianBasisSetpcs2 () const
 
GaussianBasisSetpcs3 () const
 
GaussianBasisSetpcs4 () const
 
- Public Member Functions inherited from sc::RefCount
int lock_ptr () const
 Lock this object.
 
int unlock_ptr () const
 Unlock this object.
 
void use_locks (bool inVal)
 start and stop using locks on this object
 
refcount_t nreference () const
 Return the reference count.
 
refcount_t reference ()
 Increment the reference count and return the new count.
 
refcount_t dereference ()
 Decrement the reference count and return the new count.
 
int managed () const
 
void unmanage ()
 Turn off the reference counting mechanism for this object. More...
 
int managed () const
 Return 1 if the object is managed. Otherwise return 0.
 
- Public Member Functions inherited from sc::Identity
Identifier identifier ()
 Return the Identifier for this argument. More...
 

Static Public Member Functions

static double logbound_to_bound (int)
 
static int bound_to_logbound (double value)
 

Protected Types

enum  { int_bound_min = SCHAR_MIN, int_bound_max = SCHAR_MAX }
 
typedef struct store_list store_list_t
 
typedef int(BuildIntV3::* intfunc) ()
 
typedef signed char int_bound_t
 

Protected Member Functions

void add_store (void *p)
 
void free_store ()
 
void _free_store (store_list_t *s, int n)
 
void build_not_using_gcs (int nc1, int nc2, int nc3, int nc4, int minam1, int minam3, int maxam12, int maxam34, int dam1, int dam2, int dam3, int dam4, int eAB)
 
void build_using_gcs (int nc1, int nc2, int nc3, int nc4, int minam1, int minam3, int maxam12, int maxam34, int dam1, int dam2, int dam3, int dam4, int eAB)
 
void gen_prim_intermediates (int pr1, int pr2, int pr3, int pr4, int am)
 
void gen_prim_intermediates_with_norm (int pr1, int pr2, int pr3, int pr4, int am, double norm)
 
void gen_shell_intermediates (int sh1, int sh2, int sh3, int sh4)
 
void blockbuildprim (int minam1, int maxam12, int minam3, int maxam34)
 
void blockbuildprim_1 (int am12min, int am12max, int am34, int m)
 
void blockbuildprim_3 (int am34min, int am34max, int m)
 
void int_init_buildgc (int order, int am1, int am2, int am3, int am4, int nc1, int nc2, int nc3, int nc4)
 
void int_done_buildgc ()
 
void int_buildgcam (int minam1, int minam2, int minam3, int minam4, int maxam1, int maxam2, int maxam3, int maxam4, int dam1, int dam2, int dam3, int dam4, int sh1, int sh2, int sh3, int sh4, int eAB)
 
void int_offset_print (std::ostream &, double *buffer, Ref< GaussianBasisSet > c1, int s1, Ref< GaussianBasisSet > c2, int s2, Ref< GaussianBasisSet > c3, int s3, Ref< GaussianBasisSet > c4, int s4)
 
void int_offset_print_n (std::ostream &, double *buffer, int n1, int n2, int n3, int n4, int o1, int o2, int o3, int o4, int e12, int e13e24, int e34)
 
void int_print (std::ostream &, double *buffer, Ref< GaussianBasisSet > c1, int s1, Ref< GaussianBasisSet > c2, int s2, Ref< GaussianBasisSet > c3, int s3, Ref< GaussianBasisSet > c4, int s4)
 
void int_print_n (std::ostream &, double *buffer, int n1, int n2, int n3, int n4, int e12, int e13e24, int e34)
 
void int_print_intermediates (std::ostream &)
 
void shiftam_12 (double *I0100, double *I1000, double *I0000, int am1, int am2, int am3, int am4)
 
void shiftam_12eAB (double *I0100, double *I1000, double *I0000, int am1, int am2, int am3, int am4)
 
void shiftam_34 (double *I0001, double *I0010, double *I0000, int am1, int am2, int am3, int am4)
 
void int_init_shiftgc (int order, int am1, int am2, int am3, int am4)
 
void int_done_shiftgc ()
 
double * int_shiftgcam (int gc1, int gc2, int gc3, int gc4, int tam1, int tam2, int tam3, int tam4, int peAB)
 
void alloc_inter (int nprim, int nshell)
 
void compute_shell_1 (Ref< GaussianBasisSet > cs, int, int)
 
void compute_prim_2 (Ref< GaussianBasisSet > cs1, int, int, Ref< GaussianBasisSet > cs2, int, int)
 
double * int_initialize_erep (size_t storage, int order, const Ref< GaussianBasisSet > &cs1, const Ref< GaussianBasisSet > &cs2, const Ref< GaussianBasisSet > &cs3, const Ref< GaussianBasisSet > &cs4)
 
void int_done_erep ()
 
void transform_init ()
 
void transform_done ()
 
void source_space (int nsource)
 
void copy_to_source (double *integrals, int nsource)
 
void do_gencon_sparse_transform_2e (Integral *integ, double *integrals, double *target, int index, GaussianShell *sh1, GaussianShell *sh2, GaussianShell *sh3, GaussianShell *sh4)
 
void transform_2e_slow (Integral *, double *integrals, double *target, GaussianShell *sh1, GaussianShell *sh2, GaussianShell *sh3, GaussianShell *sh4)
 
void transform_2e (Integral *, double *integrals, double *target, GaussianShell *sh1, GaussianShell *sh2, GaussianShell *sh3, GaussianShell *sh4)
 
void compute_erep (int flags, int *psh1, int *psh2, int *psh3, int *psh4, int dam1, int dam2, int dam3, int dam4)
 
void compute_erep_1der (int flags, double *buffer, int *psh1, int *psh2, int *psh3, int *psh4, int dercenter)
 
void nonredundant_erep (double *buffer, int e12, int e34, int e13e24, int n1, int n2, int n3, int n4, int *red_off, int *nonred_off)
 
void compute_erep_bound1der (int flags, double *buffer, int *psh1, int *psh2, int *psh3, int *psh4)
 
void int_erep_bound1der (int flags, int bsh1, int bsh2, int *size)
 
void int_init_bounds_nocomp ()
 
void int_init_bounds_1der_nocomp ()
 
void int_bounds_comp (int s1, int s2)
 
void int_bounds_1der_comp (int s1, int s2)
 
int int_erep_2bound (int s1, int s2)
 
int int_erep_0bound_1der ()
 
int int_erep_2bound_1der (int s1, int s2)
 
void compute_bounds (int_bound_t *overall, int_bound_t *vec, int flag)
 
void compute_bounds_shell (int_bound_t *overall, int_bound_t *vec, int flag, int sh1, int sh2)
 
int int_have_stored_integral (int sh1, int sh2, int sh3, int sh4, int p12, int p34, int p13p24)
 
void int_store_integral (int sh1, int sh2, int sh3, int sh4, int p12, int p34, int p13p24, int size)
 
void int_initialize_offsets2 ()
 
void int_done_offsets2 ()
 
void make_int_unit_shell ()
 
void delete_int_unit_shell ()
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Protected Attributes

Integralintegral_
 
BuildIntV3 build
 
Ref< IntegralStorerstorer
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
Ref< GaussianBasisSetbs3_
 
Ref< GaussianBasisSetbs4_
 
Ref< GaussianBasisSetpbs1_
 
Ref< GaussianBasisSetpbs2_
 
Ref< GaussianBasisSetpbs3_
 
Ref< GaussianBasisSetpbs4_
 
Ref< MessageGrpgrp_
 
int bs1_shell_offset_
 
int bs2_shell_offset_
 
int bs3_shell_offset_
 
int bs4_shell_offset_
 
int bs1_func_offset_
 
int bs2_func_offset_
 
int bs3_func_offset_
 
int bs4_func_offset_
 
int bs1_prim_offset_
 
int bs2_prim_offset_
 
int bs3_prim_offset_
 
int bs4_prim_offset_
 
int n_store_last
 
store_list_tstore
 
intfunc build_routine [4][4][4][4][2]
 
int osh1
 
int osh2
 
int osh3
 
int osh4
 
int opr1
 
int opr2
 
int opr3
 
int opr4
 
int saved_am12
 
int saved_am34
 
int saved_ncon
 
IntV3Arrayint3 contract_length
 
int g1
 
int g2
 
int g3
 
int g4
 
double AmB [3]
 
double CmD [3]
 
int eAB
 
double * buf34
 
double * buf12
 
double * bufshared
 
int redundant_
 
int permute_
 
Ref< FJTfjt_
 
int * int_shell_to_prim
 
IntV3Arraydouble2 int_shell_r
 
IntV3Arraydouble2 int_prim_zeta
 
IntV3Arraydouble2 int_prim_k
 
IntV3Arraydouble2 int_prim_oo2zeta
 
IntV3Arraydouble3 int_prim_p
 
double * int_buffer
 
double * int_derint_buffer
 
Ref< GaussianBasisSetint_cs1
 
Ref< GaussianBasisSetint_cs2
 
Ref< GaussianBasisSetint_cs3
 
Ref< GaussianBasisSetint_cs4
 
GaussianShellint_shell1
 
GaussianShellint_shell2
 
GaussianShellint_shell3
 
GaussianShellint_shell4
 
IntV3Arraydoublep2 **** e0f0_con_ints_array
 
int int_expweight1
 
int int_expweight2
 
int int_expweight3
 
int int_expweight4
 
int int_unit2
 
int int_unit4
 
GaussianShellint_unit_shell
 
int int_integral_storage
 
int int_store1
 
int int_store2
 
int int_derivative_bounds
 
double * source
 
double * target
 
double * scratch
 
int nsourcemax
 
int_bound_t int_Q
 
int_bound_t int_R
 
int_bound_t * int_Qvec
 
int_bound_t * int_Rvec
 
int used_storage_
 
int used_storage_build_
 
int used_storage_shift_
 

Detailed Description

Int2eV3 is a class wrapper for the two body part of the C language IntV3 library.

It is used by TwoBodyIntV3 and TwoBodyDerivIntV3 to implement IntegralV3.


The documentation for this class was generated from the following file:

Generated at Sun Jan 26 2020 23:33:06 for MPQC 2.3.1 using the documentation package Doxygen 1.8.16.