|
tbintv3.h00001 // 00002 // tbintv3.h 00003 // 00004 // Copyright (C) 1996 Limit Point Systems, Inc. 00005 // 00006 // Author: Curtis Janssen <cljanss@limitpt.com> 00007 // Maintainer: LPS 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_qc_intv3_tbintv3_h 00029 #define _chemistry_qc_intv3_tbintv3_h 00030 00031 #include <chemistry/qc/basis/tbint.h> 00032 #include <chemistry/qc/intv3/int2e.h> 00033 00034 namespace sc { 00035 00037 class TwoBodyIntV3 : public TwoBodyInt { 00038 protected: 00039 Ref<Int2eV3> int2ev3_; 00040 00041 public: 00042 TwoBodyIntV3(Integral*integral, 00043 const Ref<GaussianBasisSet>&b1, 00044 const Ref<GaussianBasisSet>&b2, 00045 const Ref<GaussianBasisSet>&b3, 00046 const Ref<GaussianBasisSet>&b4, 00047 size_t storage); 00048 ~TwoBodyIntV3(); 00049 00050 int log2_shell_bound(int,int,int,int); 00051 void compute_shell(int,int,int,int); 00052 00053 size_t storage_used() { return int2ev3_->storage_used(); } 00054 void set_integral_storage(size_t storage); 00055 }; 00056 00059 class TwoBodyDerivIntV3 : public TwoBodyDerivInt { 00060 protected: 00061 Ref<Int2eV3> int2ev3_; 00062 00063 public: 00064 TwoBodyDerivIntV3(Integral*integral, 00065 const Ref<GaussianBasisSet>&b1, 00066 const Ref<GaussianBasisSet>&b2, 00067 const Ref<GaussianBasisSet>&b3, 00068 const Ref<GaussianBasisSet>&b4, 00069 size_t storage); 00070 ~TwoBodyDerivIntV3(); 00071 00072 int log2_shell_bound(int,int,int,int); 00073 void compute_shell(int,int,int,int,DerivCenters&); 00074 00075 size_t storage_used() { return int2ev3_->storage_used(); } 00076 }; 00077 00078 } 00079 00080 #endif 00081 00082 // Local Variables: 00083 // mode: c++ 00084 // c-file-style: "CLJ" 00085 // End: Generated at Fri Jan 10 08:14:10 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14. |