Main Page | Class Hierarchy | Class List | File List | Class Members | Related Pages

obintv3.h

00001 // 00002 // obintv3.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_obintv3_h 00029 #define _chemistry_qc_intv3_obintv3_h 00030 00031 #include <chemistry/qc/basis/obint.h> 00032 #include <chemistry/qc/intv3/int1e.h> 00033 00034 namespace sc { 00035 00036 // ///////////////////////////////////////////////////////////////////////// 00037 00041 class OneBodyIntV3 : public OneBodyInt { 00042 protected: 00043 Ref<Int1eV3> int1ev3_; 00044 typedef void (Int1eV3::*IntegralFunction)(int,int); 00045 IntegralFunction intfunc_; 00046 public: 00047 OneBodyIntV3(Integral*, 00048 const Ref<GaussianBasisSet>&, const Ref<GaussianBasisSet>&, 00049 IntegralFunction); 00050 ~OneBodyIntV3(); 00051 void compute_shell(int,int); 00052 bool cloneable(); 00053 Ref<OneBodyInt> clone(); 00054 }; 00055 00056 class PointChargeIntV3 : public OneBodyInt 00057 { 00058 protected: 00059 Ref<Int1eV3> int1ev3_; 00060 Ref<PointChargeData> data_; 00061 public: 00062 PointChargeIntV3(Integral*, 00063 const Ref<GaussianBasisSet>&, 00064 const Ref<GaussianBasisSet>&, 00065 const Ref<PointChargeData>&); 00066 ~PointChargeIntV3(); 00067 void compute_shell(int,int); 00068 }; 00069 00070 class EfieldDotVectorIntV3: public OneBodyInt 00071 { 00072 protected: 00073 Ref<Int1eV3> int1ev3_; 00074 Ref<EfieldDotVectorData> data_; 00075 public: 00076 EfieldDotVectorIntV3(Integral*, 00077 const Ref<GaussianBasisSet>&, 00078 const Ref<GaussianBasisSet>&, 00079 const Ref<EfieldDotVectorData>&); 00080 ~EfieldDotVectorIntV3(); 00081 void compute_shell(int,int); 00082 }; 00083 00084 class DipoleIntV3: public OneBodyInt 00085 { 00086 protected: 00087 Ref<Int1eV3> int1ev3_; 00088 Ref<DipoleData> data_; 00089 public: 00090 DipoleIntV3(Integral*, 00091 const Ref<GaussianBasisSet>&, 00092 const Ref<GaussianBasisSet>&, 00093 const Ref<DipoleData>&); 00094 ~DipoleIntV3(); 00095 void compute_shell(int,int); 00096 }; 00097 00098 // ///////////////////////////////////////////////////////////////////////// 00099 00103 class OneBodyDerivIntV3 : public OneBodyDerivInt { 00104 protected: 00105 Ref<Int1eV3> int1ev3_; 00106 typedef void (Int1eV3::*IntegralFunction)(int,int,int,int); 00107 IntegralFunction intfunc_; 00108 public: 00109 OneBodyDerivIntV3(Integral*, 00110 const Ref<GaussianBasisSet>&, 00111 const Ref<GaussianBasisSet>&, 00112 IntegralFunction); 00113 ~OneBodyDerivIntV3(); 00114 void compute_shell(int,int,DerivCenters&); 00115 void compute_shell(int,int,int); 00116 }; 00117 00118 } 00119 00120 #endif 00121 00122 // Local Variables: 00123 // mode: c++ 00124 // c-file-style: "CLJ" 00125 // End:

Generated at Sat Aug 7 00:04:22 2004 for MPQC 2.2.2 using the documentation package Doxygen 1.3.8.