28 #ifndef _chemistry_qc_basis_gaussshell_h
29 #define _chemistry_qc_basis_gaussshell_h
36 #include <util/state/state.h>
37 #include <math/scmat/vector3.h>
38 #include <util/keyval/keyval.h>
43 class SphericalTransformIter;
50 enum PrimitiveType { Normalized, Unnormalized };
51 enum GaussianType { Cartesian, Pure };
66 void init_computed_data();
68 double shell_normalization(
int);
70 void normalize_shell();
71 PrimitiveType keyval_init(
const Ref<KeyVal>&,
int,
int);
72 static const char* amtypes;
73 static const char* AMTYPES;
75 int test_monobound(
double &r,
double &bound)
const;
104 PrimitiveType pt = GaussianShell::Normalized,
105 bool do_normalize_shell =
true);
117 PrimitiveType pt = GaussianShell::Normalized);
141 int am(
int con)
const {
return l[con]; }
147 char amchar(
int con)
const {
return amtypes[l[con]]; }
156 int ncartesian(
int con)
const {
return ((l[con]+2)*(l[con]+1))>>1; }
160 int is_pure(
int con)
const {
return puream[con]; }
168 double exponent(
int iprim)
const {
return exp[iprim]; }
173 const SCVector3& r,
double* basis_values);
179 double* basis_values=0)
const;
184 double* h_values,
double* g_values=0,
185 double* basis_values=0)
const;
191 int con,
int func1,
int func2)
const;
197 int a1,
int b1,
int c1,
198 int a2,
int b2,
int c2)
const;
205 double extent(
double threshold)
const;
int nfunction() const
The number of basis functions.
Definition: gaussshell.h:133
int nprimitive() const
The number of primitive Gaussian shells.
Definition: gaussshell.h:129
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
double monobound(double r) const
Returns a bound for the basis function.
CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integra...
Definition: cartiter.h:39
GaussianShell(int ncn, int nprm, double *e, int *am, int *pure, double **c, PrimitiveType pt=GaussianShell::Normalized, bool do_normalize_shell=true)
A GaussianShell constructor.
A template class that maintains references counts.
Definition: ref.h:332
int ncartesian(int con) const
The number of Cartesian functions for the given contraction.
Definition: gaussshell.h:156
int max_am() const
The maximum angular momentum of any contraction.
Definition: gaussshell.h:143
char amchar(int con) const
The character symbol for the angular momentum of the given contraction.
Definition: gaussshell.h:147
int has_pure() const
Returns nonzero if any contraction is solid harmonics.
Definition: gaussshell.h:162
double coefficient_unnorm(int con, int prim) const
Returns the contraction coef for unnormalized primitives.
Definition: gaussshell.h:164
Restores objects that derive from SavableState.
Definition: statein.h:70
int ncartesian() const
The total number of functions if this shell was Cartesian.
Definition: gaussshell.h:151
int min_am() const
The minimum angular momentum of any contraction.
Definition: gaussshell.h:145
double extent(double threshold) const
Returns a radius.
int hessian_values(CartesianIter **, SphericalTransformIter **, const SCVector3 &R, 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,...
int equiv(const GaussianShell *s)
Returns true if this and the argument are equivalent.
int is_cartesian(int con) const
Returns nonzero if contraction con is Cartesian.
Definition: gaussshell.h:158
Serializes objects that derive from SavableState.
Definition: stateout.h:61
double relative_overlap(const Ref< Integral > &, int con, int func1, int func2) const
Returns the intra-generalized-contraction overlap matrix element <con func1|con func2> within an arbi...
int values(CartesianIter **, SphericalTransformIter **, const SCVector3 &r, double *basis_values)
Compute the values for this shell at position r.
int grad_values(CartesianIter **, SphericalTransformIter **, const SCVector3 &R, double *g_values, double *basis_values=0) const
Like values(...), but computes gradients of the basis function values, too.
int min_angular_momentum() const
The minimum angular momentum in the shell.
Definition: gaussshell.h:137
int am(int con) const
The angular momentum of the given contraction.
Definition: gaussshell.h:141
static std::ostream & out0()
Return an ostream that writes from node 0.
int ncontraction() const
The number of contractions formed from the primitives.
Definition: gaussshell.h:131
int is_pure(int con) const
Returns nonzero if contraction con is solid harmonics.
Definition: gaussshell.h:160
double coefficient_norm(int con, int prim) const
Returns the contraction coef for normalized primitives.
Base class for objects that can save/restore state.
Definition: state.h:46
int max_cartesian() const
The maximum number of Cartesian functions in any contraction.
int max_angular_momentum() const
The maximum angular momentum in the shell.
Definition: gaussshell.h:135
int ncartesian_with_aminc(int aminc) const
The total number of Cartesian functions if this shift is applied to all of the angular momentums.
double exponent(int iprim) const
Returns the exponent of the given primitive.
Definition: gaussshell.h:168
void print(std::ostream &=ExEnv::out0()) const
Print the object.
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.