MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
chemistry
qc
wfn
accum.h
1
//
2
// accum.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_wfn_accum_h
29
#define _chemistry_qc_wfn_accum_h
30
31
#ifdef __GNUC__
32
#pragma interface
33
#endif
34
35
#include <chemistry/qc/wfn/wfn.h>
36
37
namespace
sc {
38
39
// //////////////////////////////////////////////////////////////////////////
40
41
// computes additions to H
42
class
AccumH
:
virtual
public
SavableState
{
43
protected
:
44
Ref<Wavefunction>
wfn_;
45
46
public
:
47
AccumH
();
48
AccumH
(
StateIn
&);
49
AccumH
(
const
Ref<KeyVal>
&);
50
virtual
~
AccumH
();
51
52
void
save_data_state
(
StateOut
&);
53
54
virtual
void
init(
const
Ref<Wavefunction>
&);
55
virtual
void
accum(
const
RefSymmSCMatrix
& h) =0;
56
virtual
void
print_summary();
57
virtual
void
done();
58
59
// Returns the scalar contribution to the energy.
60
// Available only after accum is called.
61
virtual
double
e();
62
};
63
64
65
class
AccumHNull
:
public
AccumH
{
66
public
:
67
AccumHNull
();
68
AccumHNull
(
StateIn
&);
69
AccumHNull
(
const
Ref<KeyVal>
&);
70
~
AccumHNull
();
71
72
void
save_data_state
(
StateOut
&);
73
74
void
accum(
const
RefSymmSCMatrix
& h);
75
};
76
77
class
SumAccumH
:
public
AccumH
{
78
protected
:
79
int
n_;
80
Ref<AccumH>
*accums_;
81
82
public
:
83
SumAccumH
(
StateIn
&);
84
SumAccumH
(
const
Ref<KeyVal>
&);
85
~
SumAccumH
();
86
87
void
save_data_state
(
StateOut
&);
88
89
void
init(
const
Ref<Wavefunction>
&);
90
void
accum(
const
RefSymmSCMatrix
& h);
91
void
done();
92
93
double
e();
94
};
95
96
}
97
98
#endif
99
100
// Local Variables:
101
// mode: c++
102
// c-file-style: "ETS"
103
// End:
Generated at Mon Sep 23 2013 23:27:05 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.