Psi4
dfep2.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 PSI4_GUARD_EPMP2_H
30 #define PSI4_GUARD_EPMP2_H
31 
33 
34 namespace psi {
35 
36 // Forward declare
37 class DF_Helper;
38 
39 namespace dfep2 {
40 
42  protected:
43 
44  // Auxiliary basis
45  std::shared_ptr<BasisSet> ribasis_;
46 
47  // Orbitals full / occ / vir / solves
52  std::vector<std::tuple<double, size_t, size_t>> orbital_order_;
53 
54  // Integrals
55  std::shared_ptr<DF_Helper> dfh_;
56 
57  // Options
58  double conv_thresh_;
59  size_t max_iter_;
60  size_t debug_;
62  size_t unit_;
63  size_t num_threads_;
64 
65 
66  public:
67  DFEP2Wavefunction(std::shared_ptr<Wavefunction> wfn);
68 
69  // Compute the current set of orbitals, [[h1_orb, h1_orb], [h2_orb, ...]]
70  // Return [[(value1, conv1), ...], ...]
71  std::vector<std::vector<std::pair<double, double>>> compute(std::vector<std::vector<size_t>> solve_orbs);
72 }; // End DFEP2
73 
74 }}
75 
76 #endif
std::vector< std::tuple< double, size_t, size_t > > orbital_order_
Definition: dfep2.h:52
size_t num_threads_
Definition: dfep2.h:63
SharedMatrix AO_Cocc_
Definition: dfep2.h:49
SharedMatrix AO_Cvir_
Definition: dfep2.h:50
size_t memory_doubles_
Definition: dfep2.h:61
size_t unit_
Definition: dfep2.h:62
size_t debug_
Definition: dfep2.h:60
std::shared_ptr< BasisSet > ribasis_
Definition: dfep2.h:45
size_t max_iter_
Definition: dfep2.h:59
std::shared_ptr< DF_Helper > dfh_
Definition: dfep2.h:55
Definition: dfep2.h:41
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
std::shared_ptr< Wavefunction > wfn
Definition: dx_write.cc:60
SharedMatrix AO_C_
Definition: dfep2.h:48
Simple wavefunction base class.
Definition: wavefunction.h:84
SharedVector AO_eps_
Definition: dfep2.h:51
std::vector< std::vector< std::pair< double, double > > > compute(std::vector< std::vector< size_t >> solve_orbs)
Definition: dfep2.cc:100
DFEP2Wavefunction(std::shared_ptr< Wavefunction > wfn)
Definition: dfep2.cc:56
double conv_thresh_
Definition: dfep2.h:58
std::shared_ptr< Vector > SharedVector
Definition: adc.h:51