MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
chemistry
qc
cints
cints.h
1
//
2
// cints.h
3
//
4
// Copyright (C) 2001 Edward Valeev
5
//
6
// Author: Edward Valeev <edward.valeev@chemistry.gatech.edu>
7
// Maintainer: EV
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
// these provide integrals using the CINTS/libint routines
29
30
#ifndef _chemistry_qc_cints_cints_h
31
#define _chemistry_qc_cints_cints_h
32
33
#include <chemistry/qc/basis/integral.h>
34
35
namespace
sc {
36
37
class
SphericalTransformCints;
38
class
ISphericalTransformCints;
39
41
class
IntegralCints
:
public
Integral
{
42
private
:
43
int
maxl_;
44
SphericalTransformCints
***st_;
45
ISphericalTransformCints
***ist_;
46
47
void
free_transforms();
48
void
initialize_transforms();
49
50
// Check if fully general contractions are present in any of the basis sets
51
void
check_fullgencon()
const
;
52
53
public
:
54
IntegralCints
(
const
Ref<GaussianBasisSet>
&b1=0,
55
const
Ref<GaussianBasisSet>
&b2=0,
56
const
Ref<GaussianBasisSet>
&b3=0,
57
const
Ref<GaussianBasisSet>
&b4=0);
58
IntegralCints
(
StateIn
&);
59
IntegralCints
(
const
Ref<KeyVal>
&);
60
~
IntegralCints
();
61
62
void
save_data_state
(
StateOut
&);
63
64
Integral
*
clone
();
65
66
size_t
storage_required_eri
(
const
Ref<GaussianBasisSet>
&b1,
67
const
Ref<GaussianBasisSet>
&b2 = 0,
68
const
Ref<GaussianBasisSet>
&b3 = 0,
69
const
Ref<GaussianBasisSet>
&b4 = 0);
70
size_t
storage_required_grt
(
const
Ref<GaussianBasisSet>
&b1,
71
const
Ref<GaussianBasisSet>
&b2 = 0,
72
const
Ref<GaussianBasisSet>
&b3 = 0,
73
const
Ref<GaussianBasisSet>
&b4 = 0);
74
75
CartesianIter
*
new_cartesian_iter
(
int
);
76
RedundantCartesianIter
*
new_redundant_cartesian_iter
(
int
);
77
RedundantCartesianSubIter
*
new_redundant_cartesian_sub_iter
(
int
);
78
SphericalTransformIter
*
new_spherical_transform_iter
(
int
l,
79
int
inv=0,
80
int
subl=-1);
81
const
SphericalTransform
*
spherical_transform
(
int
l,
82
int
inv=0,
int
subl=-1);
83
84
Ref<OneBodyInt>
overlap
();
85
86
Ref<OneBodyInt>
kinetic
();
87
88
Ref<OneBodyInt>
point_charge
(
const
Ref<PointChargeData>
& =0);
89
90
Ref<OneBodyInt>
nuclear
();
91
92
Ref<OneBodyInt>
hcore
();
93
94
Ref<OneBodyInt>
efield_dot_vector
(
const
Ref<EfieldDotVectorData>
& =0);
95
96
Ref<OneBodyInt>
dipole
(
const
Ref<DipoleData>
& =0);
97
98
Ref<OneBodyInt>
quadrupole
(
const
Ref<DipoleData>
& =0);
99
100
Ref<OneBodyDerivInt>
overlap_deriv
();
101
102
Ref<OneBodyDerivInt>
kinetic_deriv
();
103
104
Ref<OneBodyDerivInt>
nuclear_deriv
();
105
106
Ref<OneBodyDerivInt>
hcore_deriv
();
107
108
Ref<TwoBodyInt>
electron_repulsion
();
109
110
Ref<TwoBodyInt>
grt
();
111
112
Ref<TwoBodyDerivInt>
electron_repulsion_deriv
();
113
114
void
set_basis
(
const
Ref<GaussianBasisSet>
&b1,
115
const
Ref<GaussianBasisSet>
&b2 = 0,
116
const
Ref<GaussianBasisSet>
&b3 = 0,
117
const
Ref<GaussianBasisSet>
&b4 = 0);
118
};
119
120
}
121
122
#endif
123
124
// Local Variables:
125
// mode: c++
126
// c-file-style: "CLJ"
127
// End:
Generated at Wed Jul 3 2013 14:27:24 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.