MPQC
3.0.0-alpha
|
Class MP2R12EnergyUtil provides some misc functions to operate on (blocked) ijxy and xyxy matrices. More...
#include <chemistry/qc/mbptr12/mp2r12_energy_util.h>
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 &) | |
RefCount & | operator= (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 | |
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.
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.