MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::MP2R12EnergyUtil_Nondiag Class Reference
Inheritance diagram for sc::MP2R12EnergyUtil_Nondiag:
sc::MP2R12EnergyUtil_base sc::RefCount

Public Member Functions

 MP2R12EnergyUtil_Nondiag (const RefSCDimension &oodim, const RefSCDimension &xydim, const RefSCDimension &f12dim, const unsigned int nocc_act)
 oodim is a dimension of ij (active occupied pairs) xydim is a dimension of xy (orbital products used to generate geminal space) f12dim is has rank nf12*nxy.
 
void print (const char *label, const RefSCMatrix &A, std::ostream &os=ExEnv::out0()) const
 Prints A.
 
void print (const char *label, const RefSymmSCMatrix &A, std::ostream &os=ExEnv::out0()) const
 Prints A.
 
void print (const char *label, const RefDiagSCMatrix &A, std::ostream &os=ExEnv::out0()) const
 Prints A.
 
void invert (RefSymmSCMatrix &A) const
 Inverts A in-place.
 
RefDiagSCMatrix eigenvalues (const RefSymmSCMatrix &A) const
 Computes eigenvalues of A.
 
void diagonalize (const RefSymmSCMatrix &A, RefDiagSCMatrix &evals, RefSCMatrix &evecs) const
 Computes eigenvalues and eigenvectors of A. evals and evecs don't have to be allocated.
 
void transform (const RefSymmSCMatrix &B, const RefDiagSCMatrix &A, const RefSCMatrix &U) const
 B = U * A * U.t()
 
void solve_linear_system (const RefSymmSCMatrix &A, RefSCMatrix &X, const RefSCMatrix &B) const
 Solves A*X = B.
 
void solve_linear_system (unsigned int ij, const RefSymmSCMatrix &A, RefSCMatrix &X, const RefSCMatrix &B) const
 
void times (const RefSymmSCMatrix &A, const RefSCMatrix &x, RefSCMatrix &y) const
 computes y = A x
 
void times (unsigned int ij, const RefSymmSCMatrix &A, const RefSCMatrix &x, RefSCMatrix &y) const
 computes y = A x
 
RefSCVector dot_product (const RefSCMatrix &A, const RefSCMatrix &B) const
 Computes "dot" product of A and B: tr[i] = sum_j A[j][i] B[j][i].
 
unsigned int nrowblks (const RefSCMatrix &A) const
 Number of oo blocks in row dimension of A.
 
unsigned int ncolblks (const RefSCMatrix &A) const
 Number of oo blocks in column dimension of A.
 
unsigned int nblks (const RefSymmSCMatrix &A) const
 Number of oo blocks in dimension of A.
 
- Public Member Functions inherited from sc::MP2R12EnergyUtil_base
 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.
 
- 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::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 
- Protected Attributes inherited from sc::MP2R12EnergyUtil_base
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
 

Member Function Documentation

◆ diagonalize()

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

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

Implements sc::MP2R12EnergyUtil_base.

◆ dot_product()

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

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

Implements sc::MP2R12EnergyUtil_base.

◆ eigenvalues()

RefDiagSCMatrix sc::MP2R12EnergyUtil_Nondiag::eigenvalues ( const RefSymmSCMatrix & A) const
virtual

Computes eigenvalues of A.

Implements sc::MP2R12EnergyUtil_base.

◆ invert()

void sc::MP2R12EnergyUtil_Nondiag::invert ( RefSymmSCMatrix & A) const
virtual

Inverts A in-place.

Implements sc::MP2R12EnergyUtil_base.

◆ print() [1/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_base.

◆ print() [2/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_base.

◆ print() [3/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_base.

◆ solve_linear_system() [1/2]

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

Solves A*X = B.

Implements sc::MP2R12EnergyUtil_base.

◆ solve_linear_system() [2/2]

void sc::MP2R12EnergyUtil_Nondiag::solve_linear_system ( unsigned int ij,
const RefSymmSCMatrix & A,
RefSCMatrix & X,
const RefSCMatrix & B ) const
virtual

◆ times() [1/2]

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

computes y = A x

Implements sc::MP2R12EnergyUtil_base.

◆ times() [2/2]

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

computes y = A x

Implements sc::MP2R12EnergyUtil_base.

◆ transform()

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

B = U * A * U.t()

Implements sc::MP2R12EnergyUtil_base.


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.