Psi4
thcew.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 THCEW_H
29 #define THCEW_H
30 
32 #include "psi4/libmints/typedefs.h"
33 #include <map>
34 
35 namespace psi {
36 
37 class THCE;
38 
39 class THCEW : public Wavefunction {
40 
41 protected:
42 
43  // Energy map
44  std::map<std::string, double> energies_;
45  // THCE object
46  std::shared_ptr<THCE> thce_;
47 
48  void common_init();
49 
50 public:
51  THCEW();
52  virtual ~THCEW();
53 
54 };
55 
122 class RTHCEW : public THCEW {
123 
124 protected:
125 
126  void common_init();
127 
128  // => Laplace <= //
129 
130  // pi_i and pi_a [nw]
131  void build_laplace(double delta, double omega = 0.0);
132 
133  // => DF <= //
134 
135  // Bia [naux]
136  void build_df_ia(std::shared_ptr<BasisSet> auxiliary);
137  // Bii, Bia, Bai, and Baa [naux]
138  void build_df_act(std::shared_ptr<BasisSet> auxiliary);
139  // Bpp [naux]
140  void build_df_pp(std::shared_ptr<BasisSet> auxiliary);
141 
142  // => LS-THC <= //
143 
144  // Xi, Xa, Ziaia [swapped], Sia [swapped], Lia [swapped] [naux,ngrid]
145  void build_lsthc_ia(std::shared_ptr<BasisSet> auxiliary, std::shared_ptr<Matrix> X);
146  // Xi, Xa, Ziiii -> Zaaaa [swapped], Sii -> Saa [swapped], Lii -> Laa [swapped] [naux,ngrid]
147  void build_lsthc_act(std::shared_ptr<BasisSet> auxiliary, std::shared_ptr<Matrix> X);
148  // Xi, Xa, Zpppp [swapped], Spp [swapped], Lpp [swapped] [naux,ngrid]
149  void build_lsthc_pp(std::shared_ptr<BasisSet> auxiliary, std::shared_ptr<Matrix> X);
150 
151  // Ti, Ta, STia [swapped] [namp]
152  void build_meth_ia(std::shared_ptr<Matrix> X);
153 
154 public:
155  RTHCEW();
156  virtual ~RTHCEW();
157 };
158 
159 
160 
161 } // End namespace
162 
163 #endif
RTHCEW()
Definition: thcew.cc:87
void build_lsthc_act(std::shared_ptr< BasisSet > auxiliary, std::shared_ptr< Matrix > X)
Definition: thcew.cc:259
void build_laplace(double delta, double omega=0.0)
Definition: thcew.cc:149
virtual ~RTHCEW()
Definition: thcew.cc:92
void build_meth_ia(std::shared_ptr< Matrix > X)
Definition: thcew.cc:375
void build_lsthc_ia(std::shared_ptr< BasisSet > auxiliary, std::shared_ptr< Matrix > X)
Definition: thcew.cc:223
void build_df_pp(std::shared_ptr< BasisSet > auxiliary)
Definition: thcew.cc:209
void build_lsthc_pp(std::shared_ptr< BasisSet > auxiliary, std::shared_ptr< Matrix > X)
Definition: thcew.cc:339
Definition: thcew.h:122
void common_init()
Definition: thcew.cc:67
std::map< std::string, double > energies_
Definition: thcew.h:44
void common_init()
Definition: thcew.cc:95
THCEW()
Definition: thcew.cc:59
int delta(const int i, const int j)
Definition: bend.cc:175
Simple wavefunction base class.
Definition: wavefunction.h:85
void build_df_ia(std::shared_ptr< BasisSet > auxiliary)
Definition: thcew.cc:163
Definition: thcew.h:39
std::shared_ptr< THCE > thce_
Definition: thcew.h:46
void build_df_act(std::shared_ptr< BasisSet > auxiliary)
Definition: thcew.cc:177
virtual ~THCEW()
Definition: thcew.cc:64
SharedMatrix X() const
Returns the Lagrangian in SO basis for the wavefunction.
Definition: wavefunction.cc:976