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
49using namespace sc;
50// DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator4._includes)
51
52namespace MPQC {
53
57 class IntegralEvaluator4_impl
58 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator4._inherits)
59
69
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_;
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)
121 IntegralEvaluator4_impl()
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
150 /* in */ const ::std::string& label
151 )
152 throw ()
153 ;
154
155
165 void
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
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>
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
void set_integral_package(const ::std::string &label)
user defined non-static method.
void initialize(::Chemistry::QC::GaussianBasis::Molecular bs1, ::Chemistry::QC::GaussianBasis::Molecular bs2, ::Chemistry::QC::GaussianBasis::Molecular bs3, ::Chemistry::QC::GaussianBasis::Molecular bs4, const ::std::string &label, int64_t max_deriv)
Initialize the evaluator.
void compute(int64_t shellnum1, int64_t shellnum2, int64_t shellnum3, int64_t shellnum4, int64_t deriv_level, ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr)
Compute a shell quartet of integrals.
::sidl::array< double > compute_array(int64_t shellnum1, int64_t shellnum2, int64_t shellnum3, int64_t shellnum4, int64_t deriv_level, ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr)
Compute a shell quartet of integrals and return as a borrowed sidl array.
void * get_buffer()
Get the buffer pointer.
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition dercent.h:41
A Gaussian orbital shell.
Definition gaussshell.h:48
A template class that maintains references counts.
Definition ref.h:332

Generated at Fri Jan 31 2025 00:00:00 for MPQC 2.3.1 using the documentation package Doxygen 1.14.0.