MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::MP2R12EnergyUtil_Diag Class Referenceabstract
Inheritance diagram for sc::MP2R12EnergyUtil_Diag:
sc::RefCount sc::MP2R12EnergyUtil_Diag_DifferentSpin sc::MP2R12EnergyUtil_Diag_SameSpin

Public Member Functions

 MP2R12EnergyUtil_Diag (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 get (unsigned int ij, const RefSCMatrix &A, const RefSCVector &Aij) const =0
 gets ij block of A
 
virtual void get (unsigned int ij, const RefSCMatrix &A, const RefSCMatrix &Aij) const =0
 gets ij block of A
 
virtual void get (unsigned int ij, const RefSymmSCMatrix &A, const RefSymmSCMatrix &Aij) const =0
 gets ij block of A
 
virtual void get (unsigned int ij, const RefDiagSCMatrix &A, const RefDiagSCMatrix &Aij) const =0
 gets ij block of A
 
virtual void put (unsigned int ij, const RefSCMatrix &A, const RefSCVector &Aij) const =0
 puts ij block into A
 
virtual void put (unsigned int ij, const RefSCMatrix &A, const RefSCMatrix &Aij) const =0
 puts ij block into A
 
virtual void put (unsigned int ij, const RefSymmSCMatrix &A, const RefSymmSCMatrix &Aij) const =0
 puts ij block into A
 
virtual void put (unsigned int ij, const RefDiagSCMatrix &A, const RefDiagSCMatrix &Aij) const =0
 puts ij block into 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.
 
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.
 

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 &)
 

Member Function Documentation

◆ diagonalize()

virtual void sc::MP2R12EnergyUtil_Diag::diagonalize ( const RefSymmSCMatrix & A,
RefDiagSCMatrix & evals,
RefSCMatrix & evecs ) const
pure virtual

Computes eigenvalues and eigenvectors of A. evals and evecs don't have to be allocated.

Implemented in sc::MP2R12EnergyUtil_Diag_DifferentSpin, and sc::MP2R12EnergyUtil_Diag_SameSpin.

◆ dot_product()

virtual RefSCVector sc::MP2R12EnergyUtil_Diag::dot_product ( const RefSCMatrix & A,
const RefSCMatrix & B ) const
pure virtual

Computes "dot" product of A and B: tr[i] = sum_j A[j][i] B[j][i].

Implemented in sc::MP2R12EnergyUtil_Diag_DifferentSpin, and sc::MP2R12EnergyUtil_Diag_SameSpin.

◆ eigenvalues()

virtual RefDiagSCMatrix sc::MP2R12EnergyUtil_Diag::eigenvalues ( const RefSymmSCMatrix & A) const
pure virtual

Computes eigenvalues of A.

Implemented in sc::MP2R12EnergyUtil_Diag_DifferentSpin, and sc::MP2R12EnergyUtil_Diag_SameSpin.

◆ get() [1/4]

virtual void sc::MP2R12EnergyUtil_Diag::get ( unsigned int ij,
const RefDiagSCMatrix & A,
const RefDiagSCMatrix & Aij ) const
pure virtual

◆ get() [2/4]

virtual void sc::MP2R12EnergyUtil_Diag::get ( unsigned int ij,
const RefSCMatrix & A,
const RefSCMatrix & Aij ) const
pure virtual

◆ get() [3/4]

virtual void sc::MP2R12EnergyUtil_Diag::get ( unsigned int ij,
const RefSCMatrix & A,
const RefSCVector & Aij ) const
pure virtual

◆ get() [4/4]

virtual void sc::MP2R12EnergyUtil_Diag::get ( unsigned int ij,
const RefSymmSCMatrix & A,
const RefSymmSCMatrix & Aij ) const
pure virtual

◆ invert()

virtual void sc::MP2R12EnergyUtil_Diag::invert ( RefSymmSCMatrix & A) const
pure virtual

◆ print() [1/3]

virtual void sc::MP2R12EnergyUtil_Diag::print ( const char * label,
const RefDiagSCMatrix & A,
std::ostream & os = ExEnv::out0() ) const
pure virtual

◆ print() [2/3]

virtual void sc::MP2R12EnergyUtil_Diag::print ( const char * label,
const RefSCMatrix & A,
std::ostream & os = ExEnv::out0() ) const
pure virtual

◆ print() [3/3]

virtual void sc::MP2R12EnergyUtil_Diag::print ( const char * label,
const RefSymmSCMatrix & A,
std::ostream & os = ExEnv::out0() ) const
pure virtual

◆ put() [1/4]

virtual void sc::MP2R12EnergyUtil_Diag::put ( unsigned int ij,
const RefDiagSCMatrix & A,
const RefDiagSCMatrix & Aij ) const
pure virtual

◆ put() [2/4]

virtual void sc::MP2R12EnergyUtil_Diag::put ( unsigned int ij,
const RefSCMatrix & A,
const RefSCMatrix & Aij ) const
pure virtual

◆ put() [3/4]

virtual void sc::MP2R12EnergyUtil_Diag::put ( unsigned int ij,
const RefSCMatrix & A,
const RefSCVector & Aij ) const
pure virtual

◆ put() [4/4]

virtual void sc::MP2R12EnergyUtil_Diag::put ( unsigned int ij,
const RefSymmSCMatrix & A,
const RefSymmSCMatrix & Aij ) const
pure virtual

◆ solve_linear_system()

virtual void sc::MP2R12EnergyUtil_Diag::solve_linear_system ( const RefSymmSCMatrix & A,
RefSCMatrix & X,
const RefSCMatrix & B ) const
pure virtual

◆ times() [1/2]

virtual void sc::MP2R12EnergyUtil_Diag::times ( const RefSymmSCMatrix & A,
const RefSCMatrix & x,
RefSCMatrix & y ) const
pure virtual

◆ times() [2/2]

virtual void sc::MP2R12EnergyUtil_Diag::times ( unsigned int ij,
const RefSymmSCMatrix & A,
const RefSCMatrix & x,
RefSCMatrix & y ) const
pure virtual

◆ transform()

virtual void sc::MP2R12EnergyUtil_Diag::transform ( const RefSymmSCMatrix & B,
const RefDiagSCMatrix & A,
const RefSCMatrix & U ) const
pure virtual

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

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