Psi4
idmrpt2.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-2017 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program 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 General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License along
22  * with this program; if not, write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  *
25  * @END LICENSE
26  */
27 
28 #ifndef _psi_src_bin_psimrcc_idmrpt2_h
29 #define _psi_src_bin_psimrcc_idmrpt2_h
30 /***************************************************************************
31  * PSIMRCC
32  * Copyright (C) 2007 by Francesco Evangelista and Andrew Simmonett
33  * frank@ccc.uga.edu andysim@ccc.uga.edu
34  * A multireference coupled cluster code
35  ***************************************************************************/
36 
37 #include "manybody.h"
39 
40 namespace psi{ namespace psimrcc{
41 
42 class Updater;
43 
47 class IDMRPT2 : public CCManyBody
48 {
49 public:
50  IDMRPT2(SharedWavefunction ref_wfn, Options &options);
51  virtual ~IDMRPT2();
52  void compute_mrpt2_energy(Updater* updater);
53 private:
54  void add_matrices();
55  void read_mrpt2_integrals();
56  void update_amps_mkpt2(Updater* updater);
57  void synchronize_amps();
58  void build_amplitudes();
64 
68  void build_Heff_uv();
69  void build_Heff_UV();
70  void build_Heff_uVxY();
71  void build_Heff_uvxy();
72  void build_Heff_UVXY();
73 
74  void build_Heff_ijkabc();
75  void build_Heff_ijKabC();
76  void build_Heff_iJKaBC();
77  void build_Heff_IJKABC();
78 
79  void build_F_intermediates();
84 };
85 
86 }} /* End Namespaces */
87 
88 #endif // _psi_src_bin_psimrcc_idmrpt2_h
void add_matrices()
Definition: idmrpt2_add_matrices.cc:39
PsiReturnType psimrcc(SharedWavefunction, Options &)
Definition: psimrcc/main.cc:86
void build_t1_ia_amplitudes()
Computes the contribution .
Definition: idmrpt2_t1_amps.cc:55
void build_Heff_IJKABC()
Definition: idmrpt2_Heff.cc:200
void build_Heff_UVXY()
Definition: idmrpt2_Heff_doubles.cc:180
void compute_mrpt2_energy(Updater *updater)
Definition: idmrpt2.cc:61
void build_t1_IA_amplitudes()
Computes the contribution .
Definition: idmrpt2_t1_amps.cc:76
void build_Heff_UV()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_singles.cc:107
void build_F_ae_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:60
void build_Heff_uVxY()
Definition: idmrpt2_Heff_doubles.cc:130
void build_Heff_ijkabc()
Definition: idmrpt2_Heff.cc:153
Definition: idmrpt2.h:47
Definition: manybody.h:70
void build_amplitudes()
Definition: idmrpt2.cc:298
virtual ~IDMRPT2()
Definition: idmrpt2.cc:56
void build_F_MI_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:116
void build_F_AE_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:80
void build_t2_ijab_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:80
void build_F_mi_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:98
void build_F_intermediates()
Definition: idmrpt2_f_int.cc:45
void build_t2_iJaB_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:53
Definition: liboptions.h:359
void build_Heff_mrpt2_diagonal()
Definition: idmrpt2.cc:191
void synchronize_amps()
Definition: idmrpt2.cc:227
void read_mrpt2_integrals()
Definition: idmrpt2.cc:384
void build_Heff_uvxy()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_doubles.cc:62
void build_Heff_scs_mrpt2_diagonal()
Definition: idmrpt2.cc:208
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:50
void update_amps_mkpt2(Updater *updater)
Definition: idmrpt2.cc:308
Containts the procedure for updating the amplitudes.
Definition: updater.h:46
void build_Heff_uv()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_singles.cc:57
void build_t2_IJAB_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:112
void build_Heff_mrpt2_offdiagonal()
Definition: idmrpt2_Heff.cc:49
IDMRPT2(SharedWavefunction ref_wfn, Options &options)
Definition: idmrpt2.cc:49