MPQC  2.3.1
tbintcca.h
1 //
2 // tbintcca.h
3 //
4 // Copyright (C) 2004, Sandia National Laboratories
5 //
6 // Author: Joe Kenny <jpkenny@sandia.gov>
7 // Maintainer: Joe Kenny
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 #ifdef __GNUG__
29 #pragma interface
30 #endif
31 
32 #ifndef _chemistry_qc_intcca_tbintcca_h
33 #define _chemistry_qc_intcca_tbintcca_h
34 
35 #include <chemistry/qc/basis/tbint.h>
36 #include <chemistry/qc/intcca/int2e.h>
37 #include <Chemistry_QC_GaussianBasis_IntegralEvaluatorFactory.hh>
38 
39 using namespace std;
40 using namespace Chemistry::QC::GaussianBasis;
41 
42 namespace sc {
43 
45 class TwoBodyIntCCA : public TwoBodyInt {
46  protected:
47  Ref<Int2eCCA> int2ecca_;
48 
49  public:
51  const Ref<GaussianBasisSet>&b1,
52  const Ref<GaussianBasisSet>&b2,
53  const Ref<GaussianBasisSet>&b3,
54  const Ref<GaussianBasisSet>&b4,
55  size_t storage, IntegralEvaluatorFactory,
56  bool, string );
57  ~TwoBodyIntCCA() {};
58 
59  int log2_shell_bound(int,int,int,int);
60  void compute_shell(int,int,int,int);
61 
62  size_t storage_used();
63  void set_integral_storage(size_t storage);
64  int redundant() const { return int2ecca_->redundant(); }
65  void set_redundant(int i) { int2ecca_->set_redundant(i); }
66 };
67 
71  protected:
72  Ref<Int2eCCA> int2ecca_;
73 
74  public:
76  const Ref<GaussianBasisSet>&b1,
77  const Ref<GaussianBasisSet>&b2,
78  const Ref<GaussianBasisSet>&b3,
79  const Ref<GaussianBasisSet>&b4,
80  size_t storage, IntegralEvaluatorFactory, bool, string);
81  ~TwoBodyDerivIntCCA() {};
82 
83  int log2_shell_bound(int,int,int,int);
84  void compute_shell(int,int,int,int,DerivCenters&);
85 
86  size_t storage_used();
87  void set_integral_storage(size_t storage);
88  int redundant() const { return int2ecca_->redundant(); }
89  void set_redundant(int i) { int2ecca_->set_redundant(i); }
90 };
91 
92 }
93 
94 #endif
95 
96 // Local Variables:
97 // mode: c++
98 // c-file-style: "CLJ"
99 // End:
sc::TwoBodyInt
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:49
sc::TwoBodyDerivIntCCA
This implements two body derivative integrals through the CCA interface.
Definition: tbintcca.h:70
sc::TwoBodyIntCCA::redundant
int redundant() const
If redundant is true, then keep redundant integrals in the buffer.
Definition: tbintcca.h:64
sc::Ref
A template class that maintains references counts.
Definition: ref.h:332
sc::TwoBodyIntCCA
This implements two body integrals through the CCA interface.
Definition: tbintcca.h:45
sc::TwoBodyDerivInt
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:422
sc::Integral
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:58
sc::TwoBodyIntCCA::set_redundant
void set_redundant(int i)
See redundant().
Definition: tbintcca.h:65
sc::DerivCenters
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition: dercent.h:41

Generated at Sun Jan 26 2020 23:33:05 for MPQC 2.3.1 using the documentation package Doxygen 1.8.16.