Psi4
Public Member Functions | Private Member Functions | Private Attributes | List of all members
psi::PetiteList Class Reference

#include <petitelist.h>

Public Member Functions

 PetiteList (const std::shared_ptr< BasisSet > &, const std::shared_ptr< IntegralFactory > &, bool include_pure_transform=false)
 
 PetiteList (const std::shared_ptr< BasisSet > &, const IntegralFactory *, bool include_pure_transform=false)
 
 ~PetiteList ()
 
bool include_pure_transform () const
 
std::shared_ptr< BasisSetbasis ()
 The AO basis set used to create this petite list. More...
 
const IntegralFactoryintegral ()
 The integral factory used to create this petite list. More...
 
std::shared_ptr< PetiteListclone ()
 Create a clone of this petite list. More...
 
int nirrep () const
 Number of irreps. More...
 
int order () const
 The order of the group. More...
 
int atom_map (int n, int g) const
 
int shell_map (int n, int g) const
 
int unique_shell_map (int n, int g) const
 
int nfunction (int h) const
 
int nblocks () const
 
void print (std::string out="outfile")
 
unsigned short stablizer (int atom) const
 
int max_stablizer () const
 
unsigned short group () const
 
unsigned short dcr (unsigned short subgroup1, unsigned short subgroup2) const
 
int dcr_degeneracy (unsigned short group) const
 
unsigned short GnG (unsigned short group1, unsigned short group2) const
 
std::vector< int > bits_to_operator_list (unsigned short list)
 
void print_group (unsigned short group) const
 
Dimension AO_basisdim ()
 Returns the number of atomic orbitals in a convenient Dimension object. More...
 
Dimension SO_basisdim ()
 Returns the number of symmetry orbitals per irrep in a convenient Dimension object. More...
 
Matrixr (int g)
 
SO_blockcompute_aotoso_info ()
 
SharedMatrix aotoso ()
 
SharedMatrix sotoao ()
 
SharedMatrix evecs_to_AO_basis (SharedMatrix soevecs)
 

Private Member Functions

void init (double tol=0.05)
 

Private Attributes

int natom_
 
int nshell_
 
int nunique_shell_
 
int ng_
 
int nirrep_
 
int nblocks_
 
bool c1_
 
std::shared_ptr< BasisSetbasis_
 
const IntegralFactoryintegral_
 
bool include_pure_transform_
 
char * p1_
 
int ** atom_map_
 
int ** shell_map_
 
int ** unique_shell_map_
 
char * lamij_
 
int * nbf_in_ir_
 
unsigned short group_
 
unsigned short * stablizer_
 
int max_stablizer_
 

Constructor & Destructor Documentation

psi::PetiteList::PetiteList ( const std::shared_ptr< BasisSet > &  gbs,
const std::shared_ptr< IntegralFactory > &  ints,
bool  include_pure_transform = false 
)
psi::PetiteList::PetiteList ( const std::shared_ptr< BasisSet > &  gbs,
const IntegralFactory ints,
bool  include_pure_transform = false 
)
psi::PetiteList::~PetiteList ( )

Member Function Documentation

Dimension psi::PetiteList::AO_basisdim ( )

Returns the number of atomic orbitals in a convenient Dimension object.

SharedMatrix psi::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.

int psi::PetiteList::atom_map ( int  n,
int  g 
) const
inline

How a full atom maps to another with the specified symmetry operation

Parameters
nFull atom index
gOperation number for mapping
Returns
the atom n maps into when g is applied.
std::shared_ptr<BasisSet> psi::PetiteList::basis ( )
inline

The AO basis set used to create this petite list.

std::vector<int> psi::PetiteList::bits_to_operator_list ( unsigned short  list)
inline
std::shared_ptr< PetiteList > psi::PetiteList::clone ( void  )

Create a clone of this petite list.

SO_block * psi::PetiteList::compute_aotoso_info ( )

This function forms the mapping info from Cartesian AOs, to symmetry adapted pure (or Cartesian if the basis requires this) functions, storing the result in a sparse buffer.

Returns
A pointer to the newly-created sparse SO_Block (remember to delete it!).
unsigned short psi::PetiteList::dcr ( unsigned short  subgroup1,
unsigned short  subgroup2 
) const
inline

Returns the bit representation of the double coset representation.

int psi::PetiteList::dcr_degeneracy ( unsigned short  group) const
inline

Number of operators in the point group.

Parameters
groupGet this from dcr()
SharedMatrix psi::PetiteList::evecs_to_AO_basis ( SharedMatrix  soevecs)
unsigned short psi::PetiteList::GnG ( unsigned short  group1,
unsigned short  group2 
) const
inline
unsigned short psi::PetiteList::group ( ) const
inline

The bit representation of the symmetry operation in the point group.

bool psi::PetiteList::include_pure_transform ( ) const
inline
void psi::PetiteList::init ( double  tol = 0.05)
private
const IntegralFactory* psi::PetiteList::integral ( )
inline

The integral factory used to create this petite list.

int psi::PetiteList::max_stablizer ( ) const
inline
int psi::PetiteList::nblocks ( ) const
inline

Number of blocks in symmetry information. Should be same as nirrep().

int psi::PetiteList::nfunction ( int  h) const

Number of functions in irrep.

Parameters
hIrrep of interest.
int psi::PetiteList::nirrep ( void  ) const
inline

Number of irreps.

int psi::PetiteList::order ( ) const
inline

The order of the group.

void psi::PetiteList::print ( std::string  out = "outfile")
void psi::PetiteList::print_group ( unsigned short  group) const
Matrix* psi::PetiteList::r ( int  g)

Return the basis function rotation matrix R(g)

Parameters
gindex of the group operation
int psi::PetiteList::shell_map ( int  n,
int  g 
) const
inline

How a full shell index maps to another with the specified symmetry operation

Parameters
nFull shell index
gOperation number for mapping
Returns
the shell n maps into when g is applied.
Dimension psi::PetiteList::SO_basisdim ( )

Returns the number of symmetry orbitals per irrep in a convenient Dimension object.

SharedMatrix psi::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.

unsigned short psi::PetiteList::stablizer ( int  atom) const
inline

The symmetry operations that keep the atom unchanged in bit representation.

Parameters
atomThe atom of interest.
int psi::PetiteList::unique_shell_map ( int  n,
int  g 
) const
inline

How a unique shell index maps to an absolute with the specified symmetry operation

Parameters
nUnique shell index
gOperation number for mapping
Returns
the absolute shell n maps into when g is applied.

Member Data Documentation

int** psi::PetiteList::atom_map_
private
std::shared_ptr<BasisSet> psi::PetiteList::basis_
private
bool psi::PetiteList::c1_
private
unsigned short psi::PetiteList::group_
private
bool psi::PetiteList::include_pure_transform_
private
const IntegralFactory* psi::PetiteList::integral_
private
char* psi::PetiteList::lamij_
private
int psi::PetiteList::max_stablizer_
private
int psi::PetiteList::natom_
private
int* psi::PetiteList::nbf_in_ir_
private
int psi::PetiteList::nblocks_
private
int psi::PetiteList::ng_
private
int psi::PetiteList::nirrep_
private
int psi::PetiteList::nshell_
private
int psi::PetiteList::nunique_shell_
private
char* psi::PetiteList::p1_
private
int** psi::PetiteList::shell_map_
private
unsigned short* psi::PetiteList::stablizer_
private
int** psi::PetiteList::unique_shell_map_
private

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