MPQC  2.3.1
MPQC_IntegralEvaluator4_Impl.hh
1 //
2 // File: MPQC_IntegralEvaluator4_Impl.hh
3 // Symbol: MPQC.IntegralEvaluator4-v0.2
4 // Symbol Type: class
5 // Babel Version: 0.10.2
6 // Description: Server-side implementation for MPQC.IntegralEvaluator4
7 //
8 // WARNING: Automatically generated; only changes within splicers preserved
9 //
10 // babel-version = 0.10.2
11 //
12 
13 #ifndef included_MPQC_IntegralEvaluator4_Impl_hh
14 #define included_MPQC_IntegralEvaluator4_Impl_hh
15 
16 #ifndef included_sidl_cxx_hh
17 #include "sidl_cxx.hh"
18 #endif
19 #ifndef included_MPQC_IntegralEvaluator4_IOR_h
20 #include "MPQC_IntegralEvaluator4_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_IntegralEvaluator4_hh
32 #include "MPQC_IntegralEvaluator4.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.IntegralEvaluator4._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.IntegralEvaluator4._includes)
51 
52 namespace MPQC {
53 
58  // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator4._inherits)
59 
70  // Put additional inheritance here...
71  // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator4._inherits)
72  {
73 
74  private:
75  // Pointer back to IOR.
76  // Use this to dispatch back through IOR vtable.
77  IntegralEvaluator4 self;
78 
79  // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator4._implementation)
80  Chemistry::Molecule molecule_;
81  std::string evaluator_label_;
86  Ref<sc::Integral> integral_;
87  Ref<sc::TwoBodyInt> eval_;
88  Ref<sc::TwoBodyDerivInt> deriv_eval_;
89  int max_nshell4_;
90  sidl::array<double> sidl_buffer_;
91  const double* sc_buffer_;
92  enum { two_body, two_body_deriv};
93  int int_type_;
94  int deriv_level_;
95  std::string package_;
96 
97  // reorder stuff
98  int bufn_;
99  int **reorder_;
100  double *buf_;
101  double *temp_buffer_;
102  int index_, con2_offset_, con3_offset_, con4_offset_, con_offset_,
103  local2_offset_, local3_offset_, local4_offset_,
104  c1_base_, c2_base_, c3_base_, c4_base_,
105  s1_is_cart_, s2_is_cart_, s3_is_cart_, s4_is_cart_,
106  s1_nfunc_, s2_nfunc_, s3_nfunc_, s4_nfunc_,
107  nc1_, nc2_, nc3_, nc4_;
108  sc::GaussianShell *s1_, *s2_, *s3_, *s4_;
109 
110  void reorder_intv3(int64_t,int64_t,int64_t,int64_t);
111  void reorder_quartet( sc::GaussianShell*, sc::GaussianShell*,
113  int, int, int, int, int );
114  void reorder_intv3_inline(int64_t,int64_t,int64_t,int64_t);
115  void initialize_reorder_intv3();
116  void reorder_c4(int,int,int,int,int,int);
117  // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator4._implementation)
118 
119  private:
120  // private default constructor (required)
122  {}
123 
124  public:
125  // sidl constructor (required)
126  // Note: alternate Skel constructor doesn't call addref()
127  // (fixes bug #275)
128  IntegralEvaluator4_impl( struct MPQC_IntegralEvaluator4__object * s ) :
129  self(s,true) { _ctor(); }
130 
131  // user defined construction
132  void _ctor();
133 
134  // virtual destructor (required)
135  virtual ~IntegralEvaluator4_impl() { _dtor(); }
136 
137  // user defined destruction
138  void _dtor();
139 
140  // static class initializer
141  static void _load();
142 
143  public:
144 
148  void
149  set_integral_package (
150  /* in */ const ::std::string& label
151  )
152  throw ()
153  ;
154 
155 
165  void
166  initialize (
167  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs1,
168  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs2,
169  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs3,
170  /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs4,
171  /* in */ const ::std::string& label,
172  /* in */ int64_t max_deriv
173  )
174  throw ()
175  ;
176 
177 
182  void*
183  get_buffer() throw ()
184  ;
185 
195  void
196  compute (
197  /* in */ int64_t shellnum1,
198  /* in */ int64_t shellnum2,
199  /* in */ int64_t shellnum3,
200  /* in */ int64_t shellnum4,
201  /* in */ int64_t deriv_level,
202  /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
203  )
204  throw ()
205  ;
206 
207 
219  ::sidl::array<double>
220  compute_array (
221  /* in */ int64_t shellnum1,
222  /* in */ int64_t shellnum2,
223  /* in */ int64_t shellnum3,
224  /* in */ int64_t shellnum4,
225  /* in */ int64_t deriv_level,
226  /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
227  )
228  throw ()
229  ;
230 
231  }; // end class IntegralEvaluator4_impl
232 
233 } // end namespace MPQC
234 
235 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator4._misc)
236 // Put miscellaneous things here...
237 // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator4._misc)
238 
239 #endif
sc::Ref< sc::GaussianBasisSet >
MPQC::IntegralEvaluator4_impl
Symbol "MPQC.IntegralEvaluator4" (version 0.2)
Definition: MPQC_IntegralEvaluator4_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.