MPQC_IntegralEvaluator2_Impl.hh

00001 // 
00002 // File:          MPQC_IntegralEvaluator2_Impl.hh
00003 // Symbol:        MPQC.IntegralEvaluator2-v0.2
00004 // Symbol Type:   class
00005 // Babel Version: 0.10.2
00006 // Description:   Server-side implementation for MPQC.IntegralEvaluator2
00007 // 
00008 // WARNING: Automatically generated; only changes within splicers preserved
00009 // 
00010 // babel-version = 0.10.2
00011 // 
00012 
00013 #ifndef included_MPQC_IntegralEvaluator2_Impl_hh
00014 #define included_MPQC_IntegralEvaluator2_Impl_hh
00015 
00016 #ifndef included_sidl_cxx_hh
00017 #include "sidl_cxx.hh"
00018 #endif
00019 #ifndef included_MPQC_IntegralEvaluator2_IOR_h
00020 #include "MPQC_IntegralEvaluator2_IOR.h"
00021 #endif
00022 // 
00023 // Includes for all method dependencies.
00024 // 
00025 #ifndef included_Chemistry_QC_GaussianBasis_DerivCenters_hh
00026 #include "Chemistry_QC_GaussianBasis_DerivCenters.hh"
00027 #endif
00028 #ifndef included_Chemistry_QC_GaussianBasis_Molecular_hh
00029 #include "Chemistry_QC_GaussianBasis_Molecular.hh"
00030 #endif
00031 #ifndef included_MPQC_IntegralEvaluator2_hh
00032 #include "MPQC_IntegralEvaluator2.hh"
00033 #endif
00034 #ifndef included_sidl_BaseInterface_hh
00035 #include "sidl_BaseInterface.hh"
00036 #endif
00037 #ifndef included_sidl_ClassInfo_hh
00038 #include "sidl_ClassInfo.hh"
00039 #endif
00040 
00041 
00042 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._includes)
00043 #include <chemistry/qc/basis/gaussbas.h>
00044 #include <chemistry/qc/intv3/cartitv3.h>
00045 #include <chemistry/qc/intv3/intv3.h>
00046 #ifdef HAVE_CINTS
00047   #include <chemistry/qc/cints/cints.h>
00048 #endif
00049 using namespace sc;
00050 // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._includes)
00051 
00052 namespace MPQC { 
00053 
00057   class IntegralEvaluator2_impl
00058   // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._inherits)
00059 
00070   // Put additional inheritance here...
00071   // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._inherits)
00072   {
00073 
00074   private:
00075     // Pointer back to IOR.
00076     // Use this to dispatch back through IOR vtable.
00077     IntegralEvaluator2 self;
00078 
00079     // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._implementation)
00080     Chemistry::Molecule molecule_;
00081     std::string evaluator_label_;
00082     Ref<GaussianBasisSet> bs1_, bs2_;
00083     Ref<Integral> integral_;
00084     Ref<OneBodyInt> eval_;
00085     Ref<OneBodyDerivInt> deriv_eval_;
00086     int max_nshell2_;
00087     int maxam_;
00088     sidl::array<double> sidl_buffer_;
00089     const double *sc_buffer_;
00090     double *temp_buffer_;
00091     double *buf_;
00092     enum { one_body, one_body_deriv};
00093     int int_type_;
00094     int deriv_level_;
00095     std::string package_;
00096     int **reorder_;
00097     Chemistry::QC::GaussianBasis::DerivCenters deriv_centers_;
00098 
00099     void reorder_intv3(int64_t, int64_t);
00100     void initialize_reorder_intv3();
00101     void reorder_doublet( sc::GaussianShell*, sc::GaussianShell*, int, int, int );
00102     // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._implementation)
00103 
00104   private:
00105     // private default constructor (required)
00106     IntegralEvaluator2_impl() 
00107     {} 
00108 
00109   public:
00110     // sidl constructor (required)
00111     // Note: alternate Skel constructor doesn't call addref()
00112     // (fixes bug #275)
00113     IntegralEvaluator2_impl( struct MPQC_IntegralEvaluator2__object * s ) : 
00114       self(s,true) { _ctor(); }
00115 
00116     // user defined construction
00117     void _ctor();
00118 
00119     // virtual destructor (required)
00120     virtual ~IntegralEvaluator2_impl() { _dtor(); }
00121 
00122     // user defined destruction
00123     void _dtor();
00124 
00125     // static class initializer
00126     static void _load();
00127 
00128   public:
00129 
00133     void
00134     set_integral_package (
00135       /* in */ const ::std::string& label
00136     )
00137     throw () 
00138     ;
00139 
00140 
00148     void
00149     initialize (
00150       /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs1,
00151       /* in */ ::Chemistry::QC::GaussianBasis::Molecular bs2,
00152       /* in */ const ::std::string& label,
00153       /* in */ int64_t max_deriv
00154     )
00155     throw () 
00156     ;
00157 
00158 
00163     void*
00164     get_buffer() throw () 
00165     ;
00166 
00173     void
00174     set_derivcenters (
00175       /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters dc
00176     )
00177     throw () 
00178     ;
00179 
00180 
00188     void
00189     compute (
00190       /* in */ int64_t shellnum1,
00191       /* in */ int64_t shellnum2,
00192       /* in */ int64_t deriv_level,
00193       /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
00194     )
00195     throw () 
00196     ;
00197 
00198 
00208     ::sidl::array<double>
00209     compute_array (
00210       /* in */ int64_t shellnum1,
00211       /* in */ int64_t shellnum2,
00212       /* in */ int64_t deriv_level,
00213       /* in */ ::Chemistry::QC::GaussianBasis::DerivCenters deriv_ctr
00214     )
00215     throw () 
00216     ;
00217 
00218   };  // end class IntegralEvaluator2_impl
00219 
00220 } // end namespace MPQC
00221 
00222 // DO-NOT-DELETE splicer.begin(MPQC.IntegralEvaluator2._misc)
00223 // Put miscellaneous things here...
00224 // DO-NOT-DELETE splicer.end(MPQC.IntegralEvaluator2._misc)
00225 
00226 #endif

Generated at Mon Dec 3 23:23:39 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.