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