MPQC  3.0.0-alpha
sc::PetiteList Class Reference

PetiteList is a petite list (see Dupuis & King, IJQC 11,613,(1977) ) that can be used for constructing symmetry-adapted basis functions (`‘symmetry orbitals’', SO for short) as well as transforming operators and functions from AO to SO basis, and vice versa. More...

#include <chemistry/qc/basis/petite.h>

Inheritance diagram for sc::PetiteList:
sc::RefCount

Public Member Functions

 PetiteList (const Ref< GaussianBasisSet > &, const Ref< Integral > &)
 
Ref< GaussianBasisSetbasis ()
 
Ref< Integralintegral ()
 
Ref< PetiteListclone ()
 
int nirrep () const
 
int order () const
 
int atom_map (int n, int g) const
 
int shell_map (int n, int g) const
 
int lambda (int ij) const
 
int lambda (int i, int j) const
 
int in_p1 (int n) const
 
int in_p2 (int ij) const
 
int in_p2 (int i, int j) const
 Same as previous, except for it takes i and j separately.
 
int in_p4 (int ij, int kl, int i, int j, int k, int l) const
 
int in_p4 (int i, int j, int k, int l) const
 Same as previous, except for doesn't assume ij > kl and recomputes them.
 
int nfunction (int i) const
 
int nblocks () const
 
void print (std::ostream &=ExEnv::out0(), int verbose=1)
 
RefSCDimension AO_basisdim ()
 blocked AO dimension (if symmetry = c1, equivalent to SO_basisdim(); otherwise number of blocks = 1, the lone subdimension is blocked by shells)
 
RefSCDimension SO_basisdim ()
 blocked SO dimension (number of blocks = order of the point group, each subdimension has 1 block)
 
RefSCMatrix r (int g)
 return the basis function rotation matrix R(g) More...
 
SO_blockaotoso_info ()
 
RefSCMatrix aotoso ()
 
RefSCMatrix sotoao ()
 
void symmetrize (const RefSymmSCMatrix &skel, const RefSymmSCMatrix &sym)
 
RefSymmSCMatrix to_SO_basis (const RefSymmSCMatrix &O_ao)
 converts an operator matrix from AO to SO basis. More...
 
RefSymmSCMatrix to_AO_basis (const RefSymmSCMatrix &O_so)
 converts an operator matrix from SO to AO basis. More...
 
RefSCMatrix evecs_to_AO_basis (const RefSCMatrix &)
 converts a set of functions (vectors) from SO to AO basis. More...
 
RefSCMatrix evecs_to_SO_basis (const RefSCMatrix &)
 converts a set of functions (vectors) from AO to SO basis. More...
 
- 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 &)
 

Detailed Description

PetiteList is a petite list (see Dupuis & King, IJQC 11,613,(1977) ) that can be used for constructing symmetry-adapted basis functions (`‘symmetry orbitals’', SO for short) as well as transforming operators and functions from AO to SO basis, and vice versa.

N.B. Same basis set assumed for all centers. If need generalization for different basis sets see GPetiteList2 and GPetiteList4.

Member Function Documentation

◆ aotoso()

RefSCMatrix sc::PetiteList::aotoso ( )
Returns
the AO->SO coefficient matrix. The columns correspond to SOs (see SO_basisdim() ) and rows to AOs (see AO_basisdim() ).

This matrix can be used to transform operators from AO to SO basis and functions from SO to AO basis. An operator in the SO basis is obtained by $ X^T O_ao X$, where $X$ is the return value of this function and $ O_ao $ is the operator in the AO basis. A function in the AO basis is obtained by $ X F_so $, where $ F_so $ is the function in the SO basis.

◆ aotoso_info()

SO_block* sc::PetiteList::aotoso_info ( )
Returns
information about the transformation from AOs to SOs

◆ evecs_to_AO_basis()

RefSCMatrix sc::PetiteList::evecs_to_AO_basis ( const RefSCMatrix )

converts a set of functions (vectors) from SO to AO basis.

Parameters
F_sovectors in SO basis
Returns
non-blocked AO basis vectors

◆ evecs_to_SO_basis()

RefSCMatrix sc::PetiteList::evecs_to_SO_basis ( const RefSCMatrix )

converts a set of functions (vectors) from AO to SO basis.

Parameters
F_aovectors in AO basis, blocked or nonblocked.
Returns
blocked SO basis vectors

◆ r()

RefSCMatrix sc::PetiteList::r ( int  g)

return the basis function rotation matrix R(g)

Parameters
gindex of the group operation

◆ sotoao()

RefSCMatrix sc::PetiteList::sotoao ( )
Returns
the SO->AO coefficient matrix (the inverse of AO->SO; for Abelian point groups it is a transpose of AO->SO matrix). The columns correspond to AOs (see AO_basisdim() ) and rows to SOs (see SO_basisdim() ).

This matrix can be used to transform operators from SO to AO basis and functions from AO to SO basis. An operator in the AO basis is obtained by $ X^T O_so X$, where $X$ is the return value of this function and $ O_so $ is the operator in the SO basis. A function in the SO basis is obtained by $ X F_ao $, where $ F_ao $ is the function in the AO basis.

◆ to_AO_basis()

RefSymmSCMatrix sc::PetiteList::to_AO_basis ( const RefSymmSCMatrix O_so)

converts an operator matrix from SO to AO basis.

Parameters
O_soblocked operator matrix in SO basis.
Returns
non-blocked AO basis matrix.

Referenced by sc::compute_obints().

◆ to_SO_basis()

RefSymmSCMatrix sc::PetiteList::to_SO_basis ( const RefSymmSCMatrix O_ao)

converts an operator matrix from AO to SO basis.

Parameters
O_aooperator matrix in AO basis, either blocked or non-blocked.
Returns
blocked SO basis matrix.

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

Generated at Sun Jan 26 2020 23:24:09 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.