MADNESS  0.10.1
Namespaces | Classes | Typedefs | Enumerations | Functions
slymer Namespace Reference

Namespaces

 Properties
 

Classes

struct  Atom
 An atom (symbol and position). More...
 
class  BasisFunction
 Abstract base class for generic basis functions. More...
 
struct  BasisShell
 Store information on a shell of basis functions as it's being read. More...
 
class  ES_Interface
 Abstract base class for interfacing with electronic structure codes. More...
 
class  Gaussian_Functor
 
class  GaussianFunction
 A Gaussian basis function used by chemistry electronic structure codes. More...
 
class  NWChem_Interface
 Class for interfacing with NWChem (tested on version 6.6). More...
 
class  PolynomialCoeffs
 Array for storing coefficients of a polynomial of three variables with specified degree. More...
 
class  PrimitiveGaussian
 A primitive Gaussian function. More...
 

Typedefs

using Atoms = std::vector< Atom >
 A set of atoms. More...
 
using BasisSet = std::vector< std::reference_wrapper< BasisFunction > >
 Type for a basis set (collection of basis functions). More...
 

Enumerations

enum class  GaussianType {
  s , px , py , pz ,
  dxx , dxy , dxz , dyy ,
  dyz , dzz , fxxx , fxxy ,
  fxxz , fxyy , fxyz , fxzz ,
  fyyy , fyyz , fyzz , fzzz ,
  dzzmrr , dxxmyy , fxyymxxx , fxxzmyyz ,
  fxzzmrrx , fzzzmrrz , fyzzmrry , fxxymyyy ,
  gxxxx , gxxxy , gxxxz , gxxyy ,
  gxxyz , gxxzz , gxyyy , gxyyz ,
  gxyzz , gxzzz , gyyyy , gyyyz ,
  gyyzz , gyzzz , gzzzz , gxydx2my2 ,
  gyzdx2my2 , gxydz2mr2 , gyzdz2mr2 , gzero ,
  gxzdz2mr2 , gx2my2dz2mr2 , gxzdx2my2 , gx4mx2y2py4 ,
  hxxxxx , hxxxxy , hxxxxz , hxxxyy ,
  hxxxyz , hxxxzz , hxxyyy , hxxyyz ,
  hxxyzz , hxxzzz , hxyyyy , hxyyyz ,
  hxyyzz , hxyzzz , hxzzzz , hyyyyy ,
  hyyyyz , hyyyzz , hyyzzz , hyzzzz ,
  hzzzzz , hm5 , hm4 , hm3 ,
  hm2 , hm1 , hzero , hp1 ,
  hp2 , hp3 , hp4 , hp5
}
 Implemented types of Gaussian orbitals (from quantum chemistry codes). More...
 

Functions

template<typename T >
std::vector< std::reference_wrapper< const T > > cast_basis (const BasisSet &bset)
 Convert a generic basis set to basis functions with the specific type. More...
 
PolynomialCoeffs operator* (const double c, const PolynomialCoeffs &poly)
 Multiply a polynomial by a constant value. More...
 
GaussianFunction operator* (const double lhs, const GaussianFunction &rhs)
 Multiply a GaussianFunction by a scalar. More...
 
static std::ostream & operator<< (std::ostream &out, const BasisShell &bs)
 
template<typename T >
static T read_endian (std::istream &in, const bool swap)
 Read bytes from a binary file into the specified type. More...
 

Typedef Documentation

◆ Atoms

using slymer::Atoms = typedef std::vector<Atom>

A set of atoms.

◆ BasisSet

using slymer::BasisSet = typedef std::vector<std::reference_wrapper<BasisFunction> >

Type for a basis set (collection of basis functions).

Enumeration Type Documentation

◆ GaussianType

enum slymer::GaussianType
strong

Implemented types of Gaussian orbitals (from quantum chemistry codes).

Enumerator
px 
py 
pz 
dxx 
dxy 
dxz 
dyy 
dyz 
dzz 
fxxx 
fxxy 
fxxz 
fxyy 
fxyz 
fxzz 
fyyy 
fyyz 
fyzz 
fzzz 
dzzmrr 
dxxmyy 
fxyymxxx 
fxxzmyyz 
fxzzmrrx 
fzzzmrrz 
fyzzmrry 
fxxymyyy 
gxxxx 
gxxxy 
gxxxz 
gxxyy 
gxxyz 
gxxzz 
gxyyy 
gxyyz 
gxyzz 
gxzzz 
gyyyy 
gyyyz 
gyyzz 
gyzzz 
gzzzz 
gxydx2my2 
gyzdx2my2 
gxydz2mr2 
gyzdz2mr2 
gzero 
gxzdz2mr2 
gx2my2dz2mr2 
gxzdx2my2 
gx4mx2y2py4 
hxxxxx 
hxxxxy 
hxxxxz 
hxxxyy 
hxxxyz 
hxxxzz 
hxxyyy 
hxxyyz 
hxxyzz 
hxxzzz 
hxyyyy 
hxyyyz 
hxyyzz 
hxyzzz 
hxzzzz 
hyyyyy 
hyyyyz 
hyyyzz 
hyyzzz 
hyzzzz 
hzzzzz 
hm5 
hm4 
hm3 
hm2 
hm1 
hzero 
hp1 
hp2 
hp3 
hp4 
hp5 

Function Documentation

◆ cast_basis()

template<typename T >
std::vector<std::reference_wrapper<const T> > slymer::cast_basis ( const BasisSet bset)

Convert a generic basis set to basis functions with the specific type.

Exceptions
std::runtime_errorif a basis function in the basis set is not of the specified type.
Template Parameters
TThe intended type of each basis function.
Parameters
[in]bsetThe basis set.
Returns
A vector with cast references to the basis functions.

References T().

◆ operator*() [1/2]

PolynomialCoeffs slymer::operator* ( const double  c,
const PolynomialCoeffs poly 
)
inline

Multiply a polynomial by a constant value.

Parameters
[in]cThe constant value.
[in]polyThe polynomial.
Returns
The product of c and the polynomial.

References c.

◆ operator*() [2/2]

GaussianFunction slymer::operator* ( const double  lhs,
const GaussianFunction rhs 
)
inline

Multiply a GaussianFunction by a scalar.

Parameters
[in]lhsThe scalar multiplicative factor.
[in]rhsThe GaussianFunction.
Returns
The scaled GaussianFunction.

◆ operator<<()

static std::ostream& slymer::operator<< ( std::ostream &  out,
const BasisShell bs 
)
static

◆ read_endian()

template<typename T >
static T slymer::read_endian ( std::istream &  in,
const bool  swap 
)
static

Read bytes from a binary file into the specified type.

Attempts to account for the endian-ness of the binary data. This should hopefully make the routine more robust to running NWChem jobs on one machine and processing the files on another.

Template Parameters
TType of data to be read (only really need the size).
Parameters
[in,out]inThe input stream.
[in]swapChange the endian-ness of the read data?
Returns
The read data, in the requested type.

References madness::swap(), and T().