LIBINT 2.9.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libint2::Shell Struct Reference

generally-contracted Solid-Harmonic/Cartesion Gaussian Shell More...

#include <shell.h>

Classes

struct  Contraction
 contracted Gaussian = angular momentum + sph/cart flag + contraction coefficients More...
 
struct  defaultable_boolean
 

Public Types

typedef double real_t
 

Public Member Functions

 Shell (const Shell &)=default
 
 Shell (Shell &&other) noexcept
 
Shelloperator= (const Shell &)=default
 
Shelloperator= (Shell &&other) noexcept
 
 Shell (svector< real_t > _alpha, svector< Contraction > _contr, std::array< real_t, 3 > _O, bool embed_normalization_into_coefficients=true)
 
Shellmove (std::array< real_t, 3 > new_origin)
 
size_t cartesian_size () const
 
size_t size () const
 
size_t ncontr () const
 
size_t nprim () const
 
bool operator== (const Shell &other) const
 
bool operator!= (const Shell &other) const
 
real_t coeff_normalized (size_t c, size_t p) const
 
Shell extract_primitive (size_t p, bool unit_normalized=true) const
 extract primitive shell
 

Static Public Member Functions

static char am_symbol (size_t l)
 
static unsigned short am_symbol_to_l (char am_symbol)
 inverse of am_symbol()
 
static bool do_enforce_unit_normalization (defaultable_boolean flag=defaultable_boolean())
 sets and/or reports whether the auto-renormalization to unity is set if called without arguments, returns the current value of the flag otherwise, will set the flag to flag
 
static const Shellunit ()
 

Public Attributes

svector< real_t > alpha
 exponents
 
svector< Contractioncontr
 contractions
 
std::array< real_t, 3 > O
 origin
 
svector< real_t > max_ln_coeff
 maximum ln of (absolute) contraction coefficient for each primitive
 

Detailed Description

generally-contracted Solid-Harmonic/Cartesion Gaussian Shell

A simple-to-use Gaussian shell. Here's an example of how to create an s+p shell of the STO-3G basis on the oxygen atom located at the origin.

*  auto s = Shell{
*                  {5.033151300, 1.169596100, 0.380389000},
*                  {
*                    {0, false, {-0.09996723, 0.39951283, 0.70011547}},
*                    {1, false, {0.15591627, 0.60768372, 0.39195739}}
*                  },
*                   {{0.0, 0.0, 0.0}}
*                };
*  
Note
The contraction coefficients correspond to unity-normalized primitives. EMSL Gaussian Basis Set Database, as well as basis set libraries embedded into most quantum chemistry programs use this convention. However, coefficients are automatically converted internally to refer to normalization-free primitives before computing integrals (see Shell::renorm() ).

Constructor & Destructor Documentation

◆ Shell()

libint2::Shell::Shell ( svector< real_t > _alpha,
svector< Contraction > _contr,
std::array< real_t, 3 > _O,
bool embed_normalization_into_coefficients = true )
inline
Parameters
embed_normalization_into_coefficientsif true, will embed normalization factors into coefficients, else will use the coefficients in _contr as given

Member Function Documentation

◆ am_symbol()

static char libint2::Shell::am_symbol ( size_t l)
inlinestatic
Parameters
langular momentum quantum number
Returns
(lower-case) letter symbol corresponding to l ; e.g., s for l=0, p for l=1, etc.
Exceptions
std::invalid_argumentif l is greater than 20

Referenced by am_symbol_to_l(), and libint2::molden::Export::write_basis().

◆ am_symbol_to_l()

static unsigned short libint2::Shell::am_symbol_to_l ( char am_symbol)
inlinestatic

inverse of am_symbol()

Parameters
am_symbolletter symbol denoting orbital angular momentum l ; e.g., s for l=0, p for l=1, etc.
Note
this function is case insensitive, i.e. ‘am_symbol_to_l('s’) == am_symbol_to_l('S')`
Returns
angular momentum quantum number
See also
am_symbol()

References am_symbol().

◆ coeff_normalized()

real_t libint2::Shell::coeff_normalized ( size_t c,
size_t p ) const
inline
Returns
the coefficient of primitive p in contraction c assuming unit normalized primitive (coeff contains coefficients of normalization-free primitives;
See also
Shell::renorm() )

References alpha, and contr.

Referenced by libint2::molden::Export::write_basis().

◆ do_enforce_unit_normalization()

static bool libint2::Shell::do_enforce_unit_normalization ( defaultable_boolean flag = defaultable_boolean())
inlinestatic

sets and/or reports whether the auto-renormalization to unity is set if called without arguments, returns the current value of the flag otherwise, will set the flag to flag

Note
by default, shells WILL be re-normalized to unity

◆ extract_primitive()

Shell libint2::Shell::extract_primitive ( size_t p,
bool unit_normalized = true ) const
inline

extract primitive shell

Parameters
pthe index of the primitive to extract
unit_normalizedwhether to produce unit-normalized primitive; set to false to produce normalization-free primitive
Returns
a primitive Shell

References alpha, contr, and O.

◆ unit()

static const Shell & libint2::Shell::unit ( )
inlinestatic
Returns
"unit" Shell, with exponent=0. and coefficient=1., located at the origin

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