sc::GaussianBasisSet(3)

NAME
sc::GaussianBasisSet - The GaussianBasisSet class is used describe a basis set composed of atomic gaussian orbitals.

SYNOPSIS

#include <gaussbas.h>

Inherits sc::SavableState.

  Public Methods
GaussianBasisSet (const Ref< KeyVal > &)
The KeyVal constructor.
GaussianBasisSet (StateIn &)
virtual ~GaussianBasisSet ()
void save_data_state (StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
const char * name () const
Return the name of the basis set.
Ref< Molecule > molecule () const
Return the Molecule object.
Ref< SCMatrixKit > matrixkit ()
Returns the SCMatrixKit that is to be used for AO bases.
Ref< SCMatrixKit > so_matrixkit ()
Returns the SCMatrixKit that is to be used for SO bases.
RefSCDimension basisdim ()
Returns the SCDimension object for the dimension.
int ncenter () const
Return the number of centers.
int nshell () const
Return the number of shells.
int nshell_on_center (int icenter) const
Return the number of shells on the given center.
int shell_on_center (int icenter, int shell) const
Return an overall shell number, given a center and the shell number on that center.
int shell_to_center (int ishell) const
Return the center on which the given shell is located.
int shell_to_primitive (int ishell) const
Return the overall index of the first primitive from the given shell.
int nbasis () const
Return the number of basis functions.
int nbasis_on_center (int icenter) const
Return the number of basis functions on the given center.
int nprimitive () const
Return the number of primitive Gaussians.
int max_nfunction_in_shell () const
Return the maximum number of functions that any shell has.
int max_ncartesian_in_shell (int aminc=0) const
Return the maximum number of Cartesian functions that any shell has.
int max_nprimitive_in_shell () const
Return the maximum number of primitive Gaussian that any shell has.
int max_angular_momentum () const
Return the highest angular momentum in any shell.
int max_ncontraction () const
Return the maximum number of Gaussians in a contraction in any shell.
int max_am_for_contraction (int con) const
Return the maximum angular momentum found in the given contraction number for any shell.
int max_cartesian () const
Return the maximum number of Cartesian functions in any shell.
int shell_to_function (int i) const
Return the number of the first function in the given shell.
int function_to_shell (int i) const
Return the shell to which the given function belongs.
const GaussianShell & operator() (int i) const
Return a reference to GaussianShell number i.
GaussianShell & operator() (int i)
Return a reference to GaussianShell number i.
const GaussianShell & operator[] (int i) const
Return a reference to GaussianShell number i.
GaussianShell & operator[] (int i)
Return a reference to GaussianShell number i.
const GaussianShell & shell (int i) const
Return a reference to GaussianShell number i.
GaussianShell & shell (int i)
Return a reference to GaussianShell number i.
const GaussianShell & operator() (int icenter, int ishell) const
Return a reference to GaussianShell number ishell on center icenter.
GaussianShell & operator() (int icenter, int ishell)
Return a reference to GaussianShell number ishell on center icenter.
const GaussianShell & shell (int i, int j) const
Return a reference to GaussianShell number j on center i.
GaussianShell & shell (int i, int j)
Return a reference to GaussianShell number j on center i.
double r (int icenter, int xyz) const
The location of center icenter.
int values (const SCVector3 &r, ValueData *, double *basis_values) const
Compute the values for this basis set at position r.
int grad_values (const SCVector3 &r, ValueData *, double *g_values, double *basis_values=0) const
Like values(...), but computes gradients of the basis function values, too.
int hessian_values (const SCVector3 &r, ValueData *, double *h_values, double *g_values=0, double *basis_values=0) const
Like values(...), but computes first and second derivatives of the basis function values, too.
int shell_values (const SCVector3 &r, int sh, ValueData *, double *basis_values) const
Compute the values for the given shell functions at position r.
int grad_shell_values (const SCVector3 &r, int sh, ValueData *, double *g_values, double *basis_values=0) const
Like values(...), but computes gradients of the shell function values, too.
int hessian_shell_values (const SCVector3 &r, int sh, ValueData *, double *h_values, double *g_values=0, double *basis_values=0) const
Like values(...), but computes first and second derivatives of the shell function values, too.
int equiv (const Ref< GaussianBasisSet > &b)
Returns true if this and the argument are equivalent.
void print_brief (std::ostream &=ExEnv::out0()) const
Print a brief description of the basis set.
void print (std::ostream &=ExEnv::out0()) const
Print a detailed description of the basis set.

  Protected Methods
GaussianBasisSet (const GaussianBasisSet &)
virtual void set_matrixkit (const Ref< SCMatrixKit > &)

DETAILED DESCRIPTION

The GaussianBasisSet class is used describe a basis set composed of atomic gaussian orbitals.

Following is a table with available basis sets listing the supported elements for each basis and the number of basis functions for H, , first row, , and second row, , atoms. Basis sets with non-alpha-numerical characters in their name must be given in quotes.

 Basis SetElements STO-2GH-Ca159 STO-3GH-Kr159 STO-3G*H-Ar1514 STO-6GH-Be, C-Kr159 MINI (Huzinaga)H-Ca159 MINI (Scaled)H-Ca159 MIDI (Huzinaga)H-Na29 DZ (Dunning)H, Li, B-Ne, Al-Cl21018 DZP (Dunning)H, Li, B-Ne, Al-Cl51624 DZP + Diffuse (Dunning)H, B-Ne619 3-21GH-Kr2913 3-21G*H-Ar2919 3-21++GH-Ar31317 3-21++G*H-Ar31323 4-31GH-Ne, P-Cl2913 4-31G*H-Ne, P-Cl21519 4-31G**H-Ne, P-Cl51519 6-31GH-Ar2913 6-31G*H-Ar21519 6-31G**H-Ar51519 6-31+G*H-Ar21923 6-31++GH-Ar31317 6-31++G*H-Ar31923 6-31++G**H-Ar61923 6-311GH-Ar, Ga-Kr31321 6-311G*H-Ar, Ga-Kr31826 6-311G**H-Ar, Ga-Kr61826 6-311G(2df,2pd)H-Ne1430 6-311++G**H-Ne723 6-311++G(2d,2p)H-Ne1029 6-311++G(3df,3pd)H-Ar194250 cc-pVDZH, He, B-Ne, Al-Ar, Ga-Kr51418 cc-pVTZH, He, B-Ne, Al-Ar, Ga-Se143034 cc-pVQZH, He, B-Ne, Al-Ar305559 cc-pV5ZH-Ne, Al-Ar559195 aug-cc-pVDZH, He, B-Ne, Al-Ar92327 aug-cc-pVTZH, He, B-Ne, Al-Ar234650 aug-cc-pVQZH, He, B-Ne, Al-Ar468084 aug-cc-pV5ZH, He, B-Ne, Al-Ar80127131 cc-pCVDZB-Ne18 cc-pCVTZB-Ne43 cc-pCVQZB-Ne84 cc-pCV5ZB-Ne145 aug-cc-pCVDZB-F27 aug-cc-pCVTZB-Ne59 aug-cc-pCVQZB-Ne109 aug-cc-pCV5ZB-F181 NASA Ames ANOH, B-Ne, Al, P, Ti, Fe, Ni305559

CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

  sc::GaussianBasisSet::GaussianBasisSet (const Ref< KeyVal > &)

The KeyVal constructor.

molecule
     The gives a Molecule object. The is no default.

puream
     If this boolean parameter is true then 5D, 7F, etc. will be used. Otherwise all cartesian functions will be used. The default depends on the particular basis set.

name
     This is a string giving the name of the basis set. The above table of basis sets gives some of the recognized basis set names. It may be necessary to put the name in double quotes. There is no default.

basis
     This is a vector of basis set names that can give a different basis set to each atom in the molecule. If the element vector is given, then it gives different basis sets to different elements. The default is to give every atom the basis set specified in name.

element
     This is a vector of elements. If it is given then it must have the same number of entries as the basis vector.

basisdir
     A string giving a directory where basis set data files are to be sought. See the text below for a complete description of what directors are consulted.

basisfiles
     Each keyword in this vector of files is appended to the directory specified with basisdir and basis set data is read from them.

matrixkit
     Specifies a SCMatrixKit object. It is usually not necessary to give this keyword, as the default action should get the correct SCMatrixKit.

Several files in various directories are checked for basis set data. First, basis sets can be given by the user in the basis section at the top level of the main input file. Next, if a path is given with the basisdir keyword, then all of the files given with the basisfiles keyword are read in after appending their names to the value of basisdir. Basis sets can be given in these files in the basis section at the top level as well. If the named basis set still cannot be found, then GaussianBasisSet will try convert the basis set name to a file name and check first in the directory given by basisdir. Next it checks for the environment variable SCLIBDIR. If it is set it will look for the basis file in $SCLIBDIR/basis. Otherwise it will look in the source code distribution in the directory SC/lib/basis. If the executable has changed machines or the source code has be moved, then it may be necessary to copy the library files to your machine and set the SCLIBDIR environmental variable.

The basis set itself is also given in the ParsedKeyVal format. It is a vector of shells with the keyword :basis: followed by the lowercase atomic name followed by : followed by the basis set name (which may need to be placed inside double quotes). Each shell reads the following keywords:

type
     This is a vector that describes each component of this shell. For each element the following two keywords are read:

am
     The angular momentum of the component. This can be given as the letter designation, s, p, d, etc. There is no default.

puream
     If this boolean parameter is true then 5D, 7F, etc. shells are used. The default is false. This parameter can be overridden in the GaussianBasisSet specification.

exp
     This is a vector giving the exponents of the primitive Gaussian functions.

coef
     This is a matrix giving the coeffients of the primitive Gaussian functions. The first index gives the component number of the shell and the second gives the primitive number.

An example might be easier to understand. This is a basis set specificition for STO-2G carbon:

        basis: (
         carbon: 'STO-2G': [
          (type: [(am = s)]
           {      exp      coef:0 } = {
              27.38503303 0.43012850
               4.87452205 0.67891353
           })
          (type: [(am = p) (am = s)]
           {     exp      coef:1     coef:0 } = {
               1.13674819 0.04947177 0.51154071
               0.28830936 0.96378241 0.61281990
           })
         ]
        )

MEMBER FUNCTION DOCUMENTATION

  int sc::GaussianBasisSet::grad_shell_values (const SCVector3 & r, int sh, ValueData *, double * g_values, double * basis_values = 0) const

Like values(...), but computes gradients of the shell function values, too.

See the other grad_values(...) members for more information.

  int sc::GaussianBasisSet::grad_values (const SCVector3 & r, ValueData *, double * g_values, double * basis_values = 0) const

Like values(...), but computes gradients of the basis function values, too.

The g_values argument must be vector of length 3*nbasis. The data will be written in the order bf1_x, bf1_y, bf1_z, ...

  int sc::GaussianBasisSet::hessian_shell_values (const SCVector3 & r, int sh, ValueData *, double * h_values, double * g_values = 0, double * basis_values = 0) const

Like values(...), but computes first and second derivatives of the shell function values, too.

See the other hessian_values(...) members for more information.

  int sc::GaussianBasisSet::hessian_values (const SCVector3 & r, ValueData *, double * h_values, double * g_values = 0, double * basis_values = 0) const

Like values(...), but computes first and second derivatives of the basis function values, too.

h_values must be vector of length 6*nbasis. The data will be written in the order bf1_xx, bf1_yx, bf1_yy, bf1_zx, bf1_zy, bf1_zz, ...

  int sc::GaussianBasisSet::max_ncartesian_in_shell (int aminc = 0) const

Return the maximum number of Cartesian functions that any shell has.

The optional argument is an angular momentum increment.

  double sc::GaussianBasisSet::r (int icenter, int xyz) const

The location of center icenter.

The xyz argument is 0 for x, 1 for y, and 2 for z.

  void sc::GaussianBasisSet::save_data_state (StateOut &) [virtual]

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

  int sc::GaussianBasisSet::shell_values (const SCVector3 & r, int sh, ValueData *, double * basis_values) const

Compute the values for the given shell functions at position r.

See the other values(...) members for more information.

  int sc::GaussianBasisSet::values (const SCVector3 & r, ValueData *, double * basis_values) const

Compute the values for this basis set at position r.

The basis_values argument must be vector of length nbasis.

AUTHOR

Generated automatically by Doxygen for MPQC from the source code.