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

Computes components of the Fock matrix necessary for closed-shell calculations (i.e. More...

#include <chemistry/qc/lcao/clhfcontrib.h>

Inheritance diagram for sc::CLHFContribution:
sc::GenericFockContribution sc::FockContribution sc::RefCount

Public Member Functions

 CLHFContribution (const Ref< GaussianBasisSet > &f_b1, const Ref< GaussianBasisSet > &f_b2, const Ref< GaussianBasisSet > &p_b, const std::string &fockbuildmatrixtype)
 
 CLHFContribution (const CLHFContribution &)
 
Ref< FockContributionclone ()
 
void contrib_e_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 Compute the Coulomb contribution applying no two electron integral permutations.
 
void contrib_e_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 Compute the exchange contribution applying no two electron integral permutations.
 
void contrib_p12_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p12_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p34_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p34_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p12_p34_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p12_p34_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p34_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p34_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 
void contrib_all_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 Compute the Coulomb contribution applying all two electron integral permutations.
 
void contrib_all_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf)
 Compute the exchange contribution applying all two electron integral permutations.
 
- Public Member Functions inherited from sc::GenericFockContribution
double * jmat_shell_block (int i, int I, int J)
 
bool jmat_symmetric (int i) const
 
double * kmat_shell_block (int i, int I, int J)
 
bool kmat_symmetric (int i) const
 
const double * pmat_shell_block (int i, int I, int J)
 
double * jmat_block (int i, int I, int J)
 
double * kmat_block (int i, int I, int J)
 
const double * pmat_block (int i, int I, int J)
 
Ref< ThreadLock > & get_lock (int i, int Ish, int Jsh)
 
double * alloc_scratch (int size)
 
void free_scratch (double *data)
 
void set_fmat (int i, const RefSCMatrix &)
 
void set_fmat (int i, const RefSymmSCMatrix &)
 
void set_jmat (int i, const RefSCMatrix &)
 
void set_jmat (int i, const RefSymmSCMatrix &)
 
void set_kmat (int i, const RefSCMatrix &)
 
void set_kmat (int i, const RefSymmSCMatrix &)
 
void set_pmat (int i, const RefSymmSCMatrix &)
 
void copy_matrices (int unique_id)
 Copy matrices to allow multiple threads to coexist.
 
void accum (const Ref< FockContribution > &)
 Sum the Fock matrix contributions from different threads.
 
void accum_remote (const Ref< MessageGrp > &)
 Sum the Fock matrix contributions from different processors.
 
void update ()
 Push the internal Fock matrix data back into the original object.
 
signed char * compute_pmax () const
 Compute the maximum of the density in each block.
 
void activate ()
 
void sync ()
 
void deactivate ()
 
void prefetch_blocks (int I, int J, int ifetch, int nfetch)
 
void finish_prefetch_blocks ()
 
void set_fockblocks (const Ref< FockBlocks > &blocks_f1, const Ref< FockBlocks > &blocks_f2, const Ref< FockBlocks > &blocks_p)
 
void flush ()
 
const Ref< FockBuildMatrix > & jmat (int i)
 
const Ref< FockBuildMatrix > & kmat (int i)
 
const Ref< FockBuildMatrix > & pmat (int i)
 
bool use_shell_blocks () const
 
- Public Member Functions inherited from sc::FockContribution
 FockContribution (const FockContribution &)
 
double nint () const
 
double & nint ()
 
- 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.
 

Additional Inherited Members

- Protected Member Functions inherited from sc::GenericFockContribution
FockBuildMatrixfockbuildmatrix (int matrix, const std::string &type, const Ref< MessageGrp > &msg, const Ref< FockBuildAMG > &)
 
 GenericFockContribution (int nfmat, int npmat, const Ref< GaussianBasisSet > &f_b1, const Ref< GaussianBasisSet > &f_b2, const Ref< GaussianBasisSet > &p_b, const std::string &fockbuildmatrixtype)
 
void pmax_contrib (const Ref< FockBuildMatrix > &mat, signed char *pmax) const
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 
- Protected Attributes inherited from sc::GenericFockContribution
int nfmat_
 
std::vector< Ref< FockBuildMatrix > > jmats_
 the number of Fock matrices
 
std::vector< Ref< FockBuildMatrix > > kmats_
 
std::vector< bool > k_is_j_
 
int npmat_
 
std::vector< Ref< FockBuildMatrix > > pmats_
 the number of density matrices
 
Ref< GaussianBasisSetf_b1_
 
Ref< GaussianBasisSetf_b2_
 
Ref< GaussianBasisSetp_b_
 
bool f_b1_equiv_f_b2
 
int nlocks_
 
std::vector< Ref< ThreadLock > > locks_
 
std::string fockbuildmatrixtype_
 
bool use_shell_blocks_
 
Ref< FockBuildAMGfbamg_
 
- Protected Attributes inherited from sc::FockContribution
double nint_
 

Detailed Description

Computes components of the Fock matrix necessary for closed-shell calculations (i.e.

CLSCF). Requires as input the total AO density matrix P(0). Output matrices are in AO basis. If f_b1 == f_b2 then the output is the skeleton AO matrix that needs to be symmetrized with PetiteList, else the output is the full AO matrix.

Member Function Documentation

◆ clone()

Ref< FockContribution > sc::CLHFContribution::clone ( )
virtual

Implements sc::FockContribution.

◆ contrib_all_J()

void sc::CLHFContribution::contrib_all_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Compute the Coulomb contribution applying all two electron integral permutations.

I, J, K, and L indices must all be unique.

Implements sc::FockContribution.

◆ contrib_all_K()

void sc::CLHFContribution::contrib_all_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Compute the exchange contribution applying all two electron integral permutations.

I, J, K, and L indices must all be unique.

Implements sc::FockContribution.

◆ contrib_e_J()

void sc::CLHFContribution::contrib_e_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Compute the Coulomb contribution applying no two electron integral permutations.

The integrals in buf are the full redundant set (nI*nJ*nK*nL integrals). The computes only the Coulomb contribution to the Fock matrix.

Implements sc::FockContribution.

◆ contrib_e_K()

void sc::CLHFContribution::contrib_e_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Compute the exchange contribution applying no two electron integral permutations.

The integrals in buf are the full redundant set (nI*nJ*nK*nL integrals). The computes only the Coulomb contribution to the Fock matrix.

Implements sc::FockContribution.

◆ contrib_p12_p13p24_J()

void sc::CLHFContribution::contrib_p12_p13p24_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p12_p13p24_K()

void sc::CLHFContribution::contrib_p12_p13p24_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p12_p34_J()

void sc::CLHFContribution::contrib_p12_p34_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p12_p34_K()

void sc::CLHFContribution::contrib_p12_p34_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p13p24_J()

void sc::CLHFContribution::contrib_p13p24_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p13p24_K()

void sc::CLHFContribution::contrib_p13p24_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p34_J()

void sc::CLHFContribution::contrib_p34_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p34_K()

void sc::CLHFContribution::contrib_p34_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p34_p13p24_J()

void sc::CLHFContribution::contrib_p34_p13p24_J ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.

◆ contrib_p34_p13p24_K()

void sc::CLHFContribution::contrib_p34_p13p24_K ( double factor,
int I,
int J,
int K,
int L,
int nI,
int nJ,
int nK,
int nL,
const double *RESTRICT buf )
virtual

Implements sc::FockContribution.


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

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