LIBINT  2.6.0
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
libint2::CartesianMultipoleQuanta< NDIM > Class Template Reference

Represents quantum numbers of cartesian multipole operator. More...

#include <multipole.h>

Inheritance diagram for libint2::CartesianMultipoleQuanta< NDIM >:
Inheritance graph
[legend]
Collaboration diagram for libint2::CartesianMultipoleQuanta< NDIM >:
Collaboration graph
[legend]

Public Member Functions

 CartesianMultipoleQuanta (const CartesianMultipoleQuanta &other)
 
CartesianMultipoleQuantaoperator= (const CartesianMultipoleQuanta &other)
 
CartesianMultipoleQuantaoperator+= (const CartesianMultipoleQuanta &other)
 
CartesianMultipoleQuantaoperator-= (const CartesianMultipoleQuanta &other)
 
unsigned int operator[] (unsigned int xyz) const
 returns the number of quanta along xyz
 
void inc (unsigned int xyz, unsigned int c=1u)
 Add c quanta along xyz.
 
void dec (unsigned int xyz, unsigned int c=1u)
 Subtract c quanta along xyz. If impossible, invalidate the object, but do not change its quanta!
 
unsigned int norm () const
 Returns the sum of quantum numbers.
 
bool zero () const
 norm() == 0
 
bool valid () const
 Return false if this object is invalid.
 
LIBINT2_UINT_LEAST64 key () const
 Implements Hashable<unsigned>::key()
 
std::string label () const
 Return a compact label.
 
void print (std::ostream &os=std::cout) const
 Print out the content.
 

Static Public Attributes

const static constexpr unsigned max_qn = LIBINT_CARTGAUSS_MAX_AM
 
static const unsigned max_key = NDIM == 3 ? (1 + max_qn)*(2 + max_qn)*(3 + max_qn)/6 : (1+max_qn)
 The range of keys is [0,max_key). More...
 

Protected Member Functions

void invalidate ()
 make this object invalid
 

Additional Inherited Members

- Public Types inherited from libint2::Hashable< LIBINT2_UINT_LEAST64, ReferToKey >
typedef KeyTraits< LIBINT2_UINT_LEAST64 >::ReturnType KeyReturnType
 
- Protected Attributes inherited from libint2::Hashable< LIBINT2_UINT_LEAST64, ReferToKey >
KeyStore< LIBINT2_UINT_LEAST64, OwnKey< KeyMP >::result > key_
 

Detailed Description

template<unsigned NDIM = 3>
class libint2::CartesianMultipoleQuanta< NDIM >

Represents quantum numbers of cartesian multipole operator.

Member Data Documentation

◆ max_key

template<unsigned NDIM = 3>
const unsigned libint2::CartesianMultipoleQuanta< NDIM >::max_key = NDIM == 3 ? (1 + max_qn)*(2 + max_qn)*(3 + max_qn)/6 : (1+max_qn)
static

The range of keys is [0,max_key).

Note
for NDIM=3 the formula is easily derived by summing (L+1)(L+2)/2 up to max_qn

Referenced by libint2::CartesianMultipoleQuanta< NDIM >::key().


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