MPQC  3.0.0-alpha
sc::FockContribution Class Referenceabstract
Inheritance diagram for sc::FockContribution:
sc::RefCount sc::GenericFockContribution sc::CLHFContribution sc::HSOSHFContribution

Public Member Functions

 FockContribution (const FockContribution &)
 
virtual 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)=0
 This routine does not permute any indices. More...
 
virtual 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)=0
 This routine does not permute any indices. More...
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual 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)=0
 
virtual Ref< FockContributionclone ()=0
 
virtual void set_fmat (int i, const RefSCMatrix &)=0
 
virtual void set_fmat (int i, const RefSymmSCMatrix &)=0
 
virtual void set_jmat (int i, const RefSCMatrix &)=0
 
virtual void set_jmat (int i, const RefSymmSCMatrix &)=0
 
virtual void set_kmat (int i, const RefSCMatrix &)=0
 
virtual void set_kmat (int i, const RefSymmSCMatrix &)=0
 
virtual void set_pmat (int i, const RefSymmSCMatrix &)=0
 
virtual double * jmat_shell_block (int i, int Ish, int Jsh)=0
 
virtual double * kmat_shell_block (int i, int Ish, int Jsh)=0
 
virtual const double * pmat_shell_block (int i, int Ish, int Jsh)=0
 
virtual double * jmat_block (int i, int Ish, int Jsh)=0
 
virtual double * kmat_block (int i, int Ish, int Jsh)=0
 
virtual const double * pmat_block (int i, int Ish, int Jsh)=0
 
virtual signed char * compute_pmax () const =0
 Compute the maximum of the density in each block. More...
 
virtual void copy_matrices (int unique_id)=0
 Copy matrices to allow multiple threads to coexist.
 
virtual void accum (const Ref< FockContribution > &)=0
 Sum the Fock matrix contributions from different threads. More...
 
virtual void accum_remote (const Ref< MessageGrp > &)=0
 Sum the Fock matrix contributions from different processors. More...
 
virtual void update ()=0
 Push the internal Fock matrix data back into the original object.
 
double nint () const
 
double & nint ()
 
virtual void activate ()=0
 
virtual void sync ()=0
 
virtual void deactivate ()=0
 
virtual void flush ()=0
 
virtual void prefetch_blocks (int I, int J, int ifetch, int nfetch)=0
 
virtual void finish_prefetch_blocks ()=0
 
virtual void set_fockblocks (const Ref< FockBlocks > &blocks_f1, const Ref< FockBlocks > &blocks_f2, const Ref< FockBlocks > &blocks_p)=0
 
virtual Ref< ThreadLock > & get_lock (int i, int I, int J)=0
 
- 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...
 

Protected Attributes

double nint_
 

Additional Inherited Members

- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Member Function Documentation

◆ accum()

virtual void sc::FockContribution::accum ( const Ref< FockContribution > &  )
pure virtual

Sum the Fock matrix contributions from different threads.

The passed specialization type must be the same as the specialization of this.

Implemented in sc::GenericFockContribution.

◆ accum_remote()

virtual void sc::FockContribution::accum_remote ( const Ref< MessageGrp > &  )
pure virtual

Sum the Fock matrix contributions from different processors.

This might be a no-op for distributed matrices.

Implemented in sc::GenericFockContribution.

◆ compute_pmax()

virtual signed char* sc::FockContribution::compute_pmax ( ) const
pure virtual

Compute the maximum of the density in each block.

The pmax vector holds only the unique elements.

Implemented in sc::GenericFockContribution.

◆ contrib_e_J()

virtual void sc::FockContribution::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 
)
pure virtual

This routine does not permute any indices.

The matrix elements are contracted with the integrals are F_IJ and P_KL. If F is symmetric, then J>I will be ignored. K>=L.

Implemented in sc::HSOSHFContribution, and sc::CLHFContribution.

◆ contrib_e_K()

virtual void sc::FockContribution::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 
)
pure virtual

This routine does not permute any indices.

The matrix elements are contracted with the integrals are F_IK and P_JL. If F is symmetric, then K>I will be ignored.

Implemented in sc::HSOSHFContribution, and sc::CLHFContribution.


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

Generated at Sun Jan 26 2020 23:24:05 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.