MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::G12NCLibint2 Class Reference

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>

Inheritance diagram for sc::G12NCLibint2:
sc::Int2eLibint2 sc::RefCount

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< Int2eLibint2clone ()
 "clones" this engine, all precomputed data is shallow-copied
 
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.
 
Ref< GaussianBasisSetbasis ()
 
Ref< GaussianBasisSetbasis1 ()
 
Ref< GaussianBasisSetbasis2 ()
 
Ref< GaussianBasisSetbasis3 ()
 
Ref< GaussianBasisSetbasis4 ()
 
- 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.
 
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
 Return 1 if the object is managed. Otherwise return 0.
 

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 &)
 
RefCountoperator= (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
Integralintegral_
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
Ref< GaussianBasisSetbs3_
 
Ref< GaussianBasisSetbs4_
 
Ref< Log2Boundsbounds_
 
GaussianShellint_shell1_
 
GaussianShellint_shell2_
 
GaussianShellint_shell3_
 
GaussianShellint_shell4_
 
int permute_
 
int redundant_
 
size_t storage_
 
size_t storage_used_
 
std::vector< double > tformbuf_
 

Detailed Description

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:

  • g12*g12' = G12. Returned as r12_0_g12.
  • [g12,[t1,g12']] = -2 exp(g12) * exp(g12') r12^2 G12. Returned as g12t1g12.
  • Since g12[ti,g12'] - g12'[ti,g12] = [ti,G12] * (exp(g12') - exp(g12))/(exp(g12')+exp(g12)), need to compute (exp(g12') - exp(g12))/(exp(g12')+exp(g12)) * G12. Returned as anti_g12g12.

Member Function Documentation

◆ buffer()

double * sc::G12NCLibint2::buffer ( unsigned int ) const
inlinevirtual

Returns the location of the buffer with target integrals.

Implements sc::Int2eLibint2.

◆ compute_quartet()

void sc::G12NCLibint2::compute_quartet ( int * ,
int * ,
int * ,
int *  )
virtual

Evaluate the target quartet of integrals.

Implements sc::Int2eLibint2.


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

Generated at Wed Sep 25 2024 02:45:32 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.