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