MPQC  2.3.1
obintv3.h
1 //
2 // obintv3.h
3 //
4 // Copyright (C) 1996 Limit Point Systems, Inc.
5 //
6 // Author: Curtis Janssen <cljanss@limitpt.com>
7 // Maintainer: LPS
8 //
9 // This file is part of the SC Toolkit.
10 //
11 // The SC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The SC Toolkit is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifndef _chemistry_qc_intv3_obintv3_h
29 #define _chemistry_qc_intv3_obintv3_h
30 
31 #include <chemistry/qc/basis/obint.h>
32 #include <chemistry/qc/intv3/int1e.h>
33 
34 namespace sc {
35 
36 // /////////////////////////////////////////////////////////////////////////
37 
41 class OneBodyIntV3 : public OneBodyInt {
42  protected:
43  Ref<Int1eV3> int1ev3_;
44  typedef void (Int1eV3::*IntegralFunction)(int,int);
45  IntegralFunction intfunc_;
46  public:
49  IntegralFunction);
50  ~OneBodyIntV3();
51  void compute_shell(int,int);
52  bool cloneable();
54 };
55 
57 {
58  protected:
59  Ref<Int1eV3> int1ev3_;
61  public:
63  const Ref<GaussianBasisSet>&,
64  const Ref<GaussianBasisSet>&,
65  const Ref<PointChargeData>&);
67  void compute_shell(int,int);
68 };
69 
71 {
72  protected:
73  Ref<Int1eV3> int1ev3_;
75  public:
77  const Ref<GaussianBasisSet>&,
78  const Ref<GaussianBasisSet>&,
81  void compute_shell(int,int);
82 };
83 
84 class DipoleIntV3: public OneBodyInt
85 {
86  protected:
87  Ref<Int1eV3> int1ev3_;
88  Ref<DipoleData> data_;
89  public:
91  const Ref<GaussianBasisSet>&,
92  const Ref<GaussianBasisSet>&,
93  const Ref<DipoleData>&);
94  ~DipoleIntV3();
95  void compute_shell(int,int);
96 };
97 
98 // /////////////////////////////////////////////////////////////////////////
99 
104  protected:
105  Ref<Int1eV3> int1ev3_;
106  typedef void (Int1eV3::*IntegralFunction)(int,int,int,int);
107  IntegralFunction intfunc_;
108  public:
110  const Ref<GaussianBasisSet>&,
111  const Ref<GaussianBasisSet>&,
112  IntegralFunction);
114  void compute_shell(int,int,DerivCenters&);
115  void compute_shell(int,int,int);
116 };
117 
118 }
119 
120 #endif
121 
122 // Local Variables:
123 // mode: c++
124 // c-file-style: "CLJ"
125 // End:
sc::OneBodyIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::DipoleIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::Ref
A template class that maintains references counts.
Definition: ref.h:332
sc::DipoleIntV3
Definition: obintv3.h:84
sc::PointChargeIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::EfieldDotVectorIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::OneBodyIntV3::clone
Ref< OneBodyInt > clone()
Returns a clone of this.
sc::OneBodyInt
OneBodyInt is an abstract base class for objects that compute integrals between two basis functions.
Definition: obint.h:100
sc::Int1eV3
Int1eV3 is a class wrapper for the one body part of the C language IntV3 library.
Definition: intv3/int1e.h:47
sc::Integral
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:58
sc::OneBodyDerivIntV3::compute_shell
void compute_shell(int, int, DerivCenters &)
Compute the derivative integrals and place the result in the buffer returned by buffer().
sc::OneBodyDerivInt
OneBodyDerivInt is an abstract base class for objects that compute one body derivative integrals.
Definition: obint.h:390
sc::PointChargeIntV3
Definition: obintv3.h:56
sc::OneBodyIntV3::cloneable
bool cloneable()
Return true if the clone member can be called.
sc::EfieldDotVectorIntV3
Definition: obintv3.h:70
sc::OneBodyIntV3
This implements most one body integrals in the IntV3 library.
Definition: obintv3.h:41
sc::OneBodyDerivIntV3
This implements one body derivative integrals in the IntV3 library.
Definition: obintv3.h:103
sc::DerivCenters
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition: dercent.h:41

Generated at Sun Jan 26 2020 23:33:04 for MPQC 2.3.1 using the documentation package Doxygen 1.8.16.