MPQC  2.3.1
MPQC_IntegralEvaluator2_Impl.hh
1 //
2 // File: MPQC_IntegralEvaluator2_Impl.hh
3 // Symbol: MPQC.IntegralEvaluator2-v0.2
4 // Symbol Type: class
5 // Babel Version: 0.10.2
6 // Description: Server-side implementation for MPQC.IntegralEvaluator2
7 //
8 // WARNING: Automatically generated; only changes within splicers preserved
9 //
10 // babel-version = 0.10.2
11 //
12 
13 #ifndef included_MPQC_IntegralEvaluator2_Impl_hh
14 #define included_MPQC_IntegralEvaluator2_Impl_hh
15 
16 #ifndef included_sidl_cxx_hh
17 #include "sidl_cxx.hh"
18 #endif
19 #ifndef included_MPQC_IntegralEvaluator2_IOR_h
20 #include "MPQC_IntegralEvaluator2_IOR.h"
21 #endif
22 //
23 // Includes for all method dependencies.
24 //
25 #ifndef included_Chemistry_QC_GaussianBasis_DerivCenters_hh
26 #include "Chemistry_QC_GaussianBasis_DerivCenters.hh"
27 #endif
28 #ifndef included_Chemistry_QC_GaussianBasis_Molecular_hh
29 #include "Chemistry_QC_GaussianBasis_Molecular.hh"
30 #endif
31 #ifndef included_MPQC_IntegralEvaluator2_hh
32 #include "MPQC_IntegralEvaluator2.hh"
33 #endif
34 #ifndef included_sidl_BaseInterface_hh
35 #include "sidl_BaseInterface.hh"
36 #endif
37 #ifndef included_sidl_ClassInfo_hh
38 #include "sidl_ClassInfo.hh"
39 #endif
40 
41 
42 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._includes)
43 #include <chemistry/qc/basis/gaussbas.h>
44 #include <chemistry/qc/intv3/cartitv3.h>
45 #include <chemistry/qc/intv3/intv3.h>
46 #ifdef HAVE_CINTS
47  #include <chemistry/qc/cints/cints.h>
48 #endif
49 using namespace sc;
50 // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._includes)
51 
52 namespace MPQC {
53 
58  // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._inherits)
59 
70  // Put additional inheritance here...
71  // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._inherits)
72  {
73 
74  private:
75  // Pointer back to IOR.
76  // Use this to dispatch back through IOR vtable.
77  IntegralEvaluator2 self;
78 
79  // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._implementation)
80  Chemistry::Molecule molecule_;
81  std::string evaluator_label_;
82  Ref<GaussianBasisSet> bs1_, bs2_;
83  Ref<Integral> integral_;
84  Ref<OneBodyInt> eval_;
85  Ref<OneBodyDerivInt> deriv_eval_;
86  int max_nshell2_;
87  int maxam_;
88  sidl::array<double> sidl_buffer_;
89  const double *sc_buffer_;
90  double *temp_buffer_;
91  double *buf_;
92  enum { one_body, one_body_deriv};
93  int int_type_;
94  int deriv_level_;
95  std::string package_;
96  int **reorder_;
97  Chemistry::QC::GaussianBasis::DerivCenters deriv_centers_;
98 
99  void reorder_intv3(int64_t, int64_t);
100  void initialize_reorder_intv3();
101  void reorder_doublet( sc::GaussianShell*, sc::GaussianShell*, int, int, int );
102  // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._implementation)
103 
104  private:
105  // private default constructor (required)
107  {}
108 
109  public:
110  // sidl constructor (required)
111  // Note: alternate Skel constructor doesn't call addref()
112  // (fixes bug #275)
113  IntegralEvaluator2_impl( struct MPQC_IntegralEvaluator2__object * s ) :
114  self(s,true) { _ctor(); }
115 
116  // user defined construction
117  void _ctor();
118 
119  // virtual destructor (required)
120  virtual ~IntegralEvaluator2_impl() { _dtor(); }
121 
122  // user defined destruction
123  void _dtor();
124 
125  // static class initializer
126  static void _load();
127 
128  public:
129 
133  void
134  set_integral_package (
135  /* in */ const ::std::string& label
136  )
137  throw ()
138  ;
139 
140 
148  void
149  initialize (
150  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs1,
151  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs2,
152  /* in */ const ::std::string& label,
153  /* in */ int64_t max_deriv
154  )
155  throw ()
156  ;
157 
158 
163  void*
164  get_buffer() throw ()
165  ;
166 
173  void
174  set_derivcenters (
175  /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters dc
176  )
177  throw ()
178  ;
179 
180 
188  void
189  compute (
190  /* in */ int64_t shellnum1,
191  /* in */ int64_t shellnum2,
192  /* in */ int64_t deriv_level,
193  /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
194  )
195  throw ()
196  ;
197 
198 
208  ::sidl::array<double>
209  compute_array (
210  /* in */ int64_t shellnum1,
211  /* in */ int64_t shellnum2,
212  /* in */ int64_t deriv_level,
213  /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
214  )
215  throw ()
216  ;
217 
218  }; // end class IntegralEvaluator2_impl
219 
220 } // end namespace MPQC
221 
222 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._misc)
223 // Put miscellaneous things here...
224 // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._misc)
225 
226 #endif
sc::Ref< GaussianBasisSet >
MPQC::IntegralEvaluator2_impl
Symbol "MPQC.IntegralEvaluator2" (version 0.2)
Definition: MPQC_IntegralEvaluator2_Impl.hh:57
sc::GaussianShell
A Gaussian orbital shell.
Definition: gaussshell.h:47

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