MPQC 2.3.1

- Main Page
- Related Pages
- Classes
- Files

- File List

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:
50 TwoBodyIntCCA(Integral*,
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
70 class TwoBodyDerivIntCCA : public TwoBodyDerivInt {
71 protected:
72 Ref<Int2eCCA> int2ecca_;
73
74 public:
75 TwoBodyDerivIntCCA(Integral*,
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: