MPQC  3.0.0-alpha
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_;
41 
42  public:
44  const Ref<GaussianBasisSet>&b1,
45  const Ref<GaussianBasisSet>&b2,
46  const Ref<GaussianBasisSet>&b3,
47  const Ref<GaussianBasisSet>&b4,
48  size_t storage);
49  virtual ~TwoBodyIntV3();
50 
52  const Ref<TwoBodyOperSetDescr>& descr() const { return descr_; }
53 
54  bool cloneable() const;
56 
57  int log2_shell_bound(int,int,int,int);
58  void compute_shell(int,int,int,int);
59 
60  size_t storage_used() { return int2ev3_->storage_used(); }
61  void set_integral_storage(size_t storage);
62 };
63 
67  protected:
68  Ref<Int2eV3> int2ev3_;
70 
71  public:
73  const Ref<GaussianBasisSet>&b1,
74  const Ref<GaussianBasisSet>&b2,
75  const Ref<GaussianBasisSet>&b3,
76  size_t storage);
77  virtual ~TwoBodyThreeCenterIntV3();
78 
80  const Ref<TwoBodyOperSetDescr>& descr() const { return descr_; }
81 
82  bool cloneable() const;
84 
85  int log2_shell_bound(int,int,int);
86  void compute_shell(int,int,int);
87 
88  size_t storage_used() { return int2ev3_->storage_used(); }
89  void set_integral_storage(size_t storage);
90 };
91 
95  protected:
96  Ref<Int2eV3> int2ev3_;
98 
99  public:
101  const Ref<GaussianBasisSet>&b1,
102  const Ref<GaussianBasisSet>&b2,
103  size_t storage);
104  virtual ~TwoBodyTwoCenterIntV3();
105 
107  const Ref<TwoBodyOperSetDescr>& descr() const { return descr_; }
108 
109  bool cloneable() const;
111 
112  int log2_shell_bound(int,int);
113  void compute_shell(int,int);
114 
115  size_t storage_used() { return int2ev3_->storage_used(); }
116  void set_integral_storage(size_t storage);
117 };
118 
122  protected:
123  Ref<Int2eV3> int2ev3_;
124 
125  public:
127  const Ref<GaussianBasisSet>&b1,
128  const Ref<GaussianBasisSet>&b2,
129  const Ref<GaussianBasisSet>&b3,
130  const Ref<GaussianBasisSet>&b4,
131  size_t storage);
132  virtual ~TwoBodyDerivIntV3();
133 
134  int log2_shell_bound(int,int,int,int);
135  void compute_shell(int,int,int,int,DerivCenters&);
136 
137  size_t storage_used() { return int2ev3_->storage_used(); }
138 };
139 
140 }
141 
142 #endif
143 
144 // Local Variables:
145 // mode: c++
146 // c-file-style: "CLJ"
147 // End:
sc::TwoBodyTwoCenterIntV3
This implements electron repulsion integrals involving two centers in the IntV3 library.
Definition: tbintv3.h:94
sc::TwoBodyThreeCenterIntV3::descr
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition: tbintv3.h:80
sc::TwoBodyIntV3::type
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition: tbintv3.h:51
sc::TwoBodyIntV3::set_integral_storage
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
sc::TwoBodyInt
This is an abstract base type for classes that compute integrals involving two electrons and 2 functi...
Definition: tbint.h:61
sc::TwoBodyTwoCenterInt
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition: tbint.h:305
sc::TwoBodyIntV3::descr
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition: tbintv3.h:52
sc::TwoBodyThreeCenterInt::integral
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:295
sc::TwoBodyOperSet::type
type
Definition: operator.h:344
sc::TwoBodyIntV3::cloneable
bool cloneable() const
Return true if the clone member can be called.
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::TwoBodyTwoCenterIntV3::cloneable
bool cloneable() const
Return true if the clone member can be called.
sc::TwoBodyThreeCenterIntV3::set_integral_storage
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
sc::TwoBodyIntV3
This implements electron repulsion integrals in the IntV3 library.
Definition: tbintv3.h:37
sc::TwoBodyDerivIntV3::compute_shell
void compute_shell(int, int, int, int, DerivCenters &)
Given for shell indices, this will cause the derivative integral shell set to be computed.
sc::TwoBodyIntV3::clone
Ref< TwoBodyInt > clone()
Returns a clone of this.
sc::TwoBodyInt::integral
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:182
sc::TwoBodyTwoCenterIntV3::compute_shell
void compute_shell(int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
sc::TwoBodyIntV3::compute_shell
void compute_shell(int, int, int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
sc::TwoBodyTwoCenterIntV3::clone
Ref< TwoBodyTwoCenterInt > clone()
Returns a clone of this.
sc::TwoBodyThreeCenterIntV3::compute_shell
void compute_shell(int, int, int)
Given three shell indices, integrals will be computed and placed in the buffer.
sc::TwoBodyThreeCenterIntV3
This implements electron repulsion integrals involving three centers in the IntV3 library.
Definition: tbintv3.h:66
sc::TwoBodyTwoCenterIntV3::log2_shell_bound
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...
sc::TwoBodyThreeCenterIntV3::cloneable
bool cloneable() const
Return true if the clone member can be called.
sc::TwoBodyIntV3::log2_shell_bound
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...
sc::TwoBodyThreeCenterIntV3::log2_shell_bound
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...
sc::TwoBodyDerivInt
This is an abstract base type for classes that compute geometric derivatives of the integrals involvi...
Definition: tbint.h:554
sc::TwoBodyOperSet::ERI
{eri}
Definition: operator.h:345
sc::TwoBodyDerivInt::integral
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:654
sc::Integral
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:111
sc::TwoBodyTwoCenterIntV3::set_integral_storage
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
sc::TwoBodyDerivIntV3::log2_shell_bound
int log2_shell_bound(int, int, int, int)
Return log base 2 of the maximum magnitude of any integral in a shell block.
sc::TwoBodyTwoCenterIntV3::descr
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition: tbintv3.h:107
sc::TwoBodyTwoCenterIntV3::type
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition: tbintv3.h:106
sc::TwoBodyThreeCenterInt
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition: tbint.h:191
sc::TwoBodyTwoCenterInt::integral
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:401
sc::TwoBodyThreeCenterIntV3::type
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition: tbintv3.h:79
sc::DerivCenters
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition: dercent.h:42
sc::TwoBodyThreeCenterIntV3::clone
Ref< TwoBodyThreeCenterInt > clone()
Returns a clone of this.
sc::TwoBodyDerivIntV3
This implements electron repulsion derivative integrals in the IntV3 library.
Definition: tbintv3.h:121
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:23:57 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.