|
obintv3.h00001 // 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 }; 00053 00054 class PointChargeIntV3 : public OneBodyInt 00055 { 00056 protected: 00057 Ref<Int1eV3> int1ev3_; 00058 Ref<PointChargeData> data_; 00059 public: 00060 PointChargeIntV3(Integral*, 00061 const Ref<GaussianBasisSet>&, 00062 const Ref<GaussianBasisSet>&, 00063 const Ref<PointChargeData>&); 00064 ~PointChargeIntV3(); 00065 void compute_shell(int,int); 00066 }; 00067 00068 class EfieldDotVectorIntV3: public OneBodyInt 00069 { 00070 protected: 00071 Ref<Int1eV3> int1ev3_; 00072 Ref<EfieldDotVectorData> data_; 00073 public: 00074 EfieldDotVectorIntV3(Integral*, 00075 const Ref<GaussianBasisSet>&, 00076 const Ref<GaussianBasisSet>&, 00077 const Ref<EfieldDotVectorData>&); 00078 ~EfieldDotVectorIntV3(); 00079 void compute_shell(int,int); 00080 }; 00081 00082 class DipoleIntV3: public OneBodyInt 00083 { 00084 protected: 00085 Ref<Int1eV3> int1ev3_; 00086 Ref<DipoleData> data_; 00087 public: 00088 DipoleIntV3(Integral*, 00089 const Ref<GaussianBasisSet>&, 00090 const Ref<GaussianBasisSet>&, 00091 const Ref<DipoleData>&); 00092 ~DipoleIntV3(); 00093 void compute_shell(int,int); 00094 }; 00095 00096 // ///////////////////////////////////////////////////////////////////////// 00097 00101 class OneBodyDerivIntV3 : public OneBodyDerivInt { 00102 protected: 00103 Ref<Int1eV3> int1ev3_; 00104 typedef void (Int1eV3::*IntegralFunction)(int,int,int,int); 00105 IntegralFunction intfunc_; 00106 public: 00107 OneBodyDerivIntV3(Integral*, 00108 const Ref<GaussianBasisSet>&, 00109 const Ref<GaussianBasisSet>&, 00110 IntegralFunction); 00111 ~OneBodyDerivIntV3(); 00112 void compute_shell(int,int,DerivCenters&); 00113 void compute_shell(int,int,int); 00114 }; 00115 00116 } 00117 00118 #endif 00119 00120 // Local Variables: 00121 // mode: c++ 00122 // c-file-style: "CLJ" 00123 // End: Generated at Fri Jan 10 08:14:09 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14. |