#include <gaussbas.h>
Inheritance diagram for GaussianBasisSet
Public Methods | |
GaussianBasisSet (const Ref< KeyVal > &) | |
The KeyVal constructor. More... | |
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. More... | |
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 | 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. More... | |
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. More... | |
int | values (const SCVector3 &r, ValueData *, double *basis_values) const |
Compute the values for this basis set at position r. More... | |
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. More... | |
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. More... | |
int | shell_values (const SCVector3 &r, int sh, ValueData *, double *basis_values) const |
Compute the values for the given shell functions at position r. More... | |
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. More... | |
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. More... | |
int | equiv (const Ref< GaussianBasisSet > &b) |
Returns true if this and the argument are equivalent. | |
void | print_brief (std::ostream &=ExEnv::out()) const |
Print a brief description of the basis set. | |
void | print (std::ostream &=ExEnv::out()) const |
Print a detailed description of the basis set. | |
Protected Methods | |
GaussianBasisSet (const GaussianBasisSet &) | |
virtual void | set_matrixkit (const Ref< SCMatrixKit > &) |
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 Set | Elements | |||
STO-2G | H-Ca | 1 | 5 | 9 |
STO-3G | H-Kr | 1 | 5 | 9 |
STO-3G* | H-Ar | 1 | 5 | 14 |
STO-6G | H-Be, C-Kr | 1 | 5 | 9 |
MINI (Huzinaga) | H-Ca | 1 | 5 | 9 |
MINI (Scaled) | H-Ca | 1 | 5 | 9 |
MIDI (Huzinaga) | H-Na | 2 | 9 | |
DZ (Dunning) | H, Li, B-Ne, Al-Cl | 2 | 10 | 18 |
DZP (Dunning) | H, Li, B-Ne, Al-Cl | 5 | 16 | 24 |
DZP + Diffuse (Dunning) | H, B-Ne | 6 | 19 | |
3-21G | H-Kr | 2 | 9 | 13 |
3-21G* | H-Ar | 2 | 9 | 19 |
3-21++G | H-Ar | 3 | 13 | 17 |
3-21++G* | H-Ar | 3 | 13 | 23 |
4-31G | H-Ne, P-Cl | 2 | 9 | 13 |
4-31G* | H-Ne, P-Cl | 2 | 15 | 19 |
4-31G** | H-Ne, P-Cl | 5 | 15 | 19 |
6-31G | H-Ar | 2 | 9 | 13 |
6-31G* | H-Ar | 2 | 15 | 19 |
6-31G** | H-Ar | 5 | 15 | 19 |
6-31+G* | H-Ar | 2 | 19 | 23 |
6-31++G | H-Ar | 3 | 13 | 17 |
6-31++G* | H-Ar | 3 | 19 | 23 |
6-31++G** | H-Ar | 6 | 19 | 23 |
6-311G | H-Ar, Ga-Kr | 3 | 13 | 21 |
6-311G* | H-Ar, Ga-Kr | 3 | 18 | 26 |
6-311G** | H-Ar, Ga-Kr | 6 | 18 | 26 |
6-311G(2df,2pd) | H-Ne | 14 | 30 | |
6-311++G** | H-Ne | 7 | 23 | |
6-311++G(2d,2p) | H-Ne | 10 | 29 | |
6-311++G(3df,3pd) | H-Ar | 19 | 42 | 50 |
cc-pVDZ | H, He, B-Ne, Al-Ar, Ga-Kr | 5 | 14 | 18 |
cc-pVTZ | H, He, B-Ne, Al-Ar, Ga-Se | 14 | 30 | 34 |
cc-pVQZ | H, He, B-Ne, Al-Ar | 30 | 55 | 59 |
cc-pV5Z | H-Ne, Al-Ar | 55 | 91 | 95 |
aug-cc-pVDZ | H, He, B-Ne, Al-Ar | 9 | 23 | 27 |
aug-cc-pVTZ | H, He, B-Ne, Al-Ar | 23 | 46 | 50 |
aug-cc-pVQZ | H, He, B-Ne, Al-Ar | 46 | 80 | 84 |
aug-cc-pV5Z | H, He, B-Ne, Al-Ar | 80 | 127 | 131 |
cc-pCVDZ | B-Ne | 18 | ||
cc-pCVTZ | B-Ne | 43 | ||
cc-pCVQZ | B-Ne | 84 | ||
cc-pCV5Z | B-Ne | 145 | ||
aug-cc-pCVDZ | B-F | 27 | ||
aug-cc-pCVTZ | B-Ne | 59 | ||
aug-cc-pCVQZ | B-Ne | 109 | ||
aug-cc-pCV5Z | B-F | 181 | ||
NASA Ames ANO | H, B-Ne, Al, P, Ti, Fe, Ni | 30 | 55 | 59 |
|
The KeyVal constructor.
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:
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 }) ] ) |
|
Like values(...), but computes gradients of the shell function values, too. See the other grad_values(...) members for more information. |
|
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, ... |
|
Like values(...), but computes first and second derivatives of the shell function values, too. See the other hessian_values(...) members for more information. |
|
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, ... |
|
Return the maximum number of Cartesian functions that any shell has. The optional argument is an angular momentum increment. |
|
The location of center icenter. The xyz argument is 0 for x, 1 for y, and 2 for z. |
|
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 SavableState. |
|
Compute the values for the given shell functions at position r. See the other values(...) members for more information. |
|
Compute the values for this basis set at position r. The basis_values argument must be vector of length nbasis. |