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

#include <multipolesymmetry.h>

Public Member Functions

 MultipoleSymmetry (int order, std::shared_ptr< Molecule > mol, std::shared_ptr< IntegralFactory > ints, std::shared_ptr< MatrixFactory > mats)
 
virtual ~MultipoleSymmetry ()
 
int address_of_component (int lx, int ly, int lz)
 
int component_symmetry (int i) const
 
std::vector< SharedMatrixcreate_matrices (const std::string &basename, bool ignore_symmetry=false)
 

Private Member Functions

void common_init ()
 

Private Attributes

int order_
 
std::shared_ptr< Moleculemolecule_
 
std::shared_ptr< IntegralFactoryintegral_
 
std::shared_ptr< MatrixFactorymatrix_
 
std::vector< int > component_symmetry_
 
std::map< int, std::map< int,
std::map< int, int > > > 
addresses_
 

Constructor & Destructor Documentation

psi::MultipoleSymmetry::MultipoleSymmetry ( int  order,
std::shared_ptr< Molecule mol,
std::shared_ptr< IntegralFactory ints,
std::shared_ptr< MatrixFactory mats 
)

Constructor Constructs an object that determines the symmetry of the different components of all multipoles up to (and including) L=order. For all componenets of a given order use the OperatorSymmetry class instead

Parameters
orderOrder of the highest multipole (1 = dipole, 2 = quadrupole, etc.)
molMolecule the the multipole will be computed for. Needed to obtain point group object.
intsIntegral factory. Needed for creation of ShellRotation objects.
matsMatrix factory. Used by create_matrices to create matrices of the proper size and symmetry.
psi::MultipoleSymmetry::~MultipoleSymmetry ( )
virtual

Member Function Documentation

int psi::MultipoleSymmetry::address_of_component ( int  lx,
int  ly,
int  lz 
)

Returns the address in the array of the {lx, ly, lz} moment.

void psi::MultipoleSymmetry::common_init ( void  )
private
int psi::MultipoleSymmetry::component_symmetry ( int  i) const
inline
std::vector< SharedMatrix > psi::MultipoleSymmetry::create_matrices ( const std::string &  basename,
bool  ignore_symmetry = false 
)

Member Data Documentation

std::map< int, std::map< int, std::map< int, int > > > psi::MultipoleSymmetry::addresses_
private

A 3D map to hold the addresses of each {lx, ly, lz} combination

std::vector<int> psi::MultipoleSymmetry::component_symmetry_
private

The symmetry of each component of the multipole. Length = INT_NCART(order_)

std::shared_ptr<IntegralFactory> psi::MultipoleSymmetry::integral_
private
std::shared_ptr<MatrixFactory> psi::MultipoleSymmetry::matrix_
private
std::shared_ptr<Molecule> psi::MultipoleSymmetry::molecule_
private
int psi::MultipoleSymmetry::order_
private

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