MPQC 2.3.1
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
37namespace sc {
38
39// //////////////////////////////////////////////////////////////////////////
40
41// computes additions to H
42class AccumH: virtual public SavableState {
43 protected:
45
46 public:
47 AccumH();
49 AccumH(const Ref<KeyVal>&);
50 virtual ~AccumH();
51
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
65class AccumHNull: public AccumH {
66 public:
67 AccumHNull();
69 AccumHNull(const Ref<KeyVal>&);
71
73
74 void accum(const RefSymmSCMatrix& h);
75};
76
77class SumAccumH: public AccumH {
78 protected:
79 int n_;
80 Ref<AccumH> *accums_;
81
82 public:
84 SumAccumH(const Ref<KeyVal>&);
85 ~SumAccumH();
86
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:
Definition: accum.h:65
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Definition: accum.h:42
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:261
A template class that maintains references counts.
Definition: ref.h:332
Base class for objects that can save/restore state.
Definition: state.h:46
Restores objects that derive from SavableState.
Definition: statein.h:70
Serializes objects that derive from SavableState.
Definition: stateout.h:61
Definition: accum.h:77
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...

Generated at Thu Jul 20 2023 00:00:00 for MPQC 2.3.1 using the documentation package Doxygen 1.9.6.