Psi4
updater.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2018 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
29 #ifndef _psi_src_bin_psimrcc_updater_h_
30 #define _psi_src_bin_psimrcc_updater_h_
31 
33 
39 namespace psi {
40 namespace psimrcc {
41 
42 class Hamiltonian;
43 
48 class Updater {
49  public:
50  Updater(Options &options);
51  virtual ~Updater();
52  virtual void update(int cycle, Hamiltonian *heff) = 0;
53  void zero_internal_amps();
54  void zero_t1_internal_amps();
56 
57  protected:
59 };
60 
61 class MkUpdater : public Updater {
62  public:
63  MkUpdater(Options &options);
64  virtual ~MkUpdater();
65  virtual void update(int cycle, Hamiltonian *heff);
66 };
67 
68 class BWUpdater : public Updater {
69  public:
70  BWUpdater(Options &options);
71  virtual ~BWUpdater();
72  virtual void update(int cycle, Hamiltonian *heff);
73 };
74 
75 } // namespace psimrcc
76 } // namespace psi
77 
78 #endif // _psi_src_bin_psimrcc_updater_h_
PsiReturnType psimrcc(SharedWavefunction, Options &)
Definition: psimrcc/main.cc:86
void zero_internal_delta_amps()
Definition: updater.cc:184
Definition: updater.h:68
void zero_t1_internal_amps()
Definition: updater.cc:146
void zero_internal_amps()
Definition: updater.cc:56
Definition: updater.h:61
virtual ~BWUpdater()
Definition: updater_bw.cc:47
BWUpdater(Options &options)
Definition: updater_bw.cc:45
Definition: liboptions.h:353
Updater(Options &options)
Definition: updater.cc:52
Definition: heff.h:37
virtual void update(int cycle, Hamiltonian *heff)=0
virtual void update(int cycle, Hamiltonian *heff)
Definition: updater_bw.cc:49
MkUpdater(Options &options)
Definition: updater_mk.cc:51
virtual ~MkUpdater()
Definition: updater_mk.cc:53
virtual ~Updater()
Definition: updater.cc:54
virtual void update(int cycle, Hamiltonian *heff)
Definition: updater_mk.cc:55
Options & options_
Definition: updater.h:58
Containts the procedure for updating the amplitudes.
Definition: updater.h:48