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 equiv(const GaussianShell *s)
Returns true if this and the argument are equivalent.
int max_cartesian() const
The maximum number of Cartesian functions in any contraction.
void print(std::ostream &=ExEnv::out0()) const
Print the object.
int ncartesian_with_aminc(int aminc) const
The total number of Cartesian functions if this shift is applied to all of the angular momentums...
int is_pure(int con) const
Returns nonzero if contraction con is solid harmonics.
Definition: gaussshell.h:160
int has_pure() const
Returns nonzero if any contraction is solid harmonics.
Definition: gaussshell.h:162
char amchar(int con) const
The character symbol for the angular momentum of the given contraction.
Definition: gaussshell.h:147
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Serializes objects that derive from SavableState.
Definition: stateout.h:61
int ncontraction() const
The number of contractions formed from the primitives.
Definition: gaussshell.h:131
A Gaussian orbital shell.
Definition: gaussshell.h:47
double coefficient_norm(int con, int prim) const
Returns the contraction coef for normalized primitives.
int am(int con) const
The angular momentum of the given contraction.
Definition: gaussshell.h:141
CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integra...
Definition: cartiter.h:39
int nfunction() const
The number of basis functions.
Definition: gaussshell.h:133
A template class that maintains references counts.
Definition: ref.h:332
double monobound(double r) const
Returns a bound for the basis function.
int ncartesian() const
The total number of functions if this shell was Cartesian.
Definition: gaussshell.h:151
int nprimitive() const
The number of primitive Gaussian shells.
Definition: gaussshell.h:129
double exponent(int iprim) const
Returns the exponent of the given primitive.
Definition: gaussshell.h:168
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
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.
int min_angular_momentum() const
The minimum angular momentum in the shell.
Definition: gaussshell.h:137
static std::ostream & out0()
Return an ostream that writes from node 0.
double extent(double threshold) const
Returns a radius.
int max_angular_momentum() const
The maximum angular momentum in the shell.
Definition: gaussshell.h:135
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 max_am() const
The maximum angular momentum of any contraction.
Definition: gaussshell.h:143
int values(CartesianIter **, SphericalTransformIter **, const SCVector3 &r, double *basis_values)
Compute the values for this shell at position r.
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 is_cartesian(int con) const
Returns nonzero if contraction con is Cartesian.
Definition: gaussshell.h:158
Base class for objects that can save/restore state.
Definition: state.h:46
int min_am() const
The minimum angular momentum of any contraction.
Definition: gaussshell.h:145
int ncartesian(int con) const
The number of Cartesian functions for the given contraction.
Definition: gaussshell.h:156
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...