28 #ifndef _chemistry_qc_basis_gaussbas_h
29 #define _chemistry_qc_basis_gaussbas_h
38 #include <util/state/state.h>
39 #include <util/keyval/keyval.h>
40 #include <math/scmat/matrix.h>
41 #include <math/scmat/vector3.h>
42 #include <chemistry/molecule/molecule.h>
51 class SphericalTransformIter;
153 std::vector<int> shell_to_function_;
154 std::vector<int> function_to_shell_;
164 std::vector<int> shell_to_center_;
165 std::vector<int> shell_to_primitive_;
166 std::vector<int> center_to_shell_;
167 std::vector<int> center_to_nshell_;
168 std::vector<int> center_to_nbasis_;
180 const std::vector<int>& center_to_nshell);
184 int havepure,
int pure,
bool missing_ok);
186 void get_shells_(
int& ishell,
Ref<KeyVal>& keyval,
const char* elemname,
const char* sbasisname,
BasisFileSet& bases,
187 int havepure,
int pure,
bool missing_ok);
189 int count_even_temp_shells_(
Ref<KeyVal>& keyval,
const char* elemname,
const char* sbasisname,
190 int havepure,
int pure);
192 void get_even_temp_shells_(
int& ishell,
Ref<KeyVal>& keyval,
const char* elemname,
const char* sbasisname,
193 int havepure,
int pure);
197 int,
int,
int,
bool missing_ok);
203 void init2(
int skip_ghosts=0,
bool include_q=0);
399 const char*
name()
const {
return name_; }
403 const char*
label()
const {
if (
name()) {
return name(); }
else {
return label_; } }
482 double r(
int icenter,
int xyz)
const;
492 double*g_values,
double* basis_values=0)
const;
498 double*g_values=0,
double* basis_values=0)
const;
502 ValueData *,
double* basis_values)
const;
508 double*g_values,
double* basis_values=0)
const;
513 ValueData *,
double *h_values,
514 double*g_values=0,
double* basis_values=0)
const;
int max_ncontraction() const
Return the maximum number of Gaussians in a contraction in any shell.
int ncenter() const
Return the number of centers.
int max_nprimitive_in_shell() const
Return the maximum number of primitive Gaussian that any shell has.
int shell_to_center(int ishell) const
Return the center on which the given shell is located.
Definition: gaussbas.h:424
int has_pure() const
Return true if basis contains solid harmonics Gaussians.
Definition: gaussbas.h:434
GaussianShell & operator[](int i)
Return a reference to GaussianShell number i.
Definition: gaussbas.h:465
CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integra...
Definition: cartiter.h:39
A template class that maintains references counts.
Definition: ref.h:332
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,...
int nbasis_on_center(int icenter) const
Return the number of basis functions on the given center.
const GaussianShell & shell(int i) const
Return a reference to GaussianShell number i.
Definition: gaussbas.h:467
void print(std::ostream &=ExEnv::out0()) const
Print a detailed description of the basis set.
const GaussianShell & operator()(int i) const
Return a reference to GaussianShell number i.
Definition: gaussbas.h:459
GaussianShell & shell(int i, int j)
Return a reference to GaussianShell number j on center i.
Definition: gaussbas.h:478
GaussianShell & shell(int i)
Return a reference to GaussianShell number i.
Definition: gaussbas.h:469
int values(const SCVector3 &r, ValueData *, double *basis_values) const
Compute the values for this basis set 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.
RefSCDimension basisdim()
Returns the SCDimension object for the dimension.
Definition: gaussbas.h:412
Restores objects that derive from SavableState.
Definition: statein.h:70
The RefSCDimension class is a smart pointer to an SCDimension specialization.
Definition: dim.h:156
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 function_to_shell(int i) const
Return the shell to which the given function belongs.
int nbasis() const
Return the number of basis functions.
Definition: gaussbas.h:428
const char * label() const
Return the label of the basis set.
Definition: gaussbas.h:403
int shell_to_primitive(int ishell) const
Return the overall index of the first primitive from the given shell.
Definition: gaussbas.h:426
UnitType
This can be given to a CTOR to construct a unit basis function.
Definition: gaussbas.h:224
int max_am_for_contraction(int con) const
Return the maximum angular momentum found in the given contraction number for any shell.
int nprimitive() const
Return the number of primitive Gaussians.
Definition: gaussbas.h:432
int max_nfunction_in_shell() const
Return the maximum number of functions that any shell has.
Ref< Molecule > molecule() const
Return the Molecule object.
Definition: gaussbas.h:406
int equiv(const Ref< GaussianBasisSet > &b)
Returns true if this and the argument are equivalent.
Serializes objects that derive from SavableState.
Definition: stateout.h:61
int shell_on_center(int icenter, int shell) const
Return an overall shell number, given a center and the shell number on that center.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Ref< SCMatrixKit > matrixkit()
Returns the SCMatrixKit that is to be used for AO bases.
Definition: gaussbas.h:408
GaussianShell & operator()(int i)
Return a reference to GaussianShell number i.
Definition: gaussbas.h:461
int max_cartesian() const
Return the maximum number of Cartesian functions in any shell.
double r(int icenter, int xyz) const
The location of center icenter.
The GaussianBasisSet class is used describe a basis set composed of atomic gaussian orbitals.
Definition: gaussbas.h:145
static std::ostream & out0()
Return an ostream that writes from node 0.
This holds scratch data needed to compute basis function values.
Definition: gaussbas.h:211
Ref< SCMatrixKit > so_matrixkit()
Returns the SCMatrixKit that is to be used for SO bases.
Definition: gaussbas.h:410
int max_ncartesian_in_shell(int aminc=0) const
Return the maximum number of Cartesian functions that any shell has.
const GaussianShell & shell(int i, int j) const
Return a reference to GaussianShell number j on center i.
Definition: gaussbas.h:476
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,...
const char * name() const
Return the name of the basis set (is nonnull only if keyword "name" was provided)
Definition: gaussbas.h:399
Base class for objects that can save/restore state.
Definition: state.h:46
int max_angular_momentum() const
Return the highest angular momentum in any shell.
const GaussianShell & operator[](int i) const
Return a reference to GaussianShell number i.
Definition: gaussbas.h:463
int shell_to_function(int i) const
Return the number of the first function in the given shell.
Definition: gaussbas.h:454
int nshell_on_center(int icenter) const
Return the number of shells on the given center.
int nshell() const
Return the number of shells.
Definition: gaussbas.h:417
Ref< GaussianBasisSet > operator+(const Ref< GaussianBasisSet > &B)
Returns a GaussianBasisSet object that consists of the basis functions for each atom in this followed...
void print_brief(std::ostream &=ExEnv::out0()) const
Print a brief description of the basis set.
A Gaussian orbital shell.
Definition: gaussshell.h:47
Generated at Sun Jan 26 2020 23:33:03 for MPQC
2.3.1 using the documentation package Doxygen
1.8.16.