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 #include <array>
39 
40 #ifdef _OPENMP
41  #include <omp.h>
42 #endif
43 
44 namespace psi {
45 
46 class JK;
47 class Options;
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  size_t 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  // Dimer dipole field
116  std::array<double,3> dimer_field_;
117  // Monomer A dipole field
118  std::array<double,3> monomer_A_field_;
119  // Monomer B dipole field
120  std::array<double,3> monomer_B_field_;
121 
122  // Monomer A C matrix (full occ), alpha spin
123  std::shared_ptr<Matrix> Cocca_A_;
124  // Monomer B C matrix (full occ), alpha spin
125  std::shared_ptr<Matrix> Cocca_B_;
126  // Monomer A C matrix (full vir), alpha spin
127  std::shared_ptr<Matrix> Cvira_A_;
128  // Monomer B C matrix (full vir), alpha spin
129  std::shared_ptr<Matrix> Cvira_B_;
130 
131  // Monomer A C matrix (full occ), beta spin
132  std::shared_ptr<Matrix> Coccb_A_;
133  // Monomer B C matrix (full occ), beta spin
134  std::shared_ptr<Matrix> Coccb_B_;
135  // Monomer A C matrix (full vir), beta spin
136  std::shared_ptr<Matrix> Cvirb_A_;
137  // Monomer B C matrix (full vir), beta spin
138  std::shared_ptr<Matrix> Cvirb_B_;
139 
140  // Monomer A eps vector (full occ), alpha spin
141  std::shared_ptr<Vector> eps_occa_A_;
142  // Monomer B eps vector (full occ), alpha spin
143  std::shared_ptr<Vector> eps_occa_B_;
144  // Monomer A eps vector (full vir), alpha spin
145  std::shared_ptr<Vector> eps_vira_A_;
146  // Monomer B eps vector (full vir), alpha spin
147  std::shared_ptr<Vector> eps_vira_B_;
148 
149  // Monomer A eps vector (full occ), beta spin
150  std::shared_ptr<Vector> eps_occb_A_;
151  // Monomer B eps vector (full occ), beta spin
152  std::shared_ptr<Vector> eps_occb_B_;
153  // Monomer A eps vector (full vir), beta spin
154  std::shared_ptr<Vector> eps_virb_A_;
155  // Monomer B eps vector (full vir), beta spin
156  std::shared_ptr<Vector> eps_virb_B_;
157 
158  // Monomer A C matrix (active occ), alpha spin
159  std::shared_ptr<Matrix> Caocca_A_;
160  // Monomer B C matrix (active occ), alpha spin
161  std::shared_ptr<Matrix> Caocca_B_;
162  // Monomer A C matrix (active vir), alpha spin
163  std::shared_ptr<Matrix> Cavira_A_;
164  // Monomer B C matrix (active vir), alpha spin
165  std::shared_ptr<Matrix> Cavira_B_;
166 
167  // Monomer A C matrix (active occ), beta spin
168  std::shared_ptr<Matrix> Caoccb_A_;
169  // Monomer B C matrix (active occ), beta spin
170  std::shared_ptr<Matrix> Caoccb_B_;
171  // Monomer A C matrix (active vir), beta spin
172  std::shared_ptr<Matrix> Cavirb_A_;
173  // Monomer B C matrix (active vir), beta spin
174  std::shared_ptr<Matrix> Cavirb_B_;
175 
176  // Monomer A C matrix (frozen occ), alpha spin
177  std::shared_ptr<Matrix> Cfocca_A_;
178  // Monomer B C matrix (frozen occ), alpha spin
179  std::shared_ptr<Matrix> Cfocca_B_;
180  // Monomer A C matrix (frozen vir), alpha spin
181  std::shared_ptr<Matrix> Cfvira_A_;
182  // Monomer B C matrix (frozen vir), alpha spin
183  std::shared_ptr<Matrix> Cfvira_B_;
184 
185  // Monomer A C matrix (frozen occ), beta spin
186  std::shared_ptr<Matrix> Cfoccb_A_;
187  // Monomer B C matrix (frozen occ), beta spin
188  std::shared_ptr<Matrix> Cfoccb_B_;
189  // Monomer A C matrix (frozen vir), beta spin
190  std::shared_ptr<Matrix> Cfvirb_A_;
191  // Monomer B C matrix (frozen vir), beta spin
192  std::shared_ptr<Matrix> Cfvirb_B_;
193 
194  // Monomer A eps vector (active occ), alpha spin
195  std::shared_ptr<Vector> eps_aocca_A_;
196  // Monomer B eps vector (active occ), alpha spin
197  std::shared_ptr<Vector> eps_aocca_B_;
198  // Monomer A eps vector (active vir), alpha spin
199  std::shared_ptr<Vector> eps_avira_A_;
200  // Monomer B eps vector (active vir), alpha spin
201  std::shared_ptr<Vector> eps_avira_B_;
202 
203  // Monomer A eps vector (active occ), beta spin
204  std::shared_ptr<Vector> eps_aoccb_A_;
205  // Monomer B eps vector (active occ), beta spin
206  std::shared_ptr<Vector> eps_aoccb_B_;
207  // Monomer A eps vector (active vir), beta spin
208  std::shared_ptr<Vector> eps_avirb_A_;
209  // Monomer B eps vector (active vir), beta spin
210  std::shared_ptr<Vector> eps_avirb_B_;
211 
212  // Monomer A eps vector (frozen occ), alpha spin
213  std::shared_ptr<Vector> eps_focca_A_;
214  // Monomer B eps vector (frozen occ), alpha spin
215  std::shared_ptr<Vector> eps_focca_B_;
216  // Monomer A eps vector (frozen vir), alpha spin
217  std::shared_ptr<Vector> eps_fvira_A_;
218  // Monomer B eps vector (frozen vir), alpha spin
219  std::shared_ptr<Vector> eps_fvira_B_;
220 
221  // Monomer A eps vector (frozen occ), beta spin
222  std::shared_ptr<Vector> eps_foccb_A_;
223  // Monomer B eps vector (frozen occ), beta spin
224  std::shared_ptr<Vector> eps_foccb_B_;
225  // Monomer A eps vector (frozen vir), beta spin
226  std::shared_ptr<Vector> eps_fvirb_A_;
227  // Monomer B eps vector (frozen vir), beta spin
228  std::shared_ptr<Vector> eps_fvirb_B_;
229 
230  // Shared matrices (Fock-like)
231  std::map<std::string, std::shared_ptr<Matrix> > vars_;
232 
233 
234  // Print author/sizing/spec info
235  virtual void print_header() const;
236  // Obligatory
237  virtual void print_trailer();
238 
239  // Hartree-Fock-like terms (Elst, Exch, Ind)
240  virtual void fock_terms();
241  // MP2-like terms (Disp)
242  virtual void mp2_terms();
243 
244  // => Helper Methods <= //
245 
246  // Build the AO-basis dimer overlap matrix
247  std::shared_ptr<Matrix> build_S(std::shared_ptr<BasisSet> basis);
248  // Build the potential integral matrix
249  std::shared_ptr<Matrix> build_V(std::shared_ptr<BasisSet> basis);
250 
251  // Build the alpha and beta S_ij matrices in the dimer occupied space
252  std::shared_ptr<Matrix> build_Sija(std::shared_ptr<Matrix> S);
253  std::shared_ptr<Matrix> build_Sijb(std::shared_ptr<Matrix> S);
254  // Build the S^\infty expansion in the dimer occupied space
255  std::shared_ptr<Matrix> build_Sij_n(std::shared_ptr<Matrix> Sij);
256  // Build the Cbar matrices from S^\infty
257  std::map<std::string, std::shared_ptr<Matrix> > build_Cbar(std::shared_ptr<Matrix> Sa, std::shared_ptr<Matrix> Sb);
258 
259  // Compute the CPKS solution
260  std::map< std::string, std::shared_ptr<Matrix> > compute_x(std::shared_ptr<JK> jk,
261  std::shared_ptr<Matrix> wa_B,
262  std::shared_ptr<Matrix> wb_B,
263  std::shared_ptr<Matrix> wa_A,
264  std::shared_ptr<Matrix> wb_A);
265 
266  // Build the ExchInd20 potential in the monomer A ov space
267  std::shared_ptr<Matrix> build_exch_ind_pot(std::map<std::string, std::shared_ptr<Matrix> >& vars);
268  // Build the Ind20 potential in the monomer A ov space
269  std::shared_ptr<Matrix> build_ind_pot(std::map<std::string, std::shared_ptr<Matrix> >& vars);
270 
272 
273 // // ==> DFTSAPT <==
274 //
275 // // Number of frequency points in Casimir-Poldar
276 // int freq_points_;
277 // // Frequency scale in Casimir-Poldar
278 // double freq_scale_;
279 // // Maximum number of terms in Casimir-Poldar susceptibility coupling
280 // int freq_max_k_;
281 //
282 // // Grab an uncoupled susceptibility in the RI basis
283 // std::shared_ptr<Matrix> uncoupled_susceptibility(
284 // double omega,
285 // std::shared_ptr<Vector> ea,
286 // std::shared_ptr<Vector> er,
287 // std::shared_ptr<Tensor> Bar);
288 // // Grab a coupled susceptibility in the RI basis
289 // std::shared_ptr<Matrix> coupled_susceptibility(
290 // double omega,
291 // std::shared_ptr<Vector> ea,
292 // std::shared_ptr<Vector> er,
293 // std::map<std::string, std::shared_ptr<Tensor> >& vars,
294 // int nmax);
295 // // Grab a coupled susceptibility in the RI basis (N^6)
296 // std::shared_ptr<Matrix> coupled_susceptibility_debug(
297 // double omega,
298 // std::shared_ptr<Vector> ea,
299 // std::shared_ptr<Vector> er,
300 // std::shared_ptr<Tensor> AaaT,
301 // std::shared_ptr<Tensor> AarT,
302 // std::shared_ptr<Tensor> ArrT,
303 // std::shared_ptr<Tensor> DarT);
304 //
305 // // => Utility Routines <= //
306 //
307 // // Inner product LT' * lambda * RT => Result
308 // std::shared_ptr<Matrix> inner(
309 // std::shared_ptr<Tensor> LT,
310 // std::shared_ptr<Tensor> RT,
311 // std::shared_ptr<Matrix> lambda = std::shared_ptr<Matrix>());
312 // // Fitting product RT * metric => Result
313 // std::shared_ptr<Tensor> fitting(
314 // const std::string& name,
315 // std::shared_ptr<Tensor> RT,
316 // std::shared_ptr<Matrix> metric);
317 // // DAXPY, alpha L + beta R => R
318 // void axpy(
319 // std::shared_ptr<Tensor> LT,
320 // std::shared_ptr<Tensor> RT,
321 // double alpha = 1.0,
322 // double beta = 1.0);
323 
324 public:
325  // Constructor, call this with 3 converged SCF jobs (dimer, monomer A, monomer B)
327  Options& options, std::shared_ptr<PSIO> psio);
328  virtual ~USAPT0();
329 
330  // Compute the USAPT0 analysis
331  virtual double compute_energy();
332 
333 // void fd(int nA, int nB, double** CAp, double** Sp, int nso, int no, double** CBp, double** Cp, std::shared_ptr<Matrix> Sa);
334 };
335 
336 class CPKS_USAPT0 {
337 
338 friend class USAPT0;
339 
340 protected:
341 
342  // => Global Data <= //
343 
344  // Convergence tolerance
345  double delta_;
346  // Maximum allowed iterations
347  int maxiter_;
348  // JK Object
349  std::shared_ptr<JK> jk_;
350 
351  // => Monomer A Problem <= //
352 
353  // Perturbations applied to A
354  std::shared_ptr<Matrix> wa_B_;
355  std::shared_ptr<Matrix> wb_B_;
356  // Response of A
357  std::shared_ptr<Matrix> xa_A_;
358  std::shared_ptr<Matrix> xb_A_;
359  // Active occ orbital coefficients of A
360  std::shared_ptr<Matrix> Cocca_A_;
361  std::shared_ptr<Matrix> Coccb_A_;
362  // Active vir orbital coefficients of A
363  std::shared_ptr<Matrix> Cvira_A_;
364  std::shared_ptr<Matrix> Cvirb_A_;
365  // Active occ orbital eigenvalues of A
366  std::shared_ptr<Vector> eps_occa_A_;
367  std::shared_ptr<Vector> eps_occb_A_;
368  // Active vir orbital eigenvalues of A
369  std::shared_ptr<Vector> eps_vira_A_;
370  std::shared_ptr<Vector> eps_virb_A_;
371 
372  // => Monomer B Problem <= //
373 
374  // Perturbations applied to B
375  std::shared_ptr<Matrix> wa_A_;
376  std::shared_ptr<Matrix> wb_A_;
377  // Response of B
378  std::shared_ptr<Matrix> xa_B_;
379  std::shared_ptr<Matrix> xb_B_;
380  // Active occ orbital coefficients of B
381  std::shared_ptr<Matrix> Cocca_B_;
382  std::shared_ptr<Matrix> Coccb_B_;
383  // Active vir orbital coefficients of B
384  std::shared_ptr<Matrix> Cvira_B_;
385  std::shared_ptr<Matrix> Cvirb_B_;
386  // Active occ orbital eigenvalues of B
387  std::shared_ptr<Vector> eps_occa_B_;
388  std::shared_ptr<Vector> eps_occb_B_;
389  // Active vir orbital eigenvalues of B
390  std::shared_ptr<Vector> eps_vira_B_;
391  std::shared_ptr<Vector> eps_virb_B_;
392 
393  // Form the s = Ab product for the provided vectors b (may or may not need more iterations)
394  std::map<std::string, std::shared_ptr<Matrix> > product(std::map<std::string, std::shared_ptr<Matrix> >& b);
395  // Apply the denominator from r into zs
396  void preconditioner(std::shared_ptr<Matrix> r,
397  std::shared_ptr<Matrix> z,
398  std::shared_ptr<Vector> o,
399  std::shared_ptr<Vector> v);
400 
401 public:
402  CPKS_USAPT0();
403  virtual ~CPKS_USAPT0();
404 
405  void compute_cpks();
406 };
407 
408 }} // end namespaces
409 
410 #endif
std::shared_ptr< Vector > eps_aocca_A_
Definition: usapt0.h:195
std::map< std::string, std::shared_ptr< Matrix > > build_Cbar(std::shared_ptr< Matrix > Sa, std::shared_ptr< Matrix > Sb)
Definition: usapt0.cc:1254
std::shared_ptr< Matrix > Cvira_A_
Definition: usapt0.h:127
std::shared_ptr< Vector > eps_vira_A_
Definition: usapt0.h:369
int maxiter_
Definition: usapt0.h:347
std::shared_ptr< Vector > eps_aocca_B_
Definition: usapt0.h:197
virtual void mp2_terms()
Definition: usapt0.cc:1762
std::shared_ptr< Matrix > build_ind_pot(std::map< std::string, std::shared_ptr< Matrix > > &vars)
Definition: usapt0.cc:1089
virtual double compute_energy()
Definition: usapt0.cc:162
std::shared_ptr< Vector > eps_occb_A_
Definition: usapt0.h:367
std::shared_ptr< Molecule > dimer_
Definition: usapt0.h:109
virtual ~USAPT0()
Definition: usapt0.cc:160
std::shared_ptr< BasisSet > primary_B_
Definition: usapt0.h:95
std::shared_ptr< Matrix > Cavira_A_
Definition: usapt0.h:163
std::shared_ptr< BasisSet > primary_A_
Definition: usapt0.h:93
std::shared_ptr< Vector > eps_occa_B_
Definition: usapt0.h:387
std::shared_ptr< BasisSet > basis
Definition: dx_write.cc:59
std::shared_ptr< Vector > eps_focca_B_
Definition: usapt0.h:215
std::map< std::string, std::shared_ptr< Matrix > > vars_
Definition: usapt0.h:231
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:1305
std::shared_ptr< Vector > eps_fvira_B_
Definition: usapt0.h:219
std::shared_ptr< Matrix > Cavirb_A_
Definition: usapt0.h:172
std::shared_ptr< Vector > eps_occa_A_
Definition: usapt0.h:141
std::shared_ptr< Matrix > Cocca_A_
Definition: usapt0.h:360
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:1550
std::map< std::string, std::shared_ptr< Matrix > > product(std::map< std::string, std::shared_ptr< Matrix > > &b)
Definition: usapt0.cc:1568
std::shared_ptr< Matrix > Cvirb_B_
Definition: usapt0.h:138
std::shared_ptr< Vector > eps_occb_B_
Definition: usapt0.h:388
std::shared_ptr< Vector > eps_occa_B_
Definition: usapt0.h:143
std::shared_ptr< Matrix > Cavira_B_
Definition: usapt0.h:165
std::shared_ptr< Vector > eps_occb_B_
Definition: usapt0.h:152
CPKS_USAPT0()
Definition: usapt0.cc:1351
std::shared_ptr< Matrix > build_Sija(std::shared_ptr< Matrix > S)
Definition: usapt0.cc:1175
bool coupled_ind_
Definition: usapt0.h:82
void initialize(SharedWavefunction mA, SharedWavefunction mB)
Definition: usapt0.cc:99
std::shared_ptr< Matrix > build_S(std::shared_ptr< BasisSet > basis)
Definition: usapt0.cc:1161
std::shared_ptr< Matrix > Caocca_A_
Definition: usapt0.h:159
std::shared_ptr< Vector > eps_virb_B_
Definition: usapt0.h:156
std::shared_ptr< Matrix > wb_A_
Definition: usapt0.h:376
std::shared_ptr< Matrix > Cfvirb_B_
Definition: usapt0.h:192
std::shared_ptr< Vector > eps_foccb_B_
Definition: usapt0.h:224
std::shared_ptr< Vector > eps_occa_A_
Definition: usapt0.h:366
std::shared_ptr< Matrix > Coccb_B_
Definition: usapt0.h:134
std::map< std::string, double > energies_
Definition: usapt0.h:88
std::shared_ptr< Matrix > Coccb_A_
Definition: usapt0.h:132
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:226
std::shared_ptr< Matrix > build_Sijb(std::shared_ptr< Matrix > S)
Definition: usapt0.cc:1197
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:379
std::shared_ptr< Vector > eps_fvirb_B_
Definition: usapt0.h:228
std::shared_ptr< Matrix > Cocca_A_
Definition: usapt0.h:123
std::shared_ptr< Matrix > Caoccb_B_
Definition: usapt0.h:170
std::array< double, 3 > monomer_A_field_
Definition: usapt0.h:118
int bench_
Definition: usapt0.h:71
std::shared_ptr< Matrix > Cfvira_B_
Definition: usapt0.h:183
std::shared_ptr< Vector > eps_virb_A_
Definition: usapt0.h:154
std::shared_ptr< Matrix > Cfocca_A_
Definition: usapt0.h:177
std::shared_ptr< Vector > eps_virb_A_
Definition: usapt0.h:370
std::shared_ptr< Matrix > Cvirb_A_
Definition: usapt0.h:136
virtual void print_header() const
Definition: usapt0.cc:177
std::shared_ptr< Vector > eps_fvira_A_
Definition: usapt0.h:217
std::shared_ptr< Matrix > Caocca_B_
Definition: usapt0.h:161
std::array< double, 3 > dimer_field_
Definition: usapt0.h:116
std::shared_ptr< Matrix > Cfoccb_A_
Definition: usapt0.h:186
std::shared_ptr< Matrix > Caoccb_A_
Definition: usapt0.h:168
std::shared_ptr< Matrix > Cocca_B_
Definition: usapt0.h:125
std::shared_ptr< Vector > eps_foccb_A_
Definition: usapt0.h:222
std::shared_ptr< Vector > eps_avirb_B_
Definition: usapt0.h:210
std::shared_ptr< Matrix > Cvira_A_
Definition: usapt0.h:363
std::shared_ptr< Vector > eps_vira_B_
Definition: usapt0.h:390
std::shared_ptr< Vector > eps_occb_A_
Definition: usapt0.h:150
virtual ~CPKS_USAPT0()
Definition: usapt0.cc:1352
std::shared_ptr< Matrix > xa_A_
Definition: usapt0.h:357
std::shared_ptr< Vector > eps_vira_A_
Definition: usapt0.h:145
std::shared_ptr< Vector > eps_avira_A_
Definition: usapt0.h:199
std::shared_ptr< BasisSet > primary_
Definition: usapt0.h:91
std::shared_ptr< Matrix > Cfoccb_B_
Definition: usapt0.h:188
Definition: liboptions.h:355
std::shared_ptr< Molecule > monomer_B_
Definition: usapt0.h:113
std::shared_ptr< Matrix > Cocca_B_
Definition: usapt0.h:381
Header file for the Quantum Trio LibraryDavid Sherrill 1994.
std::shared_ptr< Vector > eps_aoccb_A_
Definition: usapt0.h:204
std::shared_ptr< Matrix > wb_B_
Definition: usapt0.h:355
std::shared_ptr< Vector > eps_avirb_A_
Definition: usapt0.h:208
std::shared_ptr< Vector > eps_aoccb_B_
Definition: usapt0.h:206
std::shared_ptr< Matrix > Cfvira_A_
Definition: usapt0.h:181
std::shared_ptr< Matrix > Cvirb_A_
Definition: usapt0.h:364
std::shared_ptr< Matrix > build_V(std::shared_ptr< BasisSet > basis)
Definition: usapt0.cc:1168
int cpks_maxiter_
Definition: usapt0.h:74
std::shared_ptr< Matrix > xa_B_
Definition: usapt0.h:378
double E_monomer_B_
Definition: usapt0.h:106
std::shared_ptr< Matrix > Cfocca_B_
Definition: usapt0.h:179
std::shared_ptr< Vector > eps_vira_B_
Definition: usapt0.h:147
std::shared_ptr< Vector > eps_focca_A_
Definition: usapt0.h:213
std::shared_ptr< Matrix > Cvira_B_
Definition: usapt0.h:384
double exch_scale_alpha_
Definition: usapt0.h:79
std::shared_ptr< Matrix > Coccb_B_
Definition: usapt0.h:382
std::shared_ptr< Matrix > wa_A_
Definition: usapt0.h:375
std::shared_ptr< Matrix > xb_A_
Definition: usapt0.h:358
std::shared_ptr< Matrix > Cfvirb_A_
Definition: usapt0.h:190
PsiReturnType sapt(SharedWavefunction, SharedWavefunction, SharedWavefunction, Options &)
Definition: sapt/wrapper.cc:48
std::string type_
Definition: usapt0.h:64
std::shared_ptr< Vector > eps_avira_B_
Definition: usapt0.h:201
std::shared_ptr< JK > jk_
Definition: usapt0.h:349
int print_
Definition: usapt0.h:67
Definition: usapt0.h:336
std::array< double, 3 > monomer_B_field_
Definition: usapt0.h:120
std::shared_ptr< Matrix > wa_B_
Definition: usapt0.h:354
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:54
std::shared_ptr< Matrix > Cavirb_B_
Definition: usapt0.h:174
std::shared_ptr< Vector > eps_virb_B_
Definition: usapt0.h:391
double delta_
Definition: usapt0.h:345
std::shared_ptr< Matrix > build_Sij_n(std::shared_ptr< Matrix > Sij)
Definition: usapt0.cc:1220
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:407
std::shared_ptr< Matrix > Cvira_B_
Definition: usapt0.h:129
std::shared_ptr< Matrix > Cvirb_B_
Definition: usapt0.h:385
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:1096
void compute_cpks()
Definition: usapt0.cc:1353
size_t memory_
Definition: usapt0.h:85
std::shared_ptr< Matrix > Coccb_A_
Definition: usapt0.h:361
virtual void print_trailer()
Definition: usapt0.cc:246
std::shared_ptr< BasisSet > mp2fit_
Definition: usapt0.h:97