|
MPQC
3.0.0-alpha
|
00001 // 00002 // obintcca.h 00003 // 00004 // Copyright (C) 2004, Sandia National Laboratories 00005 // 00006 // Author: Joe Kenny <jpkenny@sandia.gov> 00007 // Maintainer: Joe Kenny 00008 // 00009 // This file is part of the SC Toolkit. 00010 // 00011 // The SC Toolkit is free software; you can redistribute it and/or modify 00012 // it under the terms of the GNU Library General Public License as published by 00013 // the Free Software Foundation; either version 2, or (at your option) 00014 // any later version. 00015 // 00016 // The SC Toolkit is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 // GNU Library General Public License for more details. 00020 // 00021 // You should have received a copy of the GNU Library General Public License 00022 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to 00023 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 00024 // 00025 // The U.S. Government is granted a limited license as per AL 91-7. 00026 // 00027 00028 #ifndef _chemistry_cca_int_obintcca_h 00029 #define _chemistry_cca_int_obintcca_h 00030 00031 #include <vector> 00032 #include <sidl_cxx.hxx> 00033 #include <chemistry/qc/basis/obint.h> 00034 #include <Chemistry_QC_GaussianBasis_IntegralEvaluatorFactoryInterface.hxx> 00035 #include <Chemistry_QC_GaussianBasis_CompositeDescrInterface.hxx> 00036 #include <Chemistry_QC_GaussianBasis_DerivCentersInterface.hxx> 00037 #include <MPQC_GaussianBasisMolecular.hxx> 00038 00039 namespace sc { 00040 00041 // ///////////////////////////////////////////////////////////////////////// 00042 00045 class OneBodyIntCCA : public OneBodyInt { 00046 00047 private: 00048 Integral* integral_; 00049 Ref<GaussianBasisSet> bs1_, bs2_; 00050 Chemistry::QC::GaussianBasis::IntegralEvaluatorFactoryInterface eval_factory_; 00051 Chemistry::QC::GaussianBasis::CompositeDescrInterface cdesc_; 00052 bool reorder_; 00053 MPQC::GaussianBasisMolecular cca_bs1_, cca_bs2_; 00054 Chemistry::QC::GaussianBasis::IntegralEvaluator2Interface eval_; 00055 double* temp_buffer_; 00056 int n_segment_; 00057 std::string type_; 00058 sidl::array<double> sidl_buffer_; 00059 00060 protected: 00061 00062 public: 00063 OneBodyIntCCA( Integral* integral, 00064 const Ref<GaussianBasisSet>&, 00065 const Ref<GaussianBasisSet>&, 00066 Chemistry::QC::GaussianBasis::IntegralEvaluatorFactoryInterface, 00067 Chemistry::QC::GaussianBasis::CompositeDescrInterface, 00068 bool ); 00069 ~OneBodyIntCCA(); 00070 void compute_shell(int,int); 00071 bool cloneable(); 00072 Ref<OneBodyInt> clone(); 00073 }; 00074 00076 00080 class OneBodyDerivIntCCA : public OneBodyDerivInt { 00081 00082 private: 00083 Integral* integral_; 00084 Ref<GaussianBasisSet> bs1_, bs2_; 00085 Chemistry::QC::GaussianBasis::IntegralEvaluatorFactoryInterface eval_factory_; 00086 Chemistry::QC::GaussianBasis::CompositeDescrInterface cdesc_; 00087 bool reorder_; 00088 MPQC::GaussianBasisMolecular cca_bs1_, cca_bs2_; 00089 double* buff_; 00090 double* temp_buffer_; 00091 Chemistry::QC::GaussianBasis::IntegralEvaluator2Interface eval_; 00092 Chemistry::QC::GaussianBasis::DerivCentersInterface cca_dc_; 00093 int n_segment_; 00094 std::string type_; 00095 sidl::array<double> sidl_buffer_; 00096 00097 public: 00098 OneBodyDerivIntCCA( Integral* integral, 00099 const Ref<GaussianBasisSet>&, 00100 const Ref<GaussianBasisSet>&, 00101 Chemistry::QC::GaussianBasis::IntegralEvaluatorFactoryInterface, 00102 Chemistry::QC::GaussianBasis::CompositeDescrInterface, 00103 bool ); 00104 ~OneBodyDerivIntCCA(); 00105 void compute_shell(int, int, DerivCenters&); 00106 void compute_shell(int, int, int); 00107 bool cloneable(); 00108 Ref<OneBodyDerivInt> clone(); 00109 }; 00110 00111 } 00112 00113 #endif 00114 00115 // Local Variables: 00116 // mode: c++ 00117 // c-file-style: "CLJ" 00118 // End: