Psi4
ekt.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 _dfocc_ekt_h_
30 #define _dfocc_ekt_h_
31 
32 #include "psi4/libpsio/psio.h"
33 #include "psi4/libmints/typedefs.h"
34 #include "tensors.h"
35 
36 using namespace psi;
37 
38 namespace psi {
39 namespace dfoccwave {
40 
41 class Ektip;
42 typedef std::shared_ptr<Ektip> SharedEktip;
43 
44 class Ektip {
45  private:
46  std::string name_;
47 
48  int nocc_;
49  int nvir_;
50  int norb_;
51  int plevel_;
52 
53  double cutoff_;
54  double scale_;
55  double scale2_;
56 
57  // 1D
63 
64  // 2D
78 
79  // ektip
80  void compute_ektip();
81 
82  public:
83  Ektip(std::string name, int nocc, int norb, const SharedTensor2d& GFock, const SharedTensor2d& Gamma,
84  double scale_gf, double scale_ps);
85  ~Ektip();
86 
87  // Return occupied energies
88  SharedTensor1d eocc() const { return eocc_; }
89 
90  // Return all energies
91  SharedTensor1d eorb() const { return eorb_; }
92 
93  // Return occupied pole strengths
94  SharedTensor1d psocc() const { return ps_occ_; }
95 
96  // Return all pole strengths
97  SharedTensor1d ps() const { return ps_vec_; }
98 };
99 
100 } // namespace dfoccwave
101 } // namespace psi
102 #endif // _dfocc_ekt_h_
SharedTensor2d G1_copy_
Definition: ekt.h:71
double cutoff_
Definition: ekt.h:53
SharedTensor2d temp_
Definition: ekt.h:75
SharedTensor1d ps_occ_
Definition: ekt.h:62
std::shared_ptr< Ektip > SharedEktip
Definition: ekt.h:41
std::string name_
Definition: ekt.h:46
int nvir_
Definition: ekt.h:49
SharedTensor1d diagG1_
Definition: ekt.h:58
SharedTensor1d eocc_
Definition: ekt.h:61
int nocc_
Definition: ekt.h:48
SharedTensor1d eorb() const
Definition: ekt.h:91
SharedTensor2d PS_
Definition: ekt.h:76
SharedTensor2d GF_
Definition: ekt.h:65
std::shared_ptr< Tensor2d > SharedTensor2d
Definition: tensors.h:57
SharedTensor1d ps() const
Definition: ekt.h:97
SharedTensor1d eorb_
Definition: ekt.h:60
SharedTensor2d GFp_
Definition: ekt.h:68
int plevel_
Definition: ekt.h:51
SharedTensor2d G1half_
Definition: ekt.h:72
std::shared_ptr< Tensor1d > SharedTensor1d
Definition: tensors.h:54
double scale_
Definition: ekt.h:54
SharedTensor2d Uvec_
Definition: ekt.h:73
SharedTensor2d GFt_
Definition: ekt.h:66
SharedTensor2d GCt_
Definition: ekt.h:77
Definition: ekt.h:44
SharedTensor2d Uvecp_
Definition: ekt.h:74
SharedTensor2d GF_copy_
Definition: ekt.h:67
SharedTensor1d eocc() const
Definition: ekt.h:88
SharedTensor2d G1_
Definition: ekt.h:69
SharedWavefunction dfoccwave(SharedWavefunction, Options &)
Definition: dfocc/main.cc:35
SharedTensor1d ps_vec_
Definition: ekt.h:59
SharedTensor2d G1t_
Definition: ekt.h:70
int norb_
Definition: ekt.h:50
SharedTensor1d psocc() const
Definition: ekt.h:94
double scale2_
Definition: ekt.h:55