MPQC  3.0.0-alpha
sc::MP2R12EnergyUtil_Diag_DifferentSpin Class Reference

Class MP2R12EnergyUtil provides some misc functions to operate on (blocked) ijxy and xyxy matrices. More...

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

Inheritance diagram for sc::MP2R12EnergyUtil_Diag_DifferentSpin:
sc::MP2R12EnergyUtil_Diag sc::RefCount

Public Member Functions

 MP2R12EnergyUtil_Diag_DifferentSpin (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. More...
 
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.
 
void get (unsigned int ij, const RefSCMatrix &A, const RefSCVector &Aij) const
 gets ij block of A
 
void get (unsigned int ij, const RefSCMatrix &A, const RefSCMatrix &Aij) const
 gets ij block of A
 
void get (unsigned int ij, const RefSymmSCMatrix &A, const RefSymmSCMatrix &Aij) const
 gets ij block of A
 
void get (unsigned int ij, const RefDiagSCMatrix &A, const RefDiagSCMatrix &Aij) const
 gets ij block of A
 
void put (unsigned int ij, const RefSCMatrix &A, const RefSCVector &Aij) const
 puts ij block into A
 
void put (unsigned int ij, const RefSCMatrix &A, const RefSCMatrix &Aij) const
 puts ij block into A
 
void put (unsigned int ij, const RefSymmSCMatrix &A, const RefSymmSCMatrix &Aij) const
 puts ij block into A
 
void put (unsigned int ij, const RefDiagSCMatrix &A, const RefDiagSCMatrix &Aij) const
 puts ij block into 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].
 
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.
 
- Public Member Functions inherited from sc::MP2R12EnergyUtil_Diag
 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.
 
- 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...
 

Additional Inherited Members

- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 
- Protected Attributes inherited from sc::MP2R12EnergyUtil_Diag
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
 

Detailed Description

Class MP2R12EnergyUtil provides some misc functions to operate on (blocked) ijxy and xyxy matrices.

If Diag is true, then each xy block is the same size as ij, and ijxy and xyxy blocks are "diagonal". f12-f12 matrix then has nf12 by nf12 blocks, each with diagonal structure.

Constructor & Destructor Documentation

◆ MP2R12EnergyUtil_Diag_DifferentSpin()

sc::MP2R12EnergyUtil_Diag_DifferentSpin::MP2R12EnergyUtil_Diag_DifferentSpin ( 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.

nocc_act is the number of active occupied orbitals.


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.