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;