MPQC  3.0.0-alpha
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() const;
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 
70 class EfieldIntV3: public OneBodyInt
71 {
72  protected:
73  Ref<Int1eV3> int1ev3_;
75  public:
77  const Ref<GaussianBasisSet>&,
78  const Ref<GaussianBasisSet>&,
79  const Ref<IntParamsOrigin>&);
80  ~EfieldIntV3();
81  void compute_shell(int,int);
82 };
83 
84 
86 {
87  protected:
88  Ref<Int1eV3> int1ev3_;
90  public:
92  const Ref<GaussianBasisSet>&,
93  const Ref<GaussianBasisSet>&,
96  void compute_shell(int,int);
97 };
98 
99 class DipoleIntV3: public OneBodyInt
100 {
101  protected:
102  Ref<Int1eV3> int1ev3_;
103  Ref<IntParamsOrigin> data_;
104  public:
106  const Ref<GaussianBasisSet>&,
107  const Ref<GaussianBasisSet>&,
108  const Ref<IntParamsOrigin>&);
109  ~DipoleIntV3();
110  void compute_shell(int,int);
111 };
112 
113 // /////////////////////////////////////////////////////////////////////////
114 
119  protected:
120  Ref<Int1eV3> int1ev3_;
121  typedef void (Int1eV3::*IntegralFunction)(int,int,int,int);
122  IntegralFunction intfunc_;
123  public:
125  const Ref<GaussianBasisSet>&,
126  const Ref<GaussianBasisSet>&,
127  IntegralFunction);
129  void compute_shell(int,int,int);
130 };
131 
132 }
133 
134 #endif
135 
136 // Local Variables:
137 // mode: c++
138 // c-file-style: "CLJ"
139 // End:
sc::OneBodyIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::OneBodyIntV3::cloneable
bool cloneable() const
Return true if the clone member can be called.
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:361
sc::DipoleIntV3
Definition: obintv3.h:99
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::OneBodyDerivIntV3::compute_shell
void compute_shell(int, int, int)
Compute the derivative integrals with respect to the given center and place the result in the buffer ...
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:49
sc::EfieldIntV3::compute_shell
void compute_shell(int, int)
Computes the integrals between basis functions in the given shell pair.
sc::Int1eV3
Int1eV3 is a class wrapper for the one body part of the C language IntV3 library.
Definition: int1e.h:43
sc::Integral
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:111
sc::OneBodyDerivInt
OneBodyDerivInt is an abstract base class for objects that compute one body derivative integrals.
Definition: obint.h:350
sc::PointChargeIntV3
Definition: obintv3.h:56
sc::EfieldDotVectorIntV3
Definition: obintv3.h:85
sc::EfieldIntV3
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:118
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:23:57 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.