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 > > > 

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

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 ( )

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 ( )
int psi::MultipoleSymmetry::component_symmetry ( int  i) const
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_

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

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

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

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

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