Psi4
Public Member Functions | Private Attributes | List of all members
DCD Class Reference

#include <dcd.h>

Public Member Functions

 DCD (int pg)
 
 ~DCD ()
 
int subgroup_dimensions (int group)
 Takes a densely numbered subgroup and returns its dimension. More...
 
int bits_to_dense_numbering (int group)
 
int intersection (int group1, int group2) const
 
const int * dcr (int group1, int group2) const
 

Private Attributes

int nsub_
 The number of subgroups in the current point group, pg_. More...
 
int * subgroup_dimensions_
 The dimensions of each subgroup. More...
 
int *** dcr_
 The lookup array for the DCR list of operators for all possiblepairs of stabilizer subgroups. More...
 
int ** gng_
 The lookup array for the intersection of all possible pairs of subgroups. More...
 
std::map< int, int > bits_to_subgroup_
 The bit representation to dense numbering mapping. More...
 
int * C1_operators_
 The lists of operators in each possible subgroup. More...
 
int * C2_z_operators_
 
int * C2_y_operators_
 
int * C2_x_operators_
 
int * D2_operators_
 
int * Ci_operators_
 
int * Cs_xy_operators_
 
int * C2h_z_operators_
 
int * Cs_xz_operators_
 
int * C2h_y_operators_
 
int * C2v_x_operators_
 
int * Cs_yz_operators_
 
int * C2h_x_operators_
 
int * C2v_y_operators_
 
int * C2v_z_operators_
 
int * D2h_operators_
 

Detailed Description

Provides the data needed to implement Davidson's DCD approach to symmetrizing integrals E. R. Davidson, J. Chem. Phys., 62, 400 (1975) Do not modify this file! It was autogenerated by the C++ program DCD.cplusplus in the source folder. Two ordering schemes are used here. Dense numbering is a point group specific scheme, which runs from zero to the number of subgroups in the point group. This is used for the arrays, to make them as compact as possible. Bitwise numbering represents point groups by considering each bit as a symmetry operation. This is not dense, but allows me to do group theory very conveniently, so it's used internally. Andy Simmonett.

Constructor & Destructor Documentation

DCD::DCD ( int  pg)
inline

Builds a DCD object, to perform double coset decompositions

Parameters
pgthe point group of the molecule, in bitwise representation
DCD::~DCD ( )
inline

Member Function Documentation

int DCD::bits_to_dense_numbering ( int  group)
inline

Takes a point group expressed as a bitset for each operator, and returns the corresponding dense numbering representation for this point group.

const int* DCD::dcr ( int  group1,
int  group2 
) const
inline

Returns the list of operators (numbered appropriately for the current point group) for the pair of stabilizer subgroups group1 and group2, which are densely numbered. The first element is the size of the list, so iterate as follows: int* dcr = dcr(g1, g2); int size = dcr[0]; for(int i = 1; i <= size; ++i) do something with dcr[i]...

int DCD::intersection ( int  group1,
int  group2 
) const
inline

Returns the intersection (in dense subgroup numbering) of the two subgroups, group1 and group2, which are also in the dense ordering scheme.

int DCD::subgroup_dimensions ( int  group)
inline

Takes a densely numbered subgroup and returns its dimension.

Member Data Documentation

std::map<int, int> DCD::bits_to_subgroup_
private

The bit representation to dense numbering mapping.

int* DCD::C1_operators_
private

The lists of operators in each possible subgroup.

int* DCD::C2_x_operators_
private
int* DCD::C2_y_operators_
private
int* DCD::C2_z_operators_
private
int* DCD::C2h_x_operators_
private
int* DCD::C2h_y_operators_
private
int* DCD::C2h_z_operators_
private
int* DCD::C2v_x_operators_
private
int* DCD::C2v_y_operators_
private
int* DCD::C2v_z_operators_
private
int* DCD::Ci_operators_
private
int* DCD::Cs_xy_operators_
private
int* DCD::Cs_xz_operators_
private
int* DCD::Cs_yz_operators_
private
int* DCD::D2_operators_
private
int* DCD::D2h_operators_
private
int*** DCD::dcr_
private

The lookup array for the DCR list of operators for all possiblepairs of stabilizer subgroups.

int** DCD::gng_
private

The lookup array for the intersection of all possible pairs of subgroups.

int DCD::nsub_
private

The number of subgroups in the current point group, pg_.

int* DCD::subgroup_dimensions_
private

The dimensions of each subgroup.


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