Psi4
usapt0.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 // usapt.h, to be included in dftsapt.h if needed.
30 
31 #ifndef USAPT_H
32 #define USAPT_H
33 
35 #include "psi4/libmints/typedefs.h"
36 #include "psi4/libqt/qt.h"
37 #include <map>
38 
39 #ifdef _OPENMP
40  #include <omp.h>
41 #endif
42 
43 namespace psi {
44 
45 class JK;
46 class Options;
47 class PSIO;
48 
49 namespace sapt {
50 
51 /*- Open-shell generalization of SAPT0
52  Will be the basis for DFTSAPT
53  Will need to create better class hierarchy -*/
54 
55 class USAPT0 {
56 
57 private:
59 
60 protected:
61 
62  // SAPT type (until properly subclassed)
63  std::string type_;
64 
65  // Print flag
66  int print_;
67  // Debug flag
68  int debug_;
69  // Bench flag
70  int bench_;
71 
72  // CPKS maximum iterations
74  // CPKS convergence threshold
75  double cpks_delta_;
76 
77  // Scaling factor, only used to set the corresponding PsiVar for now
79 
80  // Do coupled induction ?
82 
83  // Memory in doubles
84  size_t memory_;
85 
86  // Energies table
87  std::map<std::string, double> energies_;
88 
89  // Dimer primary basis set
90  std::shared_ptr<BasisSet> primary_;
91  // Monomer A primary basis set
92  std::shared_ptr<BasisSet> primary_A_;
93  // Monomer B primary basis set
94  std::shared_ptr<BasisSet> primary_B_;
95  // Dimer -RI or -MP2FIT auxiliary basis set
96  std::shared_ptr<BasisSet> mp2fit_;
97  // Dimer -JKFIT auxiliary basis set
98  std::shared_ptr<BasisSet> jkfit_;
99 
100  // Dimer SCF energy
101  double E_dimer_;
102  // Monomer A SCF energy
103  double E_monomer_A_;
104  // Monomer B SCF energy
105  double E_monomer_B_;
106 
107  // Dimer geometry
108  std::shared_ptr<Molecule> dimer_;
109  // Monomer A geometry
110  std::shared_ptr<Molecule> monomer_A_;
111  // Monomer B geometry
112  std::shared_ptr<Molecule> monomer_B_;
113 
114  // Monomer A C matrix (full occ), alpha spin
115  std::shared_ptr<Matrix> Cocca_A_;
116  // Monomer B C matrix (full occ), alpha spin
117  std::shared_ptr<Matrix> Cocca_B_;
118  // Monomer A C matrix (full vir), alpha spin
119  std::shared_ptr<Matrix> Cvira_A_;
120  // Monomer B C matrix (full vir), alpha spin
121  std::shared_ptr<Matrix> Cvira_B_;
122 
123  // Monomer A C matrix (full occ), beta spin
124  std::shared_ptr<Matrix> Coccb_A_;
125  // Monomer B C matrix (full occ), beta spin
126  std::shared_ptr<Matrix> Coccb_B_;
127  // Monomer A C matrix (full vir), beta spin
128  std::shared_ptr<Matrix> Cvirb_A_;
129  // Monomer B C matrix (full vir), beta spin
130  std::shared_ptr<Matrix> Cvirb_B_;
131 
132  // Monomer A eps vector (full occ), alpha spin
133  std::shared_ptr<Vector> eps_occa_A_;
134  // Monomer B eps vector (full occ), alpha spin
135  std::shared_ptr<Vector> eps_occa_B_;
136  // Monomer A eps vector (full vir), alpha spin
137  std::shared_ptr<Vector> eps_vira_A_;
138  // Monomer B eps vector (full vir), alpha spin
139  std::shared_ptr<Vector> eps_vira_B_;
140 
141  // Monomer A eps vector (full occ), beta spin
142  std::shared_ptr<Vector> eps_occb_A_;
143  // Monomer B eps vector (full occ), beta spin
144  std::shared_ptr<Vector> eps_occb_B_;
145  // Monomer A eps vector (full vir), beta spin
146  std::shared_ptr<Vector> eps_virb_A_;
147  // Monomer B eps vector (full vir), beta spin
148  std::shared_ptr<Vector> eps_virb_B_;
149 
150  // Monomer A C matrix (active occ), alpha spin
151  std::shared_ptr<Matrix> Caocca_A_;
152  // Monomer B C matrix (active occ), alpha spin
153  std::shared_ptr<Matrix> Caocca_B_;
154  // Monomer A C matrix (active vir), alpha spin
155  std::shared_ptr<Matrix> Cavira_A_;
156  // Monomer B C matrix (active vir), alpha spin
157  std::shared_ptr<Matrix> Cavira_B_;
158 
159  // Monomer A C matrix (active occ), beta spin
160  std::shared_ptr<Matrix> Caoccb_A_;
161  // Monomer B C matrix (active occ), beta spin
162  std::shared_ptr<Matrix> Caoccb_B_;
163  // Monomer A C matrix (active vir), beta spin
164  std::shared_ptr<Matrix> Cavirb_A_;
165  // Monomer B C matrix (active vir), beta spin
166  std::shared_ptr<Matrix> Cavirb_B_;
167 
168  // Monomer A C matrix (frozen occ), alpha spin
169  std::shared_ptr<Matrix> Cfocca_A_;
170  // Monomer B C matrix (frozen occ), alpha spin
171  std::shared_ptr<Matrix> Cfocca_B_;
172  // Monomer A C matrix (frozen vir), alpha spin
173  std::shared_ptr<Matrix> Cfvira_A_;
174  // Monomer B C matrix (frozen vir), alpha spin
175  std::shared_ptr<Matrix> Cfvira_B_;
176 
177  // Monomer A C matrix (frozen occ), beta spin
178  std::shared_ptr<Matrix> Cfoccb_A_;
179  // Monomer B C matrix (frozen occ), beta spin
180  std::shared_ptr<Matrix> Cfoccb_B_;
181  // Monomer A C matrix (frozen vir), beta spin
182  std::shared_ptr<Matrix> Cfvirb_A_;
183  // Monomer B C matrix (frozen vir), beta spin
184  std::shared_ptr<Matrix> Cfvirb_B_;
185 
186  // Monomer A eps vector (active occ), alpha spin
187  std::shared_ptr<Vector> eps_aocca_A_;
188  // Monomer B eps vector (active occ), alpha spin
189  std::shared_ptr<Vector> eps_aocca_B_;
190  // Monomer A eps vector (active vir), alpha spin
191  std::shared_ptr<Vector> eps_avira_A_;
192  // Monomer B eps vector (active vir), alpha spin
193  std::shared_ptr<Vector> eps_avira_B_;
194 
195  // Monomer A eps vector (active occ), beta spin
196  std::shared_ptr<Vector> eps_aoccb_A_;
197  // Monomer B eps vector (active occ), beta spin
198  std::shared_ptr<Vector> eps_aoccb_B_;
199  // Monomer A eps vector (active vir), beta spin
200  std::shared_ptr<Vector> eps_avirb_A_;
201  // Monomer B eps vector (active vir), beta spin
202  std::shared_ptr<Vector> eps_avirb_B_;
203 
204  // Monomer A eps vector (frozen occ), alpha spin
205  std::shared_ptr<Vector> eps_focca_A_;
206  // Monomer B eps vector (frozen occ), alpha spin
207  std::shared_ptr<Vector> eps_focca_B_;
208  // Monomer A eps vector (frozen vir), alpha spin
209  std::shared_ptr<Vector> eps_fvira_A_;
210  // Monomer B eps vector (frozen vir), alpha spin
211  std::shared_ptr<Vector> eps_fvira_B_;
212 
213  // Monomer A eps vector (frozen occ), beta spin
214  std::shared_ptr<Vector> eps_foccb_A_;
215  // Monomer B eps vector (frozen occ), beta spin
216  std::shared_ptr<Vector> eps_foccb_B_;
217  // Monomer A eps vector (frozen vir), beta spin
218  std::shared_ptr<Vector> eps_fvirb_A_;
219  // Monomer B eps vector (frozen vir), beta spin
220  std::shared_ptr<Vector> eps_fvirb_B_;
221 
222  // Shared matrices (Fock-like)
223  std::map<std::string, std::shared_ptr<Matrix> > vars_;
224 
225 
226  // Print author/sizing/spec info
227  virtual void print_header() const;
228  // Obligatory
229  virtual void print_trailer();
230 
231  // Hartree-Fock-like terms (Elst, Exch, Ind)
232  virtual void fock_terms();
233  // MP2-like terms (Disp)
234  virtual void mp2_terms();
235 
236  // => Helper Methods <= //
237 
238  // Build the AO-basis dimer overlap matrix
239  std::shared_ptr<Matrix> build_S(std::shared_ptr<BasisSet> basis);
240  // Build the potential integral matrix
241  std::shared_ptr<Matrix> build_V(std::shared_ptr<BasisSet> basis);
242 
243  // Build the alpha and beta S_ij matrices in the dimer occupied space
244  std::shared_ptr<Matrix> build_Sija(std::shared_ptr<Matrix> S);
245  std::shared_ptr<Matrix> build_Sijb(std::shared_ptr<Matrix> S);
246  // Build the S^\infty expansion in the dimer occupied space
247  std::shared_ptr<Matrix> build_Sij_n(std::shared_ptr<Matrix> Sij);
248  // Build the Cbar matrices from S^\infty
249  std::map<std::string, std::shared_ptr<Matrix> > build_Cbar(std::shared_ptr<Matrix> Sa, std::shared_ptr<Matrix> Sb);
250 
251  // Compute the CPKS solution
252  std::map< std::string, std::shared_ptr<Matrix> > compute_x(std::shared_ptr<JK> jk,
253  std::shared_ptr<Matrix> wa_B,
254  std::shared_ptr<Matrix> wb_B,
255  std::shared_ptr<Matrix> wa_A,
256  std::shared_ptr<Matrix> wb_A);
257 
258  // Build the ExchInd20 potential in the monomer A ov space
259  std::shared_ptr<Matrix> build_exch_ind_pot(std::map<std::string, std::shared_ptr<Matrix> >& vars);
260  // Build the Ind20 potential in the monomer A ov space
261  std::shared_ptr<Matrix> build_ind_pot(std::map<std::string, std::shared_ptr<Matrix> >& vars);
262 
264 
265 // // ==> DFTSAPT <==
266 //
267 // // Number of frequency points in Casimir-Poldar
268 // int freq_points_;
269 // // Frequency scale in Casimir-Poldar
270 // double freq_scale_;
271 // // Maximum number of terms in Casimir-Poldar susceptibility coupling
272 // int freq_max_k_;
273 //
274 // // Grab an uncoupled susceptibility in the RI basis
275 // std::shared_ptr<Matrix> uncoupled_susceptibility(
276 // double omega,
277 // std::shared_ptr<Vector> ea,
278 // std::shared_ptr<Vector> er,
279 // std::shared_ptr<Tensor> Bar);
280 // // Grab a coupled susceptibility in the RI basis
281 // std::shared_ptr<Matrix> coupled_susceptibility(
282 // double omega,
283 // std::shared_ptr<Vector> ea,
284 // std::shared_ptr<Vector> er,
285 // std::map<std::string, std::shared_ptr<Tensor> >& vars,
286 // int nmax);
287 // // Grab a coupled susceptibility in the RI basis (N^6)
288 // std::shared_ptr<Matrix> coupled_susceptibility_debug(
289 // double omega,
290 // std::shared_ptr<Vector> ea,
291 // std::shared_ptr<Vector> er,
292 // std::shared_ptr<Tensor> AaaT,
293 // std::shared_ptr<Tensor> AarT,
294 // std::shared_ptr<Tensor> ArrT,
295 // std::shared_ptr<Tensor> DarT);
296 //
297 // // => Utility Routines <= //
298 //
299 // // Inner product LT' * lambda * RT => Result
300 // std::shared_ptr<Matrix> inner(
301 // std::shared_ptr<Tensor> LT,
302 // std::shared_ptr<Tensor> RT,
303 // std::shared_ptr<Matrix> lambda = std::shared_ptr<Matrix>());
304 // // Fitting product RT * metric => Result
305 // std::shared_ptr<Tensor> fitting(
306 // const std::string& name,
307 // std::shared_ptr<Tensor> RT,
308 // std::shared_ptr<Matrix> metric);
309 // // DAXPY, alpha L + beta R => R
310 // void axpy(
311 // std::shared_ptr<Tensor> LT,
312 // std::shared_ptr<Tensor> RT,
313 // double alpha = 1.0,
314 // double beta = 1.0);
315 
316 public:
317  // Constructor, call this with 3 converged SCF jobs (dimer, monomer A, monomer B)
319  Options& options, std::shared_ptr<PSIO> psio);
320  virtual ~USAPT0();
321 
322  // Compute the USAPT0 analysis
323  virtual double compute_energy();
324 
325 // void fd(int nA, int nB, double** CAp, double** Sp, int nso, int no, double** CBp, double** Cp, std::shared_ptr<Matrix> Sa);
326 };
327 
328 class CPKS_USAPT0 {
329 
330 friend class USAPT0;
331 
332 protected:
333 
334  // => Global Data <= //
335 
336  // Convergence tolerance
337  double delta_;
338  // Maximum allowed iterations
339  int maxiter_;
340  // JK Object
341  std::shared_ptr<JK> jk_;
342 
343  // => Monomer A Problem <= //
344 
345  // Perturbations applied to A
346  std::shared_ptr<Matrix> wa_B_;
347  std::shared_ptr<Matrix> wb_B_;
348  // Response of A
349  std::shared_ptr<Matrix> xa_A_;
350  std::shared_ptr<Matrix> xb_A_;
351  // Active occ orbital coefficients of A
352  std::shared_ptr<Matrix> Cocca_A_;
353  std::shared_ptr<Matrix> Coccb_A_;
354  // Active vir orbital coefficients of A
355  std::shared_ptr<Matrix> Cvira_A_;
356  std::shared_ptr<Matrix> Cvirb_A_;
357  // Active occ orbital eigenvalues of A
358  std::shared_ptr<Vector> eps_occa_A_;
359  std::shared_ptr<Vector> eps_occb_A_;
360  // Active vir orbital eigenvalues of A
361  std::shared_ptr<Vector> eps_vira_A_;
362  std::shared_ptr<Vector> eps_virb_A_;
363 
364  // => Monomer B Problem <= //
365 
366  // Perturbations applied to B
367  std::shared_ptr<Matrix> wa_A_;
368  std::shared_ptr<Matrix> wb_A_;
369  // Response of B
370  std::shared_ptr<Matrix> xa_B_;
371  std::shared_ptr<Matrix> xb_B_;
372  // Active occ orbital coefficients of B
373  std::shared_ptr<Matrix> Cocca_B_;
374  std::shared_ptr<Matrix> Coccb_B_;
375  // Active vir orbital coefficients of B
376  std::shared_ptr<Matrix> Cvira_B_;
377  std::shared_ptr<Matrix> Cvirb_B_;
378  // Active occ orbital eigenvalues of B
379  std::shared_ptr<Vector> eps_occa_B_;
380  std::shared_ptr<Vector> eps_occb_B_;
381  // Active vir orbital eigenvalues of B
382  std::shared_ptr<Vector> eps_vira_B_;
383  std::shared_ptr<Vector> eps_virb_B_;
384 
385  // Form the s = Ab product for the provided vectors b (may or may not need more iterations)
386  std::map<std::string, std::shared_ptr<Matrix> > product(std::map<std::string, std::shared_ptr<Matrix> >& b);
387  // Apply the denominator from r into zs
388  void preconditioner(std::shared_ptr<Matrix> r,
389  std::shared_ptr<Matrix> z,
390  std::shared_ptr<Vector> o,
391  std::shared_ptr<Vector> v);
392 
393 public:
394  CPKS_USAPT0();
395  virtual ~CPKS_USAPT0();
396 
397  void compute_cpks();
398 };
399 
400 }} // end namespaces
401 
402 #endif
std::shared_ptr< Vector > eps_aocca_A_
Definition: usapt0.h:187
std::map< std::string, std::shared_ptr< Matrix > > build_Cbar(std::shared_ptr< Matrix > Sa, std::shared_ptr< Matrix > Sb)
Definition: usapt0.cc:1250
std::shared_ptr< Matrix > Cvira_A_
Definition: usapt0.h:119
std::shared_ptr< Vector > eps_vira_A_
Definition: usapt0.h:361
int maxiter_
Definition: usapt0.h:339
std::shared_ptr< Vector > eps_aocca_B_
Definition: usapt0.h:189
virtual void mp2_terms()
Definition: usapt0.cc:1758
std::shared_ptr< Matrix > build_ind_pot(std::map< std::string, std::shared_ptr< Matrix > > &vars)
Definition: usapt0.cc:1085
virtual double compute_energy()
Definition: usapt0.cc:158
std::shared_ptr< Vector > eps_occb_A_
Definition: usapt0.h:359
std::shared_ptr< Molecule > dimer_
Definition: usapt0.h:108
virtual ~USAPT0()
Definition: usapt0.cc:156
std::shared_ptr< BasisSet > primary_B_
Definition: usapt0.h:94
std::shared_ptr< Matrix > Cavira_A_
Definition: usapt0.h:155
std::shared_ptr< BasisSet > primary_A_
Definition: usapt0.h:92
std::shared_ptr< Vector > eps_occa_B_
Definition: usapt0.h:379
std::shared_ptr< BasisSet > basis
Definition: dx_write.cc:59
std::shared_ptr< Vector > eps_focca_B_
Definition: usapt0.h:207
std::map< std::string, std::shared_ptr< Matrix > > vars_
Definition: usapt0.h:223
std::map< std::string, std::shared_ptr< Matrix > > compute_x(std::shared_ptr< JK > jk, std::shared_ptr< Matrix > wa_B, std::shared_ptr< Matrix > wb_B, std::shared_ptr< Matrix > wa_A, std::shared_ptr< Matrix > wb_A)
Definition: usapt0.cc:1301
std::shared_ptr< Vector > eps_fvira_B_
Definition: usapt0.h:211
std::shared_ptr< Matrix > Cavirb_A_
Definition: usapt0.h:164
std::shared_ptr< Vector > eps_occa_A_
Definition: usapt0.h:133
std::shared_ptr< Matrix > Cocca_A_
Definition: usapt0.h:352
Options & options_
Definition: usapt0.h:58
std::shared_ptr< Molecule > monomer_A_
Definition: usapt0.h:110
void preconditioner(std::shared_ptr< Matrix > r, std::shared_ptr< Matrix > z, std::shared_ptr< Vector > o, std::shared_ptr< Vector > v)
Definition: usapt0.cc:1546
std::map< std::string, std::shared_ptr< Matrix > > product(std::map< std::string, std::shared_ptr< Matrix > > &b)
Definition: usapt0.cc:1564
std::shared_ptr< Matrix > Cvirb_B_
Definition: usapt0.h:130
std::shared_ptr< Vector > eps_occb_B_
Definition: usapt0.h:380
std::shared_ptr< Vector > eps_occa_B_
Definition: usapt0.h:135
std::shared_ptr< Matrix > Cavira_B_
Definition: usapt0.h:157
std::shared_ptr< Vector > eps_occb_B_
Definition: usapt0.h:144
CPKS_USAPT0()
Definition: usapt0.cc:1347
std::shared_ptr< Matrix > build_Sija(std::shared_ptr< Matrix > S)
Definition: usapt0.cc:1171
bool coupled_ind_
Definition: usapt0.h:81
void initialize(SharedWavefunction mA, SharedWavefunction mB)
Definition: usapt0.cc:95
std::shared_ptr< Matrix > build_S(std::shared_ptr< BasisSet > basis)
Definition: usapt0.cc:1157
std::shared_ptr< Matrix > Caocca_A_
Definition: usapt0.h:151
std::shared_ptr< Vector > eps_virb_B_
Definition: usapt0.h:148
std::shared_ptr< Matrix > wb_A_
Definition: usapt0.h:368
std::shared_ptr< Matrix > Cfvirb_B_
Definition: usapt0.h:184
std::shared_ptr< Vector > eps_foccb_B_
Definition: usapt0.h:216
std::shared_ptr< Vector > eps_occa_A_
Definition: usapt0.h:358
std::shared_ptr< Matrix > Coccb_B_
Definition: usapt0.h:126
std::map< std::string, double > energies_
Definition: usapt0.h:87
std::shared_ptr< Matrix > Coccb_A_
Definition: usapt0.h:124
double E_monomer_A_
Definition: usapt0.h:103
double cpks_delta_
Definition: usapt0.h:75
std::shared_ptr< Vector > eps_fvirb_A_
Definition: usapt0.h:218
std::shared_ptr< Matrix > build_Sijb(std::shared_ptr< Matrix > S)
Definition: usapt0.cc:1193
Definition: usapt0.h:55
std::shared_ptr< BasisSet > jkfit_
Definition: usapt0.h:98
double E_dimer_
Definition: usapt0.h:101
std::shared_ptr< Matrix > xb_B_
Definition: usapt0.h:371
std::shared_ptr< Vector > eps_fvirb_B_
Definition: usapt0.h:220
std::shared_ptr< Matrix > Cocca_A_
Definition: usapt0.h:115
std::shared_ptr< Matrix > Caoccb_B_
Definition: usapt0.h:162
int bench_
Definition: usapt0.h:70
std::shared_ptr< Matrix > Cfvira_B_
Definition: usapt0.h:175
std::shared_ptr< Vector > eps_virb_A_
Definition: usapt0.h:146
std::shared_ptr< Matrix > Cfocca_A_
Definition: usapt0.h:169
std::shared_ptr< Vector > eps_virb_A_
Definition: usapt0.h:362
std::shared_ptr< Matrix > Cvirb_A_
Definition: usapt0.h:128
virtual void print_header() const
Definition: usapt0.cc:173
std::shared_ptr< Vector > eps_fvira_A_
Definition: usapt0.h:209
std::shared_ptr< Matrix > Caocca_B_
Definition: usapt0.h:153
std::shared_ptr< Matrix > Cfoccb_A_
Definition: usapt0.h:178
std::shared_ptr< Matrix > Caoccb_A_
Definition: usapt0.h:160
std::shared_ptr< Matrix > Cocca_B_
Definition: usapt0.h:117
std::shared_ptr< Vector > eps_foccb_A_
Definition: usapt0.h:214
std::shared_ptr< Vector > eps_avirb_B_
Definition: usapt0.h:202
std::shared_ptr< Matrix > Cvira_A_
Definition: usapt0.h:355
std::shared_ptr< Vector > eps_vira_B_
Definition: usapt0.h:382
std::shared_ptr< Vector > eps_occb_A_
Definition: usapt0.h:142
virtual ~CPKS_USAPT0()
Definition: usapt0.cc:1348
std::shared_ptr< Matrix > xa_A_
Definition: usapt0.h:349
std::shared_ptr< Vector > eps_vira_A_
Definition: usapt0.h:137
std::shared_ptr< Vector > eps_avira_A_
Definition: usapt0.h:191
std::shared_ptr< BasisSet > primary_
Definition: usapt0.h:90
std::shared_ptr< Matrix > Cfoccb_B_
Definition: usapt0.h:180
Definition: liboptions.h:355
std::shared_ptr< Molecule > monomer_B_
Definition: usapt0.h:112
std::shared_ptr< Matrix > Cocca_B_
Definition: usapt0.h:373
Header file for the Quantum Trio LibraryDavid Sherrill 1994.
std::shared_ptr< Vector > eps_aoccb_A_
Definition: usapt0.h:196
std::shared_ptr< Matrix > wb_B_
Definition: usapt0.h:347
std::shared_ptr< Vector > eps_avirb_A_
Definition: usapt0.h:200
std::shared_ptr< Vector > eps_aoccb_B_
Definition: usapt0.h:198
std::shared_ptr< Matrix > Cfvira_A_
Definition: usapt0.h:173
std::shared_ptr< Matrix > Cvirb_A_
Definition: usapt0.h:356
std::shared_ptr< Matrix > build_V(std::shared_ptr< BasisSet > basis)
Definition: usapt0.cc:1164
int cpks_maxiter_
Definition: usapt0.h:73
std::shared_ptr< Matrix > xa_B_
Definition: usapt0.h:370
double E_monomer_B_
Definition: usapt0.h:105
std::shared_ptr< Matrix > Cfocca_B_
Definition: usapt0.h:171
std::shared_ptr< Vector > eps_vira_B_
Definition: usapt0.h:139
std::shared_ptr< Vector > eps_focca_A_
Definition: usapt0.h:205
std::shared_ptr< Matrix > Cvira_B_
Definition: usapt0.h:376
double exch_scale_alpha_
Definition: usapt0.h:78
std::shared_ptr< Matrix > Coccb_B_
Definition: usapt0.h:374
std::shared_ptr< Matrix > wa_A_
Definition: usapt0.h:367
std::shared_ptr< Matrix > xb_A_
Definition: usapt0.h:350
std::shared_ptr< Matrix > Cfvirb_A_
Definition: usapt0.h:182
PsiReturnType sapt(SharedWavefunction, SharedWavefunction, SharedWavefunction, Options &)
Definition: sapt/wrapper.cc:48
std::string type_
Definition: usapt0.h:63
std::shared_ptr< Vector > eps_avira_B_
Definition: usapt0.h:193
std::shared_ptr< JK > jk_
Definition: usapt0.h:341
int print_
Definition: usapt0.h:66
Definition: usapt0.h:328
std::shared_ptr< Matrix > wa_B_
Definition: usapt0.h:346
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:54
std::shared_ptr< Matrix > Cavirb_B_
Definition: usapt0.h:166
std::shared_ptr< Vector > eps_virb_B_
Definition: usapt0.h:383
double delta_
Definition: usapt0.h:337
std::shared_ptr< Matrix > build_Sij_n(std::shared_ptr< Matrix > Sij)
Definition: usapt0.cc:1216
USAPT0(SharedWavefunction d, SharedWavefunction mA, SharedWavefunction mB, Options &options, std::shared_ptr< PSIO > psio)
Definition: usapt0.cc:50
virtual void fock_terms()
Definition: usapt0.cc:403
std::shared_ptr< Matrix > Cvira_B_
Definition: usapt0.h:121
std::shared_ptr< Matrix > Cvirb_B_
Definition: usapt0.h:377
int debug_
Definition: usapt0.h:68
std::shared_ptr< Matrix > build_exch_ind_pot(std::map< std::string, std::shared_ptr< Matrix > > &vars)
Definition: usapt0.cc:1092
void compute_cpks()
Definition: usapt0.cc:1349
size_t memory_
Definition: usapt0.h:84
std::shared_ptr< Matrix > Coccb_A_
Definition: usapt0.h:353
virtual void print_trailer()
Definition: usapt0.cc:242
std::shared_ptr< BasisSet > mp2fit_
Definition: usapt0.h:96