MPQC  2.3.1
tbintv3.h
1 //
2 // tbintv3.h
3 //
4 // Copyright (C) 1996 Limit Point Systems, Inc.
5 //
6 // Author: Curtis Janssen <cljanss@limitpt.com>
7 // Maintainer: LPS
8 //
9 // This file is part of the SC Toolkit.
10 //
11 // The SC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The SC Toolkit is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifndef _chemistry_qc_intv3_tbintv3_h
29 #define _chemistry_qc_intv3_tbintv3_h
30 
31 #include <chemistry/qc/basis/tbint.h>
32 #include <chemistry/qc/intv3/int2e.h>
33 
34 namespace sc {
35 
37 class TwoBodyIntV3 : public TwoBodyInt {
38  protected:
39  Ref<Int2eV3> int2ev3_;
40 
41  public:
43  const Ref<GaussianBasisSet>&b1,
44  const Ref<GaussianBasisSet>&b2,
45  const Ref<GaussianBasisSet>&b3,
46  const Ref<GaussianBasisSet>&b4,
47  size_t storage);
48  ~TwoBodyIntV3();
49 
50  int log2_shell_bound(int,int,int,int);
51  void compute_shell(int,int,int,int);
52 
53  size_t storage_used() { return int2ev3_->storage_used(); }
54  void set_integral_storage(size_t storage);
55 };
56 
60  protected:
61  Ref<Int2eV3> int2ev3_;
62 
63  public:
65  const Ref<GaussianBasisSet>&b1,
66  const Ref<GaussianBasisSet>&b2,
67  const Ref<GaussianBasisSet>&b3,
68  size_t storage);
70 
71  int log2_shell_bound(int,int,int);
72  void compute_shell(int,int,int);
73 
74  size_t storage_used() { return int2ev3_->storage_used(); }
75  void set_integral_storage(size_t storage);
76 };
77 
81  protected:
82  Ref<Int2eV3> int2ev3_;
83 
84  public:
86  const Ref<GaussianBasisSet>&b1,
87  const Ref<GaussianBasisSet>&b2,
88  size_t storage);
90 
91  int log2_shell_bound(int,int);
92  void compute_shell(int,int);
93 
94  size_t storage_used() { return int2ev3_->storage_used(); }
95  void set_integral_storage(size_t storage);
96 };
97 
101  protected:
102  Ref<Int2eV3> int2ev3_;
103 
104  public:
105  TwoBodyDerivIntV3(Integral*integral,
106  const Ref<GaussianBasisSet>&b1,
107  const Ref<GaussianBasisSet>&b2,
108  const Ref<GaussianBasisSet>&b3,
109  const Ref<GaussianBasisSet>&b4,
110  size_t storage);
112 
113  int log2_shell_bound(int,int,int,int);
114  void compute_shell(int,int,int,int,DerivCenters&);
115 
116  size_t storage_used() { return int2ev3_->storage_used(); }
117 };
118 
119 }
120 
121 #endif
122 
123 // Local Variables:
124 // mode: c++
125 // c-file-style: "CLJ"
126 // End:
This implements electron repulsion derivative integrals in the IntV3 library.
Definition: tbintv3.h:100
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition: tbint.h:244
int log2_shell_bound(int, int, int, int)
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_she...
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:58
void compute_shell(int, int, int, int, DerivCenters &)
Given for shell indices, this will cause the integral buffer to be filled in.
A template class that maintains references counts.
Definition: ref.h:332
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
int log2_shell_bound(int, int)
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_she...
This implements electron repulsion integrals in the IntV3 library.
Definition: tbintv3.h:37
void compute_shell(int, int, int)
Given three shell indices, integrals will be computed and placed in the buffer.
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:141
Definition: mpqcin.h:13
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition: dercent.h:41
int log2_shell_bound(int, int, int)
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_she...
int log2_shell_bound(int, int, int, int)
Return log base 2 of the maximum magnitude of any integral in a shell block.
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:49
void compute_shell(int, int, int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition: tbint.h:150
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:422
void compute_shell(int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:234
This implements electron repulsion integrals involving two centers in the IntV3 library.
Definition: tbintv3.h:80
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:320
This implements electron repulsion integrals involving three centers in the IntV3 library...
Definition: tbintv3.h:59

Generated at Fri Feb 16 2018 01:48:56 for MPQC 2.3.1 using the documentation package Doxygen 1.8.14.