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

Public Member Functions

 MP2R12EnergyUtil_Diag_SameSpin (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.
 
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.
 
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_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
 

Constructor & Destructor Documentation

◆ MP2R12EnergyUtil_Diag_SameSpin()

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

Member Function Documentation

◆ diagonalize()

void sc::MP2R12EnergyUtil_Diag_SameSpin::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_Diag.

◆ dot_product()

RefSCVector sc::MP2R12EnergyUtil_Diag_SameSpin::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_Diag.

◆ eigenvalues()

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

Computes eigenvalues of A.

Implements sc::MP2R12EnergyUtil_Diag.

◆ get() [1/4]

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

gets ij block of A

Implements sc::MP2R12EnergyUtil_Diag.

◆ get() [2/4]

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

gets ij block of A

Implements sc::MP2R12EnergyUtil_Diag.

◆ get() [3/4]

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

gets ij block of A

Implements sc::MP2R12EnergyUtil_Diag.

◆ get() [4/4]

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

gets ij block of A

Implements sc::MP2R12EnergyUtil_Diag.

◆ invert()

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

Inverts A in-place.

Implements sc::MP2R12EnergyUtil_Diag.

◆ print() [1/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_Diag.

◆ print() [2/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_Diag.

◆ print() [3/3]

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

Prints A.

Implements sc::MP2R12EnergyUtil_Diag.

◆ put() [1/4]

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

puts ij block into A

Implements sc::MP2R12EnergyUtil_Diag.

◆ put() [2/4]

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

puts ij block into A

Implements sc::MP2R12EnergyUtil_Diag.

◆ put() [3/4]

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

puts ij block into A

Implements sc::MP2R12EnergyUtil_Diag.

◆ put() [4/4]

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

puts ij block into A

Implements sc::MP2R12EnergyUtil_Diag.

◆ solve_linear_system() [1/2]

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

Solves A*X = B.

Implements sc::MP2R12EnergyUtil_Diag.

◆ solve_linear_system() [2/2]

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

◆ times() [1/2]

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

computes y = A x

Implements sc::MP2R12EnergyUtil_Diag.

◆ times() [2/2]

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

computes y = A x

Implements sc::MP2R12EnergyUtil_Diag.

◆ transform()

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

B = U * A * U.t()

Implements sc::MP2R12EnergyUtil_Diag.


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.