MPQC  2.3.1
intcca/int1e.h
1 //
2 // int1e.h
3 //
4 // Copyright (C) 2004 Sandia National Laboratories.
5 //
6 // Author: Joseph Kenny <jpkenny@sandia.gov>
7 // Maintainer: JPK
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_int1e_h
33 #define _chemistry_qc_intcca_int1e_h
34 
35 #include <sidl_cxx.hh>
36 #include <Chemistry_QC_GaussianBasis_IntegralEvaluatorFactory.hh>
37 #include <Chemistry_QC_GaussianBasis_IntegralEvaluator2.hh>
38 #include <Chemistry_QC_GaussianBasis_Molecular.hh>
39 #include <Chemistry_Chemistry_QC_GaussianBasis_DerivCenters.hh>
40 #include <Chemistry_Chemistry_QC_GaussianBasis_DerivCenters.hh>
41 #include <MPQC_GaussianBasis_Molecular.hh>
42 #include <chemistry/qc/basis/integral.h>
43 
44 using namespace std;
45 using namespace Chemistry;
46 using namespace Chemistry::QC::GaussianBasis;
47 using namespace MPQC;
48 namespace sc {
49 
50 class Integral;
51 
55 class Int1eCCA: public RefCount {
56 
57  private:
58  IntegralEvaluatorFactory eval_factory_;
61  GaussianBasis_Molecular cca_bs1_;
62  GaussianBasis_Molecular cca_bs2_;
63  sidl::array<double> sidl_buffer_;
64  double *buff_;
65  bool use_opaque_;
66  void copy_buffer();
67  IntegralEvaluator2 overlap_;
68  IntegralEvaluator2 overlap_1der_;
69  IntegralEvaluator2 kinetic_;
70  IntegralEvaluator2 kinetic_1der_;
71  IntegralEvaluator2 nuclear_;
72  IntegralEvaluator2 nuclear_1der_;
73  IntegralEvaluator2 hcore_;
74  IntegralEvaluator2 hcore_1der_;
75  IntegralEvaluator2 *overlap_ptr_;
76  IntegralEvaluator2 *overlap_1der_ptr_;
77  IntegralEvaluator2 *kinetic_ptr_;
78  IntegralEvaluator2 *kinetic_1der_ptr_;
79  IntegralEvaluator2 *nuclear_ptr_;
80  IntegralEvaluator2 *nuclear_1der_ptr_;
81  IntegralEvaluator2 *hcore_ptr_;
82  IntegralEvaluator2 *hcore_1der_ptr_;
83  Chemistry_QC_GaussianBasis_DerivCenters cca_dc_;
84 
85  protected:
86  Integral *integral_;
87 
88  public:
89  Int1eCCA(Integral *integral,
90  const Ref<GaussianBasisSet>&b1,
91  const Ref<GaussianBasisSet>&b2,
92  int order, IntegralEvaluatorFactory, std::string, bool);
93  ~Int1eCCA();
94 
95  double *buffer() { return buff_; }
96  void overlap(int ish, int jsh);
97  void overlap_1der(int ish, int jsh,
98  Chemistry_QC_GaussianBasis_DerivCenters &dc);
99  void kinetic(int ish, int jsh);
100  void kinetic_1der(int ish, int jsh,
101  Chemistry_QC_GaussianBasis_DerivCenters &dc);
102  void nuclear(int ish, int jsh);
103  void nuclear_1der(int ish, int jsh,
104  Chemistry_QC_GaussianBasis_DerivCenters &dc);
105  void hcore(int ish, int jsh);
106  void hcore_1der(int ish, int jsh,
107  Chemistry_QC_GaussianBasis_DerivCenters &dc);
108 };
109 
110 }
111 
112 #endif
113 
114 // Local Variables:
115 // mode: c++
116 // End:
sc::Ref< GaussianBasisSet >
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::Int1eCCA
Int1eCCA adapts CCA integrals components for use within SC.
Definition: intcca/int1e.h:55
sc::RefCount
The base class for all reference counted objects.
Definition: ref.h:194

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