MPQC
2.3.1
src
lib
chemistry
qc
basis
sointegral.h
1
//
2
// sointegral.h --- definition of the Integral class
3
//
4
// Copyright (C) 1998 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_basis_sointegral_h
29
#define _chemistry_qc_basis_sointegral_h
30
31
#ifdef __GNUC__
32
#pragma interface
33
#endif
34
35
#include <chemistry/qc/basis/integral.h>
36
#include <chemistry/qc/basis/tbint.h>
37
#include <chemistry/qc/basis/sobasis.h>
38
39
namespace
sc {
40
41
class
OneBodySOInt
:
public
RefCount
{
42
protected
:
43
Ref<OneBodyInt>
ob_;
44
45
Ref<SOBasis>
b1_;
46
Ref<SOBasis>
b2_;
47
48
double
*buffer_;
49
50
int
only_totally_symmetric_;
51
public
:
52
OneBodySOInt
(
const
Ref<OneBodyInt>
&);
53
virtual
~
OneBodySOInt
();
54
55
Ref<SOBasis>
basis()
const
;
56
Ref<SOBasis>
basis1()
const
;
57
Ref<SOBasis>
basis2()
const
;
58
59
const
double
* buffer()
const
{
return
buffer_; }
60
61
virtual
void
compute_shell(
int
,
int
);
62
63
// an index of -1 for a shell indicates any shell
64
//virtual int log2_shell_bound(int= -1,int= -1) = 0;
65
66
virtual
void
reinitialize();
67
68
int
only_totally_symmetric()
const
{
return
only_totally_symmetric_; }
69
void
set_only_totally_symmetric(
int
i) { only_totally_symmetric_ = i; }
70
};
71
72
73
74
class
TwoBodySOInt
:
public
RefCount
{
75
protected
:
76
Ref<TwoBodyInt>
tb_;
77
78
Ref<SOBasis>
b1_;
79
Ref<SOBasis>
b2_;
80
Ref<SOBasis>
b3_;
81
Ref<SOBasis>
b4_;
82
83
double
*buffer_;
84
85
int
redundant_;
86
int
only_totally_symmetric_;
87
public
:
88
TwoBodySOInt
(
const
Ref<TwoBodyInt>
&);
89
virtual
~
TwoBodySOInt
();
90
91
Ref<SOBasis>
basis()
const
;
92
Ref<SOBasis>
basis1()
const
;
93
Ref<SOBasis>
basis2()
const
;
94
Ref<SOBasis>
basis3()
const
;
95
Ref<SOBasis>
basis4()
const
;
96
97
const
double
* buffer()
const
{
return
buffer_; }
98
99
virtual
void
compute_shell(
int
,
int
,
int
,
int
);
100
101
// an index of -1 for a shell indicates any shell
102
//virtual int log2_shell_bound(int= -1,int= -1,int= -1,int= -1) = 0;
103
104
// if redundant is true, then keep redundant integrals in buffer_. The
105
// default is true.
106
int
redundant()
const
{
return
redundant_; }
107
// cannot do nonredundant at the moment
108
//void set_redundant(int i) { redundant_ = i; }
109
110
int
only_totally_symmetric()
const
{
return
only_totally_symmetric_; }
111
void
set_only_totally_symmetric(
int
i) { only_totally_symmetric_ = i; }
112
};
113
114
}
115
116
#endif
117
118
// Local Variables:
119
// mode: c++
120
// c-file-style: "CLJ"
121
// End:
sc::OneBodySOInt
Definition:
sointegral.h:41
sc::Ref< OneBodyInt >
sc::RefCount
The base class for all reference counted objects.
Definition:
ref.h:194
sc::TwoBodySOInt
Definition:
sointegral.h:74
Generated at Sun Jan 26 2020 23:33:04 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.16.