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 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_idmrpt2_h
30 #define _psi_src_bin_psimrcc_idmrpt2_h
31 /***************************************************************************
32  * PSIMRCC
33  * Copyright (C) 2007 by Francesco Evangelista and Andrew Simmonett
34  * frank@ccc.uga.edu andysim@ccc.uga.edu
35  * A multireference coupled cluster code
36  ***************************************************************************/
37 
38 #include "manybody.h"
40 
41 namespace psi{ namespace psimrcc{
42 
43 class Updater;
44 
48 class IDMRPT2 : public CCManyBody
49 {
50 public:
51  IDMRPT2(SharedWavefunction ref_wfn, Options &options);
52  virtual ~IDMRPT2();
53  void compute_mrpt2_energy(Updater* updater);
54 private:
55  void add_matrices();
56  void read_mrpt2_integrals();
57  void update_amps_mkpt2(Updater* updater);
58  void synchronize_amps();
59  void build_amplitudes();
65 
69  void build_Heff_uv();
70  void build_Heff_UV();
71  void build_Heff_uVxY();
72  void build_Heff_uvxy();
73  void build_Heff_UVXY();
74 
75  void build_Heff_ijkabc();
76  void build_Heff_ijKabC();
77  void build_Heff_iJKaBC();
78  void build_Heff_IJKABC();
79 
80  void build_F_intermediates();
85 };
86 
87 }} /* End Namespaces */
88 
89 #endif // _psi_src_bin_psimrcc_idmrpt2_h
void add_matrices()
Definition: idmrpt2_add_matrices.cc:40
PsiReturnType psimrcc(SharedWavefunction, Options &)
Definition: psimrcc/main.cc:87
void build_t1_ia_amplitudes()
Computes the contribution .
Definition: idmrpt2_t1_amps.cc:56
void build_Heff_IJKABC()
Definition: idmrpt2_Heff.cc:199
void build_Heff_UVXY()
Definition: idmrpt2_Heff_doubles.cc:181
void compute_mrpt2_energy(Updater *updater)
Definition: idmrpt2.cc:62
void build_t1_IA_amplitudes()
Computes the contribution .
Definition: idmrpt2_t1_amps.cc:77
void build_Heff_UV()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_singles.cc:108
void build_F_ae_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:59
void build_Heff_uVxY()
Definition: idmrpt2_Heff_doubles.cc:131
void build_Heff_ijkabc()
Definition: idmrpt2_Heff.cc:152
Definition: idmrpt2.h:48
Definition: manybody.h:72
void build_amplitudes()
Definition: idmrpt2.cc:299
virtual ~IDMRPT2()
Definition: idmrpt2.cc:57
void build_F_MI_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:115
void build_F_AE_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:79
void build_t2_ijab_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:81
void build_F_mi_intermediates()
Computes the intermediate .
Definition: idmrpt2_f_int.cc:97
void build_F_intermediates()
Definition: idmrpt2_f_int.cc:44
void build_t2_iJaB_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:54
Definition: liboptions.h:355
void build_Heff_mrpt2_diagonal()
Definition: idmrpt2.cc:192
void synchronize_amps()
Definition: idmrpt2.cc:228
void read_mrpt2_integrals()
Definition: idmrpt2.cc:385
void build_Heff_uvxy()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_doubles.cc:63
void build_Heff_scs_mrpt2_diagonal()
Definition: idmrpt2.cc:209
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:54
void update_amps_mkpt2(Updater *updater)
Definition: idmrpt2.cc:309
Containts the procedure for updating the amplitudes.
Definition: updater.h:47
void build_Heff_uv()
Computes the contribution (to be spin-factored) .
Definition: idmrpt2_Heff_singles.cc:58
void build_t2_IJAB_amplitudes()
Computes the contribution .
Definition: idmrpt2_t2_amps.cc:113
void build_Heff_mrpt2_offdiagonal()
Definition: idmrpt2_Heff.cc:48
IDMRPT2(SharedWavefunction ref_wfn, Options &options)
Definition: idmrpt2.cc:50