MPQC  3.0.0-alpha
sc::RedundantCartesianIter Class Referenceabstract

RedundantCartesianIter objects loop through all possible combinations of a given number of axes. More...

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

Inheritance diagram for sc::RedundantCartesianIter:
sc::RedundantCartesianIterCCA sc::RedundantCartesianIterGAMESS sc::RedundantCartesianIterV3

Public Member Functions

 RedundantCartesianIter (int l)
 Create a object for the given angular momentum.
 
virtual int bfn ()=0
 Return the current Cartesian basis function number.
 
void start ()
 Initialize the iterator.
 
void next ()
 Move to the next combination of axes.
 
 operator int ()
 Returns nonzero if the iterator currently hold valid data.
 
int a ()
 The current exponent of x.
 
int b ()
 The current exponent of y.
 
int c ()
 The current exponent of z.
 
int l ()
 The angular momentum.
 
int l (int i)
 Returns a() if i==0, b() if i==1, and c() if i==2.
 
int axis (int i)
 Return the i'th axis.
 

Detailed Description

RedundantCartesianIter objects loop through all possible combinations of a given number of axes.

The difference between this class and CartesianIter is that the latter considers quanta equivalent, e.g. xy and yx are the same, whereas this class considers quanta unique (xy != yx). Thus CartesianIter(2) loops over 6 values, whereas RedundantCartesianIter(2) loops over 9, etc.

This class is used to compute the transformation matrices that maps a set of Cartesian functions to another set of Cartesian functions in a rotated coordinate system.


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

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