sc::GaussianBasisSet(3)
π NAME π
Okay bestie, meet sc::GaussianBasisSet π β the class used to describe a basis set composed of atomic gaussian orbitals. This is the MPQC manual page sc::GaussianBasisSet(3), and yes, itβs giving main-character quantum chemistry energy β¨.
β¨ SYNOPSIS β¨
#include <gaussbas.h>
Inherits sc::SavableState.
π§ CLASSES π§
class ValueDataβ this holds scratch data needed to compute basis function values π«Ά.
π PUBLIC TYPES π
enum UnitType { Unit }β this can be given to a CTOR to construct a unit basis function β.
π PUBLIC MEMBER FUNCTIONS π
GaussianBasisSet (const Ref< KeyVal > &)β theKeyValconstructor π.GaussianBasisSet (UnitType)β give itGaussianBasisSet::Unitand you get a basis set with a single basis function that is one everywhere π .GaussianBasisSet (StateIn &)β theStateInconstructor; the source doesnβt add an extra blurb here.Ref< GaussianBasisSet > operator+ (const Ref< GaussianBasisSet > &B)β returns aGaussianBasisSetobject that consists of the basis functions for each atom in this followed by the basis functions inBfor the corresponding atom π₯.void save_data_state (StateOut &)β save the base classes (withsave_data_state) and the members in the same order that theStateInCTOR initializes them π.const char * name () constβ return the name of the basis set; it is nonnull only if keyword'name'was provided.const char * label () constβ return the label of the basis set π·οΈ.Ref< Molecule > molecule () constβ return theMoleculeobject πΈ.Ref< SCMatrixKit > matrixkit ()β returns theSCMatrixKitthat is to be used for AO bases β¨.Ref< SCMatrixKit > so_matrixkit ()β returns theSCMatrixKitthat is to be used for SO bases β¨.RefSCDimension basisdim ()β returns theSCDimensionobject 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 has_pure () constβ return true if basis contains solid harmonics 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 toGaussianShellnumberiπ«Ά.GaussianShell & operator() (int i)β return a reference toGaussianShellnumberiπ«Ά.const GaussianShell & operator[] (int i) constβ return a reference toGaussianShellnumberiπ .GaussianShell & operator[] (int i)β return a reference toGaussianShellnumberiπ .const GaussianShell & shell (int i) constβ return a reference toGaussianShellnumberiπ.GaussianShell & shell (int i)β return a reference toGaussianShellnumberiπ.const GaussianShell & operator() (int icenter, int ishell) constβ return a reference toGaussianShellnumberishellon centericenterπΈ.GaussianShell & operator() (int icenter, int ishell)β return a reference toGaussianShellnumberishellon centericenterπΈ.const GaussianShell & shell (int i, int j) constβ return a reference toGaussianShellnumberjon centeriπ¦.GaussianShell & shell (int i, int j)β return a reference toGaussianShellnumberjon centeriπ¦.double r (int icenter, int xyz) constβ the location of centericenterπ.int values (const SCVector3 &r, ValueData *, double *basis_values) constβ compute the values for this basis set at positionrβ¨.int grad_values (const SCVector3 &r, ValueData *, double *g_values, double *basis_values=0) constβ likevalues(...), 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β likevalues(...), 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 positionrπ.int grad_shell_values (const SCVector3 &r, int sh, ValueData *, double *g_values, double *basis_values=0) constβ likevalues(...), 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β likevalues(...), 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 MEMBER FUNCTIONS π‘οΈ
GaussianBasisSet (const GaussianBasisSet &)β protected copy constructor; no extra blurb in the source.virtual void set_matrixkit (const Ref< SCMatrixKit > &)β protected virtual setter; no extra blurb in the source.
π«Ά ADDITIONAL INHERITED MEMBERS π«Ά
There are inherited members, but this page doesnβt spell them out.
π DETAILED DESCRIPTION π
The GaussianBasisSet class is used to describe a basis set composed of atomic gaussian orbitals π«.
Inputs for common basis sets are included in the MPQC distribution. They have been obtained from the EMSL Basis Set Database and translated into the MPQC format. The citation for this database is below. The technical citation for each basis set is listed in the individual basis set data files, in MPQC's lib/basis directory π.
Following is a table with available basis sets listing the supported elements for each basis and the number of basis functions for H, $n_0$, first row, $n_1$, and second row, $n_2$, atoms. Basis sets with non-alpha-numerical characters in their name must be given in quotes π£οΈ.
π heads up: the source table is flattened into one big blob, so Iβm dropping it here exactly as it appears so no basis-set entries or numbers get lost.
Basis SetElements$n_0$$n_1$$n_2$ STO-2GH-Ca159 STO-3GH-Kr159 STO-3G*H-
Ar1514 STO-6GH-Kr159 MINI (Huzinaga)H-Ca159 MINI (Scaled)H-Ca159 MIDI
(Huzinaga)H-Na, Al-K2913 DZ (Dunning)H, Li, B-Ne, Al-Cl21018 DZP
(Dunning)H, Li, B-Ne, Al-Cl51624 DZP + Diffuse (Dunning)H, B-
Ne6193-21GH-Kr2913 3-21G*H-Ar2919 3-21++GH-Ar31317 3-21++G*H-Ar31323
4-31GH-Ne, P-Cl2913 6-31GH-Zn2913 6-31G*H-Zn21519 6-31G**H-Zn51519
6-31+G*H-Ar21923 6-31++GH-Ca31317 6-31++G*H-Ar31923 6-31++G**H-Ar61923
6-311GH-Ca, Ga-Kr31321 6-311G*H-Ca, Ga-Kr31826 6-311G**H-Ca, Ga-Kr61826
6-311G(2df,2pd)H-Ne, K, Ca14306-311++G**H-Ne7226-311++G(2d,2p)H-Ca102735
6-311++G(3df,3pd)H-Ar183947 cc-pVDZH-Ar, Ca, Ga-Kr51418 cc-pVTZH-Ar, Ca,
Ga-Kr143034 cc-pVQZH-Ar, Ca, Ga-Kr305559 cc-pV5ZH-Ar, Ca, Ga-Kr559195
cc-pV6ZH, He, B-Ne, Al-Ar91140144 aug-cc-pVDZH, He, B-Ne, Al-Ar, Ga-
Kr92327 aug-cc-pVTZH, He, B-Ne, Al-Ar, Ga-Kr234650 aug-cc-pVQZH, He, B-
Ne, Al-Ar, Ga-Kr468084 aug-cc-pV5ZH, He, B-Ne, Al-Ar, Ga-Kr80127131 aug-
cc-pV6ZH, He, B-Ne, Al-Ar127189193 cc-pCVDZLi, B-Ar1827 cc-pCVTZLi, B-
Ar4359 cc-pCVQZLi, B-Ar84109 cc-pCV5ZB-Ne145aug-cc-pCVDZB-F, Al-Ar2736
aug-cc-pCVTZB-Ne, Al-Ar5975 aug-cc-pCVQZB-Ne, Al-Ar109134 aug-cc-pCV5ZB-
F181NASA Ames ANOH, B-Ne, Al, P, Ti, Fe, Ni305559 pc-0H, C-F, Si-Cl2913
pc-1H, C-F, Si-Cl51418 pc-2H, C-F, Si-Cl143034 pc-3H, C-F, Si-Cl346464
pc-4H, C-F, Si-Cl63109105 pc-0-augH, C-F, Si-Cl31317 pc-1-augH, C-F, Si-
Cl92327 pc-2-augH, C-F, Si-Cl234650 pc-3-augH, C-F, Si-Cl508989
pc-4-augH, C-F, Si-Cl88145141
All basis sets except for the pc-n and pc-n-aug basis sets were obtained from the Extensible Computational Chemistry Environment Basis Set Database, Version 12/03/03, as developed and distributed by the Molecular Science Computing Facility, Environmental and Molecular Sciences Laboratory which is part of the Pacific Northwest Laboratory, P.O. Box 999, Richland, Washington 99352, USA, and funded by the U.S. Department of Energy. The Pacific Northwest Laboratory is a multi-program laboratory operated by Battelle Memorial Institute for the U.S. Department of Energy under contract DE-AC06-76RLO 1830. Contact David Feller or Karen Schuchardt for further information π¬.
The pc-n and pc-n-aug basis sets are the polarization consistent basis sets of Frank Jensen. See J. Chem. Phys. 115 (2001) 9113; J. Chem. Phys. 116 (2002) 7372; J. Chem. Phys. 117 (2002) 9234; and J. Chem. Phys. 121 (2004) 3463 π.
π Constructor & Destructor Documentation π
π sc::GaussianBasisSet::GaussianBasisSet (const Ref< KeyVal > &)
okay so this is the KeyVal constructor β the one where you hand it a KeyVal and it reads all the little keyword settings. Hereβs the keyword menu, bestie:
moleculeβ gives aMoleculeobject. There is no default.pureamβ if this boolean is true, then5D,7F, etc. get used. Otherwise all cartesian functions are used. The default depends on the particular basis set.nameβ a string giving the name of the basis set. The basis-set table from earlier gives some recognized basis-set names. You may need to put the name in double quotes. There is no default.basisβ a vector of basis-set names that can give a different basis set to each atom in the molecule. If theelementvector is given, then it gives different basis sets to different elements. The default is to give every atom the basis set specified inname.elementβ a vector of elements. If it is given, then it must have the same number of entries as thebasisvector.basisdirβ a string giving a directory where basis-set data files are to be sought. See the text below for the full description of what directories are consulted.basisfilesβ each keyword in this vector of files is appended to the directory specified withbasisdir, and basis-set data is read from them.matrixkitβ specifies aSCMatrixKitobject. It is usually not necessary to give this keyword, as the default action should get the correctSCMatrixKit.
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 to 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.
Heads up π«Ά: if the executable has changed machines or the source code has been moved, then it may be necessary to copy the library files to your machine and set the SCLIBDIR environment variable.
The basis set itself is also given in the ParsedKeyVal format. There are two recognized formats for basis sets:
π array of shells
One must specify 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). The value for the keyword is an array of shells. Each shell reads the following keywords:
typeβ 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 is true, then5D,7F, etc. shells are used. The default isfalse. This parameter can be overridden in theGaussianBasisSetspecification.
expβ a vector giving the exponents of the primitive Gaussian functions.coefβ a matrix giving the coefficients 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 specification 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
})
]
)
πΈ basis set of even-tempered primitive Gaussians
Such a basis-set format is given as a group of keywords. The name of the group is :basis: followed by the lowercase atomic name followed by : followed by the basis-set name (which may need to be placed inside double quotes). The group of keywords must contain vectors am and nprim, which specify the angular momentum and the number of shells in each block of even-tempered primitives. In addition, one must provide any two of the following vectors:
first_expβ the exponent of the'tightest'primitive Gaussian in the block.last_expβ the exponent of the most'diffuse'primitive Gaussian in the block.exp_ratioβ the ratio of exponents of consecutive primitive Gaussians in the block.
Note that the dimensions of each vector must be the same. β¨
Hereβs an example of a basis set composed of 2 blocks of even-tempered s-functions and 1 block of even-tempered p-functions:
basis: (
neon: '20s5s13p':(
am = [ 0 0 1 ]
nprim = [ 20 5 13 ]
first_exp = [ 1000.0 0.1 70.0 ]
last_exp = [ 1.0 0.01 0.1 ]
)
)
π§Έ sc::GaussianBasisSet::GaussianBasisSet (UnitType)
This can be given GaussianBasisSet::Unit to construct a basis set with a single basis function that is one everywhere. This can be used with integral evaluators to compute certain classes of integrals, with limitations. No cap, that caveat is doing important work π
π οΈ 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 a 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 a 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, ...
const char* sc::GaussianBasisSet::label () const [inline]
Return the label of the basis set. label() returns the same string as name() if the keyword 'name' was provided; otherwise it is a unique descriptive string which can be arbitrarily long.
References name().
int sc::GaussianBasisSet::max_am_for_contraction (int con) const
Return the maximum angular momentum found in the given contraction number for any shell.
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.
Ref<GaussianBasisSet> sc::GaussianBasisSet::operator+ (const Ref< GaussianBasisSet > & B)
Returns a GaussianBasisSet object that consists of the basis functions for each atom in this followed by the basis functions in B for the corresponding atom. The Molecule object for the two basis sets must be identical.
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 a vector of length nbasis.
π Author π
Generated automatically by Doxygen for MPQC from the source code.
π Okay bestie, footer check: this page is from MPQC version 2.3.1, dated Sun Oct 4 2020. Thatβs the source/version and date energy β iconic, documented, periodt. π«Άβ¨
π¦ where this page comes from
- ubuntu jammy: libsc-doc 2.3.1-21
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms