Psi4
integral.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2018 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
29 #ifndef _psi_src_lib_libmints_integral_h_
30 #define _psi_src_lib_libmints_integral_h_
31 
32 #include "psi4/pragma.h"
33 PRAGMA_WARNING_PUSH
34 PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS
35 #include <memory>
37 #include <vector>
38 
39 #include "onebody.h"
40 #include "twobody.h"
41 
45 #define INT_NCART(am) ((am >= 0) ? ((((am) + 2) * ((am) + 1)) >> 1) : 0)
46 
49 #define INT_NPURE(am) (2 * (am) + 1)
50 
53 #define INT_NFUNC(pu, am) ((pu) ? INT_NPURE(am) : INT_NCART(am))
54 
57 #define INT_CARTINDEX(am, i, j) (((i) == (am)) ? 0 : (((((am) - (i) + 1) * ((am) - (i))) >> 1) + (am) - (i) - (j)))
58 
61 #define INT_ICART(a, b, c) (((((((a) + (b) + (c) + 1) << 1) - (a)) * ((a) + 1)) >> 1) - (b)-1)
62 
65 #define INT_IPURE(l, m) ((l) + (m))
66 
67 namespace psi {
68 
69 class BasisSet;
70 class GaussianShell;
71 class OneBodyAOInt;
72 class OneBodySOInt;
73 class TwoBodyAOInt;
74 class ThreeCenterOverlapInt;
75 class CartesianIter;
76 class RedundantCartesianIter;
77 class RedundantCartesianSubIter;
78 class ShellRotation;
79 class SymmetryOperation;
80 class SOBasisSet;
81 class CorrelationFactor;
82 
85  protected:
86  int a_, b_, c_;
88 
89  double coef_;
90 
91  public:
93  int a() const { return a_; }
95  int b() const { return b_; }
97  int c() const { return c_; }
99  int cartindex() const { return cartindex_; }
101  int pureindex() const { return pureindex_; }
103  double coef() const { return coef_; }
104 
105  void init(int a, int b, int c, double coef, int cartindex, int pureindex);
106 };
107 
112  protected:
113  std::vector<SphericalTransformComponent> components_;
114  int l_; // The angular momentum this transform is for.
115  int subl_;
116 
118 
119  virtual void init();
120 
121  public:
122  SphericalTransform(int l, int subl = -1);
123  virtual ~SphericalTransform() {}
124 
126  int cartindex(int i) const { return components_[i].cartindex(); }
128  int pureindex(int i) const { return components_[i].pureindex(); }
130  double coef(int i) const { return components_[i].coef(); }
132  int a(int i) const { return components_[i].a(); }
134  int b(int i) const { return components_[i].b(); }
136  int c(int i) const { return components_[i].c(); }
138  int n() const { return components_.size(); }
140  int l() const { return l_; }
141 };
142 
144 class ISphericalTransform : public SphericalTransform {
146  protected:
148  virtual void init();
149 
150  public:
151  ISphericalTransform(int l, int subl = -1);
152 };
153 
155  private:
157  int i_;
158 
159  public:
161 
162  void first() { i_ = 0; }
163  void next() { i_++; }
164  bool is_done() { return i_ < trans_.n() ? false : true; }
165 
167  int n() const { return trans_.n(); }
168 
170  int cartindex() const { return trans_.cartindex(i_); }
172  int pureindex() const { return trans_.pureindex(i_); }
174  double coef() const { return trans_.coef(i_); }
176  int a() const { return trans_.a(i_); }
178  int b() const { return trans_.b(i_); }
180  int c() const { return trans_.c(i_); }
182  int l(int i) { return i ? (i == 1 ? b() : c()) : a(); }
183 };
184 
187  private:
188  struct Integral {
189  int i;
190  int j;
191  int k;
192  int l;
193  size_t index;
194  };
195 
201 
202  bool done;
203 
204  int ii, iimax, jj, jjmax, kk, kkmax, ll, llmax;
205  int ni, nj, nk, nl, fii, fij, fik, fil;
206 
207  public:
208  AOIntegralsIterator(const GaussianShell& s1, const GaussianShell& s2, const GaussianShell& s3,
209  const GaussianShell& s4);
210 
211  void first();
212  void next();
213  bool is_done() { return done; }
214 
215  int i() const { return current.i; }
216  int j() const { return current.j; }
217  int k() const { return current.k; }
218  int l() const { return current.l; }
219  int index() const { return current.index; }
220 };
221 
224  private:
225  struct ShellQuartet {
226  int P;
227  int Q;
228  int R;
229  int S;
230  bool end_of_PK;
231  };
232 
234  int usi_arr[3], usj_arr[3], usk_arr[3], usl_arr[3];
235  int usii, usjj, uskk, usll, upk;
236 
238 
239  bool done;
240 
241  std::shared_ptr<BasisSet> bs1_;
242  std::shared_ptr<BasisSet> bs2_;
243  std::shared_ptr<BasisSet> bs3_;
244  std::shared_ptr<BasisSet> bs4_;
245 
246  public:
247  AOShellCombinationsIterator(std::shared_ptr<BasisSet> bs1, std::shared_ptr<BasisSet> bs2,
248  std::shared_ptr<BasisSet> bs3, std::shared_ptr<BasisSet> bs4);
250  void init(std::shared_ptr<BasisSet> bs1, std::shared_ptr<BasisSet> bs2, std::shared_ptr<BasisSet> bs3,
251  std::shared_ptr<BasisSet> bs4);
252 
253  void first();
254  void next();
255  bool is_done() { return done; }
256 
257  int p() const { return current.P; }
258  int q() const { return current.Q; }
259  int r() const { return current.R; }
260  int s() const { return current.S; }
261  int end_of_PK() const { return current.end_of_PK; }
262 
264 };
265 
267  private:
268  struct ShellQuartet {
269  int P;
270  int Q;
271  int R;
272  int S;
273  bool end_of_PK;
274  };
275 
277  int usi_arr[3], usj_arr[3], usk_arr[3], usl_arr[3];
278  int usii, usjj, uskk, usll, upk;
279 
281 
282  bool done;
283 
284  std::shared_ptr<SOBasisSet> bs1_;
285  std::shared_ptr<SOBasisSet> bs2_;
286  std::shared_ptr<SOBasisSet> bs3_;
287  std::shared_ptr<SOBasisSet> bs4_;
288 
289  public:
290  SOShellCombinationsIterator(std::shared_ptr<SOBasisSet> bs1, std::shared_ptr<SOBasisSet> bs2,
291  std::shared_ptr<SOBasisSet> bs3, std::shared_ptr<SOBasisSet> bs4);
293  void init(std::shared_ptr<SOBasisSet> bs1, std::shared_ptr<SOBasisSet> bs2, std::shared_ptr<SOBasisSet> bs3,
294  std::shared_ptr<SOBasisSet> bs4);
295 
296  void first();
297  void next();
298  bool is_done() { return done; }
299 
300  int p() const { return current.P; }
301  int q() const { return current.Q; }
302  int r() const { return current.R; }
303  int s() const { return current.S; }
304  int end_of_PK() const { return current.end_of_PK; }
305 };
306 
308  private:
309  struct PQ_Pair {
310  int P;
311  int Q;
312  };
313 
315  int ii, jj;
316 
317  bool done;
318 
319  std::shared_ptr<SOBasisSet> bs1_;
320 
321  public:
322  SO_PQ_Iterator(std::shared_ptr<SOBasisSet> bs1);
323  SO_PQ_Iterator();
324 
325  void first();
326  void next();
327  bool is_done() { return done; }
328 
329  int p() const { return current.P; }
330  int q() const { return current.Q; }
331 };
332 
334  private:
335  struct RS_Pair {
336  int P;
337  int Q;
338  int R;
339  int S;
340  };
341 
343  int usi_arr[3], usj_arr[3], usk_arr[3], usl_arr[3];
344  int usii, usjj, uskk, usll, upk;
345 
347 
348  bool done;
349 
350  std::shared_ptr<SOBasisSet> bs1_;
351  std::shared_ptr<SOBasisSet> bs2_;
352  std::shared_ptr<SOBasisSet> bs3_;
353  std::shared_ptr<SOBasisSet> bs4_;
354 
355  public:
356  SO_RS_Iterator(const int& P, const int& Q, std::shared_ptr<SOBasisSet> bs1, std::shared_ptr<SOBasisSet> bs2,
357  std::shared_ptr<SOBasisSet> bs3, std::shared_ptr<SOBasisSet> bs4);
358  SO_RS_Iterator(std::shared_ptr<SOBasisSet> bs1, std::shared_ptr<SOBasisSet> bs2, std::shared_ptr<SOBasisSet> bs3,
359  std::shared_ptr<SOBasisSet> bs4);
360 
361  SO_RS_Iterator();
362 
363  void first();
364  void next();
365  bool is_done() { return done; }
366 
367  int p() const { return current.P; }
368  int q() const { return current.Q; }
369  int r() const { return current.R; }
370  int s() const { return current.S; }
371 };
372 
375  protected:
377  std::shared_ptr<BasisSet> bs1_;
379  std::shared_ptr<BasisSet> bs2_;
381  std::shared_ptr<BasisSet> bs3_;
383  std::shared_ptr<BasisSet> bs4_;
384 
386  std::vector<SphericalTransform> spherical_transforms_;
388  std::vector<ISphericalTransform> ispherical_transforms_;
389 
390  public:
392  IntegralFactory(std::shared_ptr<BasisSet> bs1, std::shared_ptr<BasisSet> bs2, std::shared_ptr<BasisSet> bs3,
393  std::shared_ptr<BasisSet> bs4);
395  IntegralFactory(std::shared_ptr<BasisSet> bs1);
396 
397  virtual ~IntegralFactory();
398 
400  std::shared_ptr<BasisSet> basis1() const;
402  std::shared_ptr<BasisSet> basis2() const;
404  std::shared_ptr<BasisSet> basis3() const;
406  std::shared_ptr<BasisSet> basis4() const;
407 
409  virtual void set_basis(std::shared_ptr<BasisSet> bs1, std::shared_ptr<BasisSet> bs2, std::shared_ptr<BasisSet> bs3,
410  std::shared_ptr<BasisSet> bs4);
411 
413  virtual OneBodyAOInt* ao_overlap(int deriv = 0);
414 
416  virtual OneBodySOInt* so_overlap(int deriv = 0);
417 
419  virtual ThreeCenterOverlapInt* overlap_3c();
420 
422  virtual OneBodyAOInt* ao_kinetic(int deriv = 0);
423  virtual OneBodySOInt* so_kinetic(int deriv = 0);
424 
426  virtual OneBodyAOInt* ao_potential(int deriv = 0);
427  virtual OneBodySOInt* so_potential(int deriv = 0);
428 
430  virtual OneBodyAOInt* ao_ecp(int deriv = 0);
431  virtual OneBodySOInt* so_ecp(int deriv = 0);
432 
434  virtual OneBodyAOInt* ao_rel_potential(int deriv = 0);
435  virtual OneBodySOInt* so_rel_potential(int deriv = 0);
436 
438  virtual OneBodyAOInt* ao_pseudospectral(int deriv = 0);
439  virtual OneBodySOInt* so_pseudospectral(int deriv = 0);
440 
442  virtual OneBodyAOInt* ao_dipole(int deriv = 0);
443  virtual OneBodySOInt* so_dipole(int deriv = 0);
444 
446  virtual OneBodyAOInt* ao_quadrupole();
447  virtual OneBodySOInt* so_quadrupole();
448 
450  virtual OneBodyAOInt* ao_multipoles(int order);
451  virtual OneBodySOInt* so_multipoles(int order);
452 
454  virtual OneBodyAOInt* ao_traceless_quadrupole();
455  virtual OneBodySOInt* so_traceless_quadrupole();
456 
458  virtual OneBodyAOInt* ao_nabla(int deriv = 0);
459  virtual OneBodySOInt* so_nabla(int deriv = 0);
460 
462  virtual OneBodyAOInt* ao_angular_momentum(int deriv = 0);
463  virtual OneBodySOInt* so_angular_momentum(int deriv = 0);
464 
466  virtual OneBodyAOInt* ao_efp_multipole_potential(int deriv = 0);
467  virtual OneBodySOInt* so_efp_multipole_potential(int deriv = 0);
468 
470  virtual OneBodyAOInt* electric_field(int deriv = 0);
471 
473  virtual OneBodyAOInt* electrostatic();
474 
477  virtual OneBodyAOInt* pcm_potentialint();
478 
480  virtual TwoBodyAOInt* eri(int deriv = 0, bool use_shell_pairs = true);
481 
483  virtual TwoBodyAOInt* erd_eri(int deriv = 0, bool use_shell_pairs = true);
484 
486  virtual TwoBodyAOInt* erf_eri(double omega, int deriv = 0, bool use_shell_pairs = true);
487 
489  virtual TwoBodyAOInt* erf_complement_eri(double omega, int deriv = 0, bool use_shell_pairs = true);
490 
492  virtual TwoBodyAOInt* f12(std::shared_ptr<CorrelationFactor> cf, int deriv = 0, bool use_shell_pairs = true);
493 
495  virtual TwoBodyAOInt* f12_scaled(std::shared_ptr<CorrelationFactor> cf, int deriv = 0, bool use_shell_pairs = true);
496 
498  virtual TwoBodyAOInt* f12_squared(std::shared_ptr<CorrelationFactor> cf, int deriv = 0,
499  bool use_shell_pairs = true);
500 
502  virtual TwoBodyAOInt* f12g12(std::shared_ptr<CorrelationFactor> cf, int deriv = 0, bool use_shell_pairs = true);
503 
505  virtual TwoBodyAOInt* f12_double_commutator(std::shared_ptr<CorrelationFactor> cf, int deriv = 0,
506  bool use_shell_pairs = true);
507 
509  AOIntegralsIterator integrals_iterator(int p, int q, int r, int s);
510 
512  AOShellCombinationsIterator shells_iterator();
513  AOShellCombinationsIterator* shells_iterator_ptr();
514 
516  virtual void init_spherical_harmonics(int max_am);
517 
519  const SphericalTransform* spherical_transform(int am) const { return &(spherical_transforms_[am]); }
520 
521  // Return spherical transform object for am
522  std::vector<SphericalTransform>& spherical_transform() { return spherical_transforms_; }
523 
525  SphericalTransformIter* spherical_transform_iter(int am, int inv = 0, int subl = -1) const;
526 
528  CartesianIter* cartesian_iter(int l) const;
530  RedundantCartesianIter* redundant_cartesian_iter(int l) const;
532  RedundantCartesianSubIter* redundant_cartesian_sub_iter(int l) const;
535  ShellRotation shell_rotation(int am, SymmetryOperation&, int pure = 0) const;
536 };
537 
538 } // namespace psi
539 
540 #endif
void init(int a, int b, int c, double coef, int cartindex, int pureindex)
Definition: libmints/transform.cc:47
Definition: integral.h:111
double coef() const
Returns the transformation coefficient of component i.
Definition: integral.h:174
Definition: onebody.h:55
int r() const
Definition: integral.h:259
std::shared_ptr< BasisSet > bs2_
Definition: integral.h:242
Definition: integral.h:223
int a() const
Returns the Cartesian basis function&#39;s x exponent of component i.
Definition: integral.h:176
Definition: integral.h:333
void first()
Definition: integral.h:162
int jjmax
Definition: integral.h:204
bool end_of_PK
Definition: integral.h:273
bool is_done()
Definition: integral.h:327
std::shared_ptr< BasisSet > bs2_
Center 2 basis set.
Definition: integral.h:379
void next()
Definition: integraliter.cc:270
bool is_done()
Definition: integral.h:365
Definition: integral.h:84
int upk
Definition: integral.h:235
int a_
Definition: integral.h:86
int p() const
Definition: integral.h:257
Definition: shellrotation.h:37
std::shared_ptr< SOBasisSet > bs4_
Definition: integral.h:287
int l(int i)
Return a component of the transform.
Definition: integral.h:182
Definition: integral.h:307
int P
Definition: integral.h:310
int uskk
Definition: integral.h:235
int num_unique_pk
Definition: integral.h:280
int ii
Definition: integral.h:204
RS_Pair current
Definition: integral.h:342
int s() const
Definition: integral.h:303
std::shared_ptr< SOBasisSet > bs1_
Definition: integral.h:284
const GaussianShell & usk
Definition: integral.h:199
std::vector< SphericalTransform > & spherical_transform()
Definition: integral.h:522
const GaussianShell & usi
Definition: integral.h:197
int p() const
Definition: integral.h:367
int k() const
Definition: integral.h:217
int kk
Definition: integral.h:204
Three center overlap integral.
Definition: 3coverlap.h:45
int r() const
Definition: integral.h:302
int cartindex_
Definition: integral.h:87
const GaussianShell & usl
Definition: integral.h:200
double coef() const
Returns the coefficient of this component of the transformation.
Definition: integral.h:103
int R
Definition: integral.h:338
int jj
Definition: integral.h:204
Definition: twobody.h:60
AOShellCombinationsIterator()
Definition: integraliter.cc:214
int pureindex() const
Returns the index of the spherical harmonic basis function.
Definition: integral.h:101
Definition: pointgrp.h:104
Definition: cartesianiter.h:77
void init(std::shared_ptr< BasisSet > bs1, std::shared_ptr< BasisSet > bs2, std::shared_ptr< BasisSet > bs3, std::shared_ptr< BasisSet > bs4)
Definition: integraliter.cc:220
int c(int i) const
Returns the Cartesian basis function&#39;s z exponent of component i.
Definition: integral.h:136
int j() const
Definition: integral.h:216
Integral current
Definition: integral.h:196
int usk_arr[3]
Definition: integral.h:234
int pureindex_
Definition: integral.h:87
std::shared_ptr< SOBasisSet > bs2_
Definition: integral.h:285
bool is_done()
Definition: integral.h:298
SphericalTransformIter(const SphericalTransform &trans)
Definition: integral.h:160
void first()
Definition: integraliter.cc:228
bool done
Definition: integral.h:348
Definition: integral.h:154
int c() const
Returns the exponent of z.
Definition: integral.h:97
int cartindex() const
Returns the index of the Cartesian basis function.
Definition: integral.h:99
int usi_arr[3]
Definition: integral.h:234
size_t index
Definition: integral.h:193
void next()
Definition: integral.h:163
int b_
Definition: integral.h:86
int l() const
Definition: integral.h:218
ShellQuartet current
Definition: integral.h:233
void first()
Definition: integraliter.cc:81
int Q
Definition: integral.h:311
int kkmax
Definition: integral.h:204
bool done
Definition: integral.h:202
std::shared_ptr< SOBasisSet > bs2_
Definition: integral.h:351
Definition: integral.h:309
int llmax
Definition: integral.h:204
std::shared_ptr< SOBasisSet > bs1_
Definition: integral.h:350
int p() const
Definition: integral.h:329
int i
Definition: integral.h:189
AOIntegralsIterator(const GaussianShell &s1, const GaussianShell &s2, const GaussianShell &s3, const GaussianShell &s4)
Definition: integraliter.cc:46
int j
Definition: integral.h:190
int cartindex() const
Returns the Cartesian basis function index of component i.
Definition: integral.h:170
Definition: integral.h:186
double coef(int i) const
Returns the transformation coefficient of component i.
Definition: integral.h:130
int b() const
Returns the Cartesian basis function&#39;s y exponent of component i.
Definition: integral.h:178
int b(int i) const
Returns the Cartesian basis function&#39;s y exponent of component i.
Definition: integral.h:134
int pureindex() const
Returns the spherical harmonic basis index of component i.
Definition: integral.h:172
std::shared_ptr< BasisSet > bs4_
Definition: integral.h:244
int l_
Definition: integral.h:114
int cartindex(int i) const
Returns the Cartesian basis function index of component i.
Definition: integral.h:126
int c_
Definition: integral.h:86
ISphericalTransform()
Definition: libmints/transform.cc:117
int c() const
Returns the Cartesian basis function&#39;s z exponent of component i.
Definition: integral.h:180
std::vector< SphericalTransformComponent > components_
Definition: integral.h:113
int n() const
Returns the number of components in the transformation.
Definition: integral.h:138
int jj
Definition: integral.h:315
int b() const
Returns the exponent of y.
Definition: integral.h:95
int usii
Definition: integral.h:235
int usll
Definition: integral.h:235
int usl_arr[3]
Definition: integral.h:234
int index() const
Definition: integral.h:219
PQ_Pair current
Definition: integral.h:314
int r() const
Definition: integral.h:369
Definition: integral.h:188
int fij
Definition: integral.h:205
bool is_done()
Definition: integral.h:164
bool end_of_PK
Definition: integral.h:230
std::shared_ptr< BasisSet > bs4_
Center 4 basis set.
Definition: integral.h:383
std::vector< ISphericalTransform > ispherical_transforms_
Provides ability to transform from sphericals (d=0, f=1, g=2)
Definition: integral.h:388
std::shared_ptr< BasisSet > bs3_
Center 3 basis set.
Definition: integral.h:381
int ll
Definition: integral.h:204
Definition: sointegral_onebody.h:40
virtual void init()
Definition: libmints/transform.cc:124
PRAGMA_WARNING_PUSH PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS PRAGMA_WARNING_POP
Definition: integraliter.cc:43
bool done
Definition: integral.h:282
int l() const
Returns the angular momentum.
Definition: integral.h:140
int end_of_PK() const
Definition: integral.h:261
int usjj
Definition: integral.h:235
int num_unique_pk
Definition: integral.h:346
int i_
Definition: integral.h:157
int end_of_PK() const
Definition: integral.h:304
int q() const
Definition: integral.h:258
int fik
Definition: integral.h:205
int nl
Definition: integral.h:205
ShellQuartet current
Definition: integral.h:276
int P
Definition: integral.h:336
std::shared_ptr< BasisSet > bs1_
Center 1 basis set.
Definition: integral.h:377
int q() const
Definition: integral.h:368
std::shared_ptr< BasisSet > bs1_
Definition: integral.h:241
int q() const
Definition: integral.h:301
Gaussian orbital shell.
Definition: gshell.h:168
int ni
Definition: integral.h:205
void next()
Definition: integraliter.cc:111
int k
Definition: integral.h:191
Definition: integral.h:374
CCTransform * trans
Definition: psimrcc/main.cc:80
AOIntegralsIterator integrals_iterator()
Definition: integraliter.cc:216
bool is_done()
Definition: integral.h:213
int usj_arr[3]
Definition: integral.h:234
#define PSI_API
Definition: pragma.h:155
std::vector< SphericalTransform > spherical_transforms_
Provides ability to transform to sphericals (d=0, f=1, g=2)
Definition: integral.h:386
int s() const
Definition: integral.h:370
int S
Definition: integral.h:339
int a() const
Returns the exponent of x.
Definition: integral.h:93
int l
Definition: integral.h:192
Definition: integral.h:335
int pureindex(int i) const
Returns the spherical harmonic basis index of component i.
Definition: integral.h:128
virtual void init()
Definition: libmints/transform.cc:69
int fil
Definition: integral.h:205
double coef_
Definition: integral.h:89
Definition: cartesianiter.h:148
std::shared_ptr< BasisSet > bs3_
Definition: integral.h:243
int n() const
Returns how many transforms are in this iterator.
Definition: integral.h:167
int q() const
Definition: integral.h:330
int num_unique_pk
Definition: integral.h:237
std::shared_ptr< SOBasisSet > bs4_
Definition: integral.h:353
const GaussianShell & usj
Definition: integral.h:198
int usll
Definition: integral.h:278
int a(int i) const
Returns the Cartesian basis function&#39;s x exponent of component i.
Definition: integral.h:132
int s() const
Definition: integral.h:260
std::shared_ptr< SOBasisSet > bs1_
Definition: integral.h:319
int i() const
Definition: integral.h:215
int p() const
Definition: integral.h:300
Definition: cartesianiter.h:36
int subl_
Definition: integral.h:115
int nj
Definition: integral.h:205
int nk
Definition: integral.h:205
Definition: pointgrp.h:137
bool done
Definition: integral.h:317
const SphericalTransform & trans_
Definition: integral.h:156
virtual ~SphericalTransform()
Definition: integral.h:123
int usll
Definition: integral.h:344
int Q
Definition: integral.h:337
std::shared_ptr< SOBasisSet > bs3_
Definition: integral.h:352
SphericalTransform()
Definition: libmints/transform.cc:58
std::shared_ptr< SOBasisSet > bs3_
Definition: integral.h:286
int iimax
Definition: integral.h:204
const SphericalTransform * spherical_transform(int am) const
Return spherical transform object for am.
Definition: integral.h:519
bool done
Definition: integral.h:239
bool is_done()
Definition: integral.h:255
int fii
Definition: integral.h:205
Definition: integral.h:266