MPQC
3.0.0-alpha
|
G12NCLibint2 is a specialization of Int2eLibint2 that computes two-electron integrals specific to explicitly correlated methods which use Gaussian geminals (formulation without commutators). More...
#include <chemistry/qc/libint2/g12nc.h>
Public Member Functions | |
G12NCLibint2 (Integral *, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, size_t storage, const ContractedGeminal &gbra, const ContractedGeminal &gket) | |
When integrals with 1 geminal are needed, gket should be IntParamsG12::null_geminal. | |
double * | buffer (unsigned int t) const |
Returns the location of the buffer with target integrals. | |
void | compute_quartet (int *, int *, int *, int *) |
Evaluate the target quartet of integrals. | |
Public Member Functions inherited from sc::Int2eLibint2 | |
Int2eLibint2 (Integral *, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, size_t storage) | |
virtual Ref< Int2eLibint2 > | clone () |
"clones" this engine, all precomputed data is shallow-copied More... | |
void | bounds (const Ref< Log2Bounds > &) |
provides the bounds evaluator for log2_bound | |
const Ref< Log2Bounds > & | bounds () const |
returns the bounds evaluator for log2_bound | |
size_t | storage_used () const |
Reports how much storage is actually used at a given time. | |
int | redundant () const |
Whether redundant integrals are returned. | |
void | set_redundant (int flag) |
Set redundant flag. | |
int | permute () const |
Whether shells can be permuted. | |
void | set_permute (int flag) |
Set shell permutation flag. | |
virtual int | log2_bound (int s1, int s2, int s3, int s4) |
Computes log2 bound. More... | |
Ref< GaussianBasisSet > | basis () |
Ref< GaussianBasisSet > | basis1 () |
Ref< GaussianBasisSet > | basis2 () |
Ref< GaussianBasisSet > | basis3 () |
Ref< GaussianBasisSet > | basis4 () |
Public Member Functions inherited from sc::RefCount | |
size_t | identifier () const |
Return the unique identifier for this object that can be compared for different objects of different types. More... | |
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... | |
Static Public Member Functions | |
static size_t | storage_required (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0) |
Additional Inherited Members | |
Protected Member Functions inherited from sc::Int2eLibint2 | |
void | check_storage_ () const |
void | transform_contrquartets_ (double *, double *) |
void | norm_contrcart1_ (double *data) |
template<unsigned int ntypes> | |
void | norm_contrcart_ (double *data) |
void | sort_contrquartets_to_shellquartet_ (double *, double *) |
void | permute_target_ (double *, double *, int, int, int) |
void | permute_1234_to_1243_ (double *, double *) |
void | permute_1234_to_2134_ (double *, double *) |
void | permute_1234_to_2143_ (double *, double *) |
void | permute_1234_to_3412_ (double *, double *) |
void | permute_1234_to_3421_ (double *, double *) |
void | permute_1234_to_4312_ (double *, double *) |
void | permute_1234_to_4321_ (double *, double *) |
void | get_nonredundant_ints_ (double *, double *, int, int, int) |
Int2eLibint2 (const Int2eLibint2 &other) | |
shallow-copies other | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Static Protected Member Functions inherited from sc::Int2eLibint2 | |
static size_t | storage_required_ (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0) |
Protected Attributes inherited from sc::Int2eLibint2 | |
Integral * | integral_ |
Ref< GaussianBasisSet > | bs1_ |
Ref< GaussianBasisSet > | bs2_ |
Ref< GaussianBasisSet > | bs3_ |
Ref< GaussianBasisSet > | bs4_ |
Ref< Log2Bounds > | bounds_ |
GaussianShell * | int_shell1_ |
GaussianShell * | int_shell2_ |
GaussianShell * | int_shell3_ |
GaussianShell * | int_shell4_ |
int | permute_ |
int | redundant_ |
size_t | storage_ |
size_t | storage_used_ |
std::vector< double > | tformbuf_ |
G12NCLibint2 is a specialization of Int2eLibint2 that computes two-electron integrals specific to explicitly correlated methods which use Gaussian geminals (formulation without commutators).
G12NCLibint2 can compute integrals with 1 or 2 geminals. All 2-geminal integrals can be represented as 1-geminals integrals of a product of the original 2 geminals. For example, overlap of 2 geminals (g12*g12') is directly reduced to an integral over 1 geminal (G12) whose exponent is a sum of exponents of g12 and g12'. The following integrals over 2 geminals are needed: