MPQC  3.0.0-alpha
sc::MP2R12EnergyUtil_base Class Referenceabstract

Class MP2R12EnergyUtil_base is the abstract interface to utility functions used by MP2R12Energy derivatives. More...

#include <chemistry/qc/mbptr12/mp2r12_energy_util.h>

Inheritance diagram for sc::MP2R12EnergyUtil_base:
sc::RefCount sc::MP2R12EnergyUtil_Nondiag

Public Member Functions

 MP2R12EnergyUtil_base (const RefSCDimension &oodim, const RefSCDimension &xydim, const RefSCDimension &f12dim, const unsigned int nocc_act)
 
void check_dims (const RefSCMatrix &A) const
 Checks if matrix A has proper dimensions. Throw, if not.
 
void check_dims (const RefSymmSCMatrix &A) const
 Checks if matrix A has proper dimensions. Throw, if not.
 
virtual void print (const char *label, const RefSCMatrix &A, std::ostream &os=ExEnv::out0()) const =0
 Prints A.
 
virtual void print (const char *label, const RefSymmSCMatrix &A, std::ostream &os=ExEnv::out0()) const =0
 Prints A.
 
virtual void print (const char *label, const RefDiagSCMatrix &A, std::ostream &os=ExEnv::out0()) const =0
 Prints A.
 
virtual void invert (RefSymmSCMatrix &A) const =0
 Inverts A in-place.
 
virtual RefDiagSCMatrix eigenvalues (const RefSymmSCMatrix &A) const =0
 Computes eigenvalues of A.
 
virtual void diagonalize (const RefSymmSCMatrix &A, RefDiagSCMatrix &evals, RefSCMatrix &evecs) const =0
 Computes eigenvalues and eigenvectors of A. evals and evecs don't have to be allocated.
 
virtual void transform (const RefSymmSCMatrix &B, const RefDiagSCMatrix &A, const RefSCMatrix &U) const =0
 B = U * A * U.t()
 
virtual void solve_linear_system (const RefSymmSCMatrix &A, RefSCMatrix &X, const RefSCMatrix &B) const =0
 Solves A*X = B.
 
virtual void solve_linear_system (unsigned int ij, const RefSymmSCMatrix &A, RefSCMatrix &X, const RefSCMatrix &B) const =0
 
virtual void times (const RefSymmSCMatrix &A, const RefSCMatrix &x, RefSCMatrix &y) const =0
 computes y = A x
 
virtual void times (unsigned int ij, const RefSymmSCMatrix &A, const RefSCMatrix &x, RefSCMatrix &y) const =0
 computes y = A x
 
virtual RefSCVector dot_product (const RefSCMatrix &A, const RefSCMatrix &B) const =0
 Computes "dot" product of A and B: tr[i] = sum_j A[j][i] B[j][i].
 
- 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

unsigned int nocc_act_
 number of active occupied orbitals
 
RefSCDimension oodim_
 number of ij pairs
 
RefSCDimension xydim_
 number of xy pairs
 
RefSCDimension f12dim_
 number of geminals per pair times number of xy pairs
 
RefSCDimension gdim_
 number of geminals
 
unsigned int nf12_
 number of geminals
 

Additional Inherited Members

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

Detailed Description

Class MP2R12EnergyUtil_base is the abstract interface to utility functions used by MP2R12Energy derivatives.


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

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