MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
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
34namespace sc {
35
37class 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);
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:
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition dercent.h:42
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition integral.h:111
A template class that maintains references counts.
Definition ref.h:361
This implements electron repulsion derivative integrals in the IntV3 library.
Definition tbintv3.h:121
void compute_shell(int, int, int, int, DerivCenters &)
Given for shell indices, this will cause the derivative integral shell set to be computed.
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 geometric derivatives of the integrals involvi...
Definition tbint.h:554
Integral * integral() const
Return the integral factory that was used to create this object.
Definition tbint.h:654
This implements electron repulsion integrals in the IntV3 library.
Definition tbintv3.h:37
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
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...
Ref< TwoBodyInt > clone()
Returns a clone of this.
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition tbintv3.h:52
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition tbintv3.h:51
void compute_shell(int, int, int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
bool cloneable() const
Return true if the clone member can be called.
This is an abstract base type for classes that compute integrals involving two electrons and 2 functi...
Definition tbint.h:61
Integral * integral() const
Return the integral factory that was used to create this object.
Definition tbint.h:182
This implements electron repulsion integrals involving three centers in the IntV3 library.
Definition tbintv3.h:66
void compute_shell(int, int, int)
Given three shell indices, integrals will be computed and placed in the buffer.
Ref< TwoBodyThreeCenterInt > clone()
Returns a clone of this.
bool cloneable() const
Return true if the clone member can be called.
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition tbintv3.h:79
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition tbintv3.h:80
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...
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition tbint.h:191
Integral * integral() const
Return the integral factory that was used to create this object.
Definition tbint.h:295
This implements electron repulsion integrals involving two centers in the IntV3 library.
Definition tbintv3.h:94
void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
void compute_shell(int, int)
Given four shell indices, integrals will be computed and placed in the buffer.
TwoBodyOperSet::type type() const
Returns the type of the operator set that this object computes.
Definition tbintv3.h:106
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...
bool cloneable() const
Return true if the clone member can be called.
Ref< TwoBodyTwoCenterInt > clone()
Returns a clone of this.
const Ref< TwoBodyOperSetDescr > & descr() const
return the operator set descriptor
Definition tbintv3.h:107
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition tbint.h:305
Integral * integral() const
Return the integral factory that was used to create this object.
Definition tbint.h:401
Contains all MPQC code up to version 3.
Definition mpqcin.h:14
type
Definition operator.h:344
@ ERI
{eri}
Definition operator.h:345

Generated at Wed Sep 25 2024 02:45:29 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.