Psi4
occwave.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 #ifndef occwave_h
30 #define occwave_h
31 
34 #include "psi4/libdpd/dpd.h"
36 
37 #include "arrays.h"
38 
39 namespace psi{
40 
41 class IntegralTransform;
42 
43 namespace occwave{
44 
45 class OCCWave : public Wavefunction
46 {
47 
48  void common_init();
49 
50 public:
51  OCCWave(std::shared_ptr<Wavefunction> reference_wavefunction, Options &options);
52 
53  virtual ~OCCWave();
54  virtual double compute_energy();
55 
56 protected:
57  // General
58  void mem_release();
59  void mograd();
60  void update_mo();
61  void ccl_energy();
62  void nbo();
63  void get_moinfo();
64  void title();
65  void semi_canonic();
66  void ref_energy();
67  void fock_alpha();
68  void fock_beta();
69  void idp();
70  void idp2();
71  void diis(int dimvec, Array2d *vecs, Array2d *errvecs, Array1d *vec_new, Array1d *errvec_new);
72  void kappa_msd();
73  void kappa_orb_resp();
74  void kappa_orb_resp_iter();
75  void orb_resp_pcg_rhf();
76  void orb_resp_pcg_uhf();
77  void dump_ints();
78  void denominators_rhf();
79  void denominators_uhf();
80  void gfock();
81  void trans_ints_rhf();
82  void trans_ints_uhf();
83  void tpdm_ref();
84  void tpdm_corr_opdm();
85  void tpdm_oovv();
86  void tpdm_oooo();
87  void tpdm_ovov();
88  void tpdm_vovo();
89  void tpdm_ovvo();
90  void gfock_diag();
91  void gfock_oo();
92  void gfock_vv();
93  void coord_grad();
94  void dump_pdms();
95  void occ_iterations();
96  void tei_sort_iabc();
97  void ekt_ip();
98  void ekt_ea();
99  void z_vector();
100  void effective_pdms();
101  void effective_gfock();
102  void gfock_ea();
103  void oeprop();
104  void s2_response();
105  void s2_lagrangian();
106 
107  // OMP2
108  void omp2_manager();
109  void mp2_manager();
110  void omp2_g_int();
111  void omp2_response_pdms();
112  void omp2_t2_1st_sc();
113  void omp2_t2_1st_general();
114  void omp2_tpdm_oovv();
115  void omp2_mp2_energy();
116  void omp2_ip_poles();
117  void omp2_ea_poles();
118  void ep2_ip();
119 
120  // OMP3
121  void omp3_manager();
122  void mp3_manager();
123  void omp3_response_pdms();
124  void omp3_t2_1st_sc();
125  void omp3_t2_1st_general();
126  void omp3_tpdm_vvvv();
127  void omp3_g_int();
128  void omp3_mp2_energy();
129  void w_1st_order();
130  void v_2nd_order();
131  void t2_2nd_sc();
132  void t2_2nd_general();
133  void mp3_energy();
134  void omp3_ip_poles();
135 
136  // OMP2.5
137  void omp2_5_manager();
138  void mp2_5_manager();
139 
140  // OCEPA
141  void ocepa_manager();
142  void cepa_manager();
143  void cepa_iterations();
144  void ocepa_mp2_energy();
145  void ocepa_t2_1st_sc();
146  void ocepa_tpdm_vvvv();
147  void ocepa_g_int();
148  void ocepa_response_pdms();
149  void t2_amps();
150  void w_int();
151  void v_int();
152  void cepa_energy();
153 
154  // MP2
155  void denominators_rmp2();
156  void denominators_ump2();
157  void trans_ints_rmp2();
158  void trans_ints_ump2();
159  void t1_1st_sc();
160  void t1_1st_gen();
161 
164  //class DIISManager t2DiisManager;
165 
166  int nmo; // Number of MOs
167  int nao; // Number of AOs
168  int nso; // Number of SOs
169  int nooA; // Number of alpha occupied orbitals
170  int nooB; // Number of beta occupied orbitals
171  int nvoA; // Number of alpha virtual orbitals
172  int nvoB; // Number of beta virtual orbitals
173  int nacooA; // Number of active alpha occupied orbitals
174  int nacooB; // Number of active beta occupied orbitals
175  int nacso; // Number of active SOs
176  int nacvoA; // Number of active alpha virtual orbitals
177  int nacvoB; // Number of active beta virtual orbitals
178  int nirreps; // Number of irreducible representations
179  int nshell; // Number of shells
180  int nfrzc; // Number of frozen cores
181  int nfrzv; // Number of frozen virtuals
182  int npop; // Number of populated orbitals: npop=nmo-nfrzv
183  int dimtei; // dimension of tei in pitzer order for all integrals
184  int ntri; // square matrix dimension (nmo) -> pitzer order
185  int ntri_so; // square matrix dimension (nso) -> pitzer order
194  int itr_occ;
199  int num_vecs; // Number of vectors used in diis (diis order)
200  int nvar; // nvar = num_vecs +1;
201  int multp;
202  int charge;
203  int print_;
204  int cachelev;
205  int nidp;
206  int nidp_tot; // nidpA + nidpB
207  int nidpA;
208  int nidpB;
209  int conver;
210  int mo_optimized; // if 0 MOs are NOT optimized, if 1 MOs are optimized.
211  int itr_pcg;
212  int idp_idx;
215  int do_diis_;
216  int itr_diis;
217  int time4grad; // If 0 it is not the time for grad, if 1 it is the time for grad
218  int cc_maxdiis_; // MAX Number of vectors used in CC diis
219  int cc_mindiis_; // MIN Number of vectors used in CC diis
220  int incore_iabc_; // 1 means do incore, 0 means do out of core
221  int incore_abcd_; // 1 means do incore, 0 means do out of core
222  int orbs_already_opt; // 1 means true, 0 means false
223  int orbs_already_sc; // 1 means true, 0 means false
224  int ep_conver; // 1 means true, 0 means false
225  int itr_ep;
227 
228  size_t memory;
229  size_t memory_mb_;
230  size_t cost_iabc_; // Mem required for the <ia|bc> integrals
231  size_t cost_abcd_; // Mem required for the <ab|cd> integrals
232 
233  // Common
234  double Enuc;
235  double sum;
236  double Etotal;
237  double Eelec;
238  double Escf;
239  double Eref;
240  double Emp2;
241  double Emp2_t1;
242  double Emp2BB;
243  double Emp2AA;
244  double Emp2AB;
245  double Emp2L;
246  double Emp2L_old;
247  double Ecorr;
248  double EcorrL;
249  double Ecc_rdm;
250  double Escsmp2;
251  double Escsmp2BB;
252  double Escsmp2AA;
253  double Escsmp2AB;
254  double Esosmp2AB;
255  double Esosmp2;
256  double Escsnmp2;
257  double Escsnmp2BB;
258  double Escsnmp2AA;
259  double Escsmimp2;
260  double Escsmimp2BB;
261  double Escsmimp2AA;
262  double Escsmimp2AB;
263  double Escsmp2vdw;
264  double Escsmp2vdwBB;
265  double Escsmp2vdwAA;
266  double Escsmp2vdwAB;
267  double Esospimp2AB;
268  double Esospimp2;
269  double Eopdm;
270  double Etpdm;
271  double DE;
272  double tol_Eod;
273  double tol_grad;
274  double idp_cutoff;
275  double rms_kappa;
276  double rms_kappaA;
277  double rms_kappaB;
278  double rms_wog;
279  double rms_wogA;
280  double rms_wogB;
281  double step_max;
282  double mograd_max;
289  double tol_t2;
290  double rms_t2;
291  double rms_t2AA;
292  double rms_t2AB;
293  double rms_t2BB;
294  double rms_l2;
295  double mu_ls;
296  double sc_ls;
298  double cutoff;
299  double os_scale;
300  double ss_scale;
301  double sos_scale;
302  double sos_scale2;
303  double a_pcgA;
304  double a_pcgB;
305  double b_pcgA;
306  double b_pcgB;
307  double rms_pcgA;
308  double rms_pcgB;
309  double rms_pcg;
310  double tol_pcg;
312  double omega; // Green's function pole for alpha spin
313  double rms_t1;
314  double rms_t1A;
315  double rms_t1B;
316  double s2_resp;
317  double s2_proj;
318  double s2_lag;
319  double s2_ref;
320 
321  // OMP3
322  double e3_scale;
323  double Emp3;
324  double Emp3BB;
325  double Emp3AA;
326  double Emp3AB;
327  double Emp3L;
328  double Emp3L_old;
329  double Escsmp3BB;
330  double Escsmp3AA;
331  double Escsmp3AB;
332  double Escsmp3;
333  double Esosmp3AB;
334  double Esosmp3;
335  double Escsnmp3;
336  double Escsmimp3;
337  double Escsmp3vdw;
338  double Esospimp3;
339 
340  // OCEPA
341  double Ecepa;
342  double Ecepa_old;
343  double EcepaAA;
344  double EcepaBB;
345  double EcepaAB;
346  double EcepaL;
347  double EcepaL_old;
348  double EscscepaBB;
349  double EscscepaAA;
350  double EscscepaAB;
351  double Escscepa;
352  double EsoscepaAB;
353  double Esoscepa;
354  double Escsncepa;
355  double Escsmicepa;
356  double Escscepavdw;
357  double Esospicepa;
362 
363  std::string wfn;
364  std::string reference;
365  std::string reference_;
366  std::string jobtype;
367  std::string dertype;
368  std::string basis;
369  std::string level_shift;
370  std::string lineq;
371  std::string orth_type;
372  std::string natorb;
373  std::string semicanonic;
374  std::string opt_method;
375  std::string hess_type;
376  std::string occ_orb_energy;
377  std::string do_scs; // Spin-Component-Scaling
378  std::string do_sos; // Spin-Opposite-Scaling
379  std::string write_mo_coeff; // Write CmoA to CmoA.psi and CmoB to CmoB.psi
380  std::string read_mo_coeff; // Read CmoA from CmoA.psi and CmoB from CmoB.psi
381  std::string scs_type_;
382  std::string sos_type_;
383  std::string pcg_beta_type_;
384  std::string compute_mp3l; // Do compute mp3l energy during iterations?
385  std::string compute_cepal; // Do compute cepal energy during iterations?
386  std::string twopdm_abcd_type; // How to handle G_abcd
387  std::string wfn_type_;
388  std::string compute_ccl;
389  std::string orb_resp_solver_;
390  std::string ip_poles;
391  std::string ea_poles;
392  std::string ep_ip_poles;
393  std::string ep_ea_poles;
394  std::string ekt_ip_;
395  std::string ekt_ea_;
396  std::string orb_opt_;
397  std::string relaxed_;
398  std::string sym_gfm_;
399  std::string oeprop_;
400  std::string comput_s2_;
401 
402 
403  int *mopi; /* number of all MOs per irrep */
404  int *sopi; /* number of all SOs per irrep */
405  int *occpi;
406  int *doccpi; /* number of doubly occupied MOs per irrep */
407  int *occpiA; /* number of alpha occupied MOs per irrep */
408  int *occpiB; /* number of beta occupied MOs per irrep */
409  int *soccpi; /* number of all singly occupied MOs per irrep */
410  int *virtpiA; /* number of alpha virtual MOs per irrep */
411  int *virtpiB; /* number of beta virtual MOs per irrep */
412  int *frzcpi; /* number of frozen occupied MOs per irrep */
413  int *frzvpi; /* number of frozen virtual MOs per irrep */
414  int *adoccpi; /* number of active doubly occupied MOs per irrep */
415  int *aoccpiA; /* number of active alpha occupied MOs per irrep */
416  int *aoccpiB; /* number of active beta occupied MOs per irrep */
417  int *avirtpiA; /* number of active alpha virtual MOs per irrep */
418  int *avirtpiB; /* number of active beta virtual MOs per irrep */
419  int *mosym; /* symmetry of all MOs in pitzer order */
420  int *sosym; /* symmetry of all SOs in pitzer order */
421  int *mosym_c1; /* symmetry of all MOs in energy order */
422  int *PitzerOffset; /* block offset */
423  int *pitzer2symblk; // convert Pitzer index to sym block index
424  int *pitzer2symirrep; // Return irrep of given SO in Pitzer order
425  int *occ2symblkA; // convert OCC index to sym block index
426  int *occ2symblkB; // convert OCC index to sym block index
427  int *virt2symblkA; // convert VIR index to sym block index
428  int *virt2symblkB; // convert VIR index to sym block index
429  int *qt2pitzerA; // Convert the index of given orbital in QT order to symmetric subgroup (pitzer ordered)
430  int *qt2pitzerB; // Convert the index of given orbital in QT order to symmetric subgroup (pitzer ordered)
431  int *pitzer2qtA; // Convert the index of given orbital in symmetric subgroup to QT order
432  int *pitzer2qtB; // Convert the index of given orbital in symmetric subgroup to QT order
433  int *occ_offA; /* Alpha OCC block offset */
434  int *occ_offB; /* Beta OCC block offset */
435  int *vir_offA; /* Alpha VIR block offset */
436  int *vir_offB; /* Alpha VIR block offset */
437  int *idprowA;
438  int *idprowB;
439  int *idpcolA;
440  int *idpcolB;
441  int *idpirrA;
442  int *idpirrB;
452 
453  size_t *cost_ov_;
454  size_t *cost_vv_;
455 
456  double *evalsA;
457  double *evalsB;
458  double *evals_c1A;
459  double *evals_c1B;
460 
467  Array1d *kappa; // where kappa = kappaA + kappaB
492  Array1d *zvector; // where zvector = zvectorA + zvectorB
493 
502 
505 
506  double **C_pitzerA;
507  double **C_pitzerB;
508 
509  SharedMatrix Ca_new; // New Alpha MO coeff.
510  SharedMatrix Cb_new; // New Beta MO coeff.
511  SharedMatrix Ca_ref; // Ref Alpha MO coeff.
512  SharedMatrix Cb_ref; // Ref Beta MO coeff.
565 
566 };
567 
568 } }
569 
570 #endif // occwave_h
SharedMatrix t1B
Definition: occwave.h:562
void ocepa_response_pdms()
Definition: ocepa_response_pdms.cc:36
Array2d * errvecsA
Definition: occwave.h:496
SharedMatrix HCA
Definition: occwave.h:551
int * ov_pairpiAA
Definition: occwave.h:446
void dump_pdms()
Definition: coord_grad.cc:171
Array1d * kappaA
Definition: occwave.h:465
double os_scale
Definition: occwave.h:299
double sum
Definition: occwave.h:235
double e3_scale
Definition: occwave.h:322
SharedMatrix Cb_new
Definition: occwave.h:510
int * occpiB
Definition: occwave.h:408
double Emp2_t1
Definition: occwave.h:241
int exp_idp_cutoff
Definition: occwave.h:191
double sos_scale_ocepa
Definition: occwave.h:361
void mp2_5_manager()
Definition: occ/manager.cc:1427
void omp3_t2_1st_sc()
Definition: omp3_t2_1st_sc.cc:37
int nhessroot
Definition: occwave.h:195
int * idpcolB
Definition: occwave.h:440
std::string compute_cepal
Definition: occwave.h:385
int * qt2pitzerB
Definition: occwave.h:430
void omp3_response_pdms()
Definition: omp3_response_pdms.cc:37
int exp_mograd_max
Definition: occwave.h:192
int * occ_offB
Definition: occwave.h:434
std::string wfn_type_
Definition: occwave.h:387
void tpdm_ovov()
Definition: corr_tpdm.cc:605
Array2d * AorbAA
Definition: occwave.h:498
double Emp3BB
Definition: occwave.h:324
int pcg_maxiter
Definition: occwave.h:213
Array1d * Minv_pcgA
Definition: occwave.h:480
Options & options() const
Definition: wavefunction.cc:412
int nacooA
Definition: occwave.h:173
Array1d * p_pcgB
Definition: occwave.h:477
double cutoff
Definition: occwave.h:298
int idp_return
Definition: occwave.h:196
Array1d * r_pcg_newB
Definition: occwave.h:483
int * adoccpi
Definition: occwave.h:414
int * oo_pairpiAA
Definition: occwave.h:443
Array1d * kappa_barA
Definition: occwave.h:468
std::string compute_mp3l
Definition: occwave.h:384
double Eref
Definition: occwave.h:239
double omega
Definition: occwave.h:312
int nvar
Definition: occwave.h:200
void fock_alpha()
Definition: fock_alpha.cc:38
int * vv_pairpiBB
Definition: occwave.h:451
void diis(int dimvec, Array2d *vecs, Array2d *errvecs, Array1d *vec_new, Array1d *errvec_new)
Definition: occ/diis.cc:38
double rms_t2AA
Definition: occwave.h:291
int ep_maxiter
Definition: occwave.h:226
SharedMatrix g1symm
Definition: occwave.h:542
void get_moinfo()
Definition: occ/get_moinfo.cc:46
double Escsmimp2AB
Definition: occwave.h:262
int nidpB
Definition: occwave.h:208
double Escsnmp2
Definition: occwave.h:256
double a_pcgA
Definition: occwave.h:303
double biggest_mogradA
Definition: occwave.h:284
SharedMatrix GvvB
Definition: occwave.h:558
void omp2_mp2_energy()
Definition: occ/cc_energy.cc:81
void idp2()
Definition: idp2.cc:36
double Emp2AA
Definition: occwave.h:243
SharedMatrix GooB
Definition: occwave.h:556
double Emp2
Definition: occwave.h:240
SharedMatrix G1tildeA
Definition: occwave.h:546
size_t * cost_vv_
Definition: occwave.h:454
void t2_2nd_sc()
Definition: occ/t2_2nd_sc.cc:38
void gfock_ea()
Definition: gfock_ea.cc:41
int * oo_pairpiAB
Definition: occwave.h:444
void tpdm_oooo()
Definition: corr_tpdm.cc:203
SharedMatrix GFock
Definition: occwave.h:522
double Escsmp2vdw
Definition: occwave.h:263
double Escsmp2vdwAA
Definition: occwave.h:265
double ss_scale
Definition: occwave.h:300
void ocepa_tpdm_vvvv()
Definition: corr_tpdm.cc:446
int * frzvpi
Definition: occwave.h:413
Array1d * sigma_pcgA
Definition: occwave.h:478
int exp_tol_Eod
Definition: occwave.h:188
SharedMatrix ZmatB
Definition: occwave.h:560
void v_int()
Definition: v_int.cc:37
int * sosym
Definition: occwave.h:420
SharedMatrix WorbB
Definition: occwave.h:550
SharedMatrix HG1B
Definition: occwave.h:538
double sos_scale
Definition: occwave.h:301
double Escsmp2AA
Definition: occwave.h:252
double EcepaBB
Definition: occwave.h:344
size_t cost_iabc_
Definition: occwave.h:230
int exp_tol_grad
Definition: occwave.h:190
double tol_Eod
Definition: occwave.h:272
int nvoB
Definition: occwave.h:172
int nidpA
Definition: occwave.h:207
double step_max
Definition: occwave.h:281
double Escsmp2AB
Definition: occwave.h:253
int nfrzv
Definition: occwave.h:181
void ocepa_manager()
Definition: occ/manager.cc:916
double Esospimp2AB
Definition: occwave.h:267
int * occpi
Definition: occwave.h:405
Array1d * kappa_barB
Definition: occwave.h:469
int * vir_offB
Definition: occwave.h:436
std::string reference_
Definition: occwave.h:365
int * pitzer2symblk
Definition: occwave.h:423
int pcg_conver
Definition: occwave.h:214
double Emp2L
Definition: occwave.h:245
int charge
Definition: occwave.h:202
size_t memory_mb_
Definition: occwave.h:229
double Esospimp2
Definition: occwave.h:268
double sc_ls
Definition: occwave.h:296
void nbo()
Definition: occwave.cc:485
void omp2_t2_1st_sc()
Definition: omp2_t2_1st.cc:39
int cc_maxiter
Definition: occwave.h:186
double EscscepaAB
Definition: occwave.h:350
double Emp2L_old
Definition: occwave.h:246
double rms_t2AB
Definition: occwave.h:292
SharedMatrix GFockA
Definition: occwave.h:523
double EcorrL
Definition: occwave.h:248
SharedMatrix WorbA
Definition: occwave.h:549
std::string orb_opt_
Definition: occwave.h:396
int mo_maxiter
Definition: occwave.h:187
std::string semicanonic
Definition: occwave.h:373
double rms_t1A
Definition: occwave.h:314
void omp2_ip_poles()
Definition: omp2_ip_poles.cc:61
double * evalsA
Definition: occwave.h:456
int * frzcpi
Definition: occwave.h:412
void kappa_orb_resp()
Definition: occ/kappa_orb_resp.cc:40
void ekt_ip()
Definition: ekt_ip.cc:42
SharedMatrix t1newB
Definition: occwave.h:564
void idp()
Definition: occ/idp.cc:36
double Escsmp3AB
Definition: occwave.h:331
void t1_1st_sc()
Definition: t1_1st.cc:39
Array3i * oo_pairidxAA
Definition: occwave.h:503
int npop
Definition: occwave.h:182
Array1d * p_pcg_newA
Definition: occwave.h:486
int ntri_so
Definition: occwave.h:185
Array2d * Aorb
Definition: occwave.h:501
int orbs_already_opt
Definition: occwave.h:222
int * idprowA
Definition: occwave.h:437
void denominators_rmp2()
Definition: trans_ints_rmp2.cc:100
Array1d * dr_pcgB
Definition: occwave.h:489
SharedMatrix FsoA
Definition: occwave.h:518
void ocepa_mp2_energy()
Definition: occ/cc_energy.cc:468
double s2_ref
Definition: occwave.h:319
int * sopi
Definition: occwave.h:404
std::string orth_type
Definition: occwave.h:371
int * soccpi
Definition: occwave.h:409
int nirreps
Definition: occwave.h:178
int dimtei
Definition: occwave.h:183
Enter brief description of file here.
double EsoscepaAB
Definition: occwave.h:352
int print_
Definition: occwave.h:203
int nooA
Definition: occwave.h:169
int * aoccpiA
Definition: occwave.h:415
int * PitzerOffset
Definition: occwave.h:422
Array1d * wog_intA
Definition: occwave.h:463
void kappa_orb_resp_iter()
Definition: kappa_orb_resp_iter.cc:40
SharedMatrix FockA
Definition: occwave.h:520
double Escsnmp2BB
Definition: occwave.h:257
int nacooB
Definition: occwave.h:174
std::string oeprop_
Definition: occwave.h:399
int incore_iabc_
Definition: occwave.h:220
void omp2_t2_1st_general()
Definition: omp2_t2_1st.cc:167
void ref_energy()
Definition: occ/cc_energy.cc:42
SharedMatrix g1symmB
Definition: occwave.h:544
OCCWave(std::shared_ptr< Wavefunction > reference_wavefunction, Options &options)
Definition: occwave.cc:49
void effective_gfock()
Definition: coord_grad.cc:1132
std::string lineq
Definition: occwave.h:370
std::string twopdm_abcd_type
Definition: occwave.h:386
int * occpiA
Definition: occwave.h:407
double s2_lag
Definition: occwave.h:318
void effective_pdms()
Definition: coord_grad.cc:888
void tpdm_ref()
Definition: tpdm_ref_corr_opdm.cc:42
double Escsncepa
Definition: occwave.h:354
std::string occ_orb_energy
Definition: occwave.h:376
double rms_l2
Definition: occwave.h:294
Array1d * r_pcg_newA
Definition: occwave.h:482
std::string sos_type_
Definition: occwave.h:382
void denominators_rhf()
Definition: trans_ints_rhf.cc:193
int * occ_offA
Definition: occwave.h:433
std::string comput_s2_
Definition: occwave.h:400
Array1d * zvectorA
Definition: occwave.h:490
double biggest_mogradB
Definition: occwave.h:285
std::string dertype
Definition: occwave.h:367
Array1d * kappaB
Definition: occwave.h:466
void fock_beta()
Definition: fock_beta.cc:38
SharedMatrix g1symmA
Definition: occwave.h:543
void trans_ints_rhf()
Definition: trans_ints_rhf.cc:43
size_t * cost_ov_
Definition: occwave.h:453
void gfock_diag()
Definition: gfock_diag.cc:38
int * oo_pairpiBB
Definition: occwave.h:445
int ntri
Definition: occwave.h:184
std::string natorb
Definition: occwave.h:372
SharedMatrix GooA
Definition: occwave.h:555
double lambda_damping
Definition: occwave.h:311
SharedMatrix UorbB
Definition: occwave.h:529
std::string do_scs
Definition: occwave.h:377
int time4grad
Definition: occwave.h:217
void ccl_energy()
Definition: occ/ccl_energy.cc:38
void cepa_manager()
Definition: occ/manager.cc:1085
size_t memory
Definition: occwave.h:228
int ep_conver
Definition: occwave.h:224
double Esosmp2AB
Definition: occwave.h:254
void title()
Definition: occwave.cc:382
SharedMatrix HmoB
Definition: occwave.h:517
void omp2_tpdm_oovv()
Definition: corr_tpdm.cc:39
SharedMatrix FockB
Definition: occwave.h:521
double ** C_pitzerB
Definition: occwave.h:507
Array3i * vv_pairidxAA
Definition: occwave.h:504
void update_mo()
Definition: occ/update_mo.cc:38
std::string read_mo_coeff
Definition: occwave.h:380
double lshift_parameter
Definition: occwave.h:297
std::string relaxed_
Definition: occwave.h:397
std::string jobtype
Definition: occwave.h:366
SharedMatrix Tso
Definition: occwave.h:513
double Esoscepa
Definition: occwave.h:353
double Emp2AB
Definition: occwave.h:244
double Esospimp3
Definition: occwave.h:338
void omp2_5_manager()
Definition: occ/manager.cc:1205
double rms_wogA
Definition: occwave.h:279
double Escsmicepa
Definition: occwave.h:355
Array2d * vecsA
Definition: occwave.h:494
Array1d * p_pcg_newB
Definition: occwave.h:487
void oeprop()
Definition: coord_grad.cc:1903
void tei_sort_iabc()
Definition: tei_sort_iabc.cc:39
double cepa_os_scale_
Definition: occwave.h:358
double Escsmimp3
Definition: occwave.h:336
SharedMatrix GFockB
Definition: occwave.h:524
int * pitzer2symirrep
Definition: occwave.h:424
SharedWavefunction occwave(SharedWavefunction, Options &)
Definition: occ/main.cc:35
double EcepaAA
Definition: occwave.h:343
double mograd_max
Definition: occwave.h:282
Array1d * zvector
Definition: occwave.h:492
SharedMatrix G1tilde
Definition: occwave.h:545
std::string scs_type_
Definition: occwave.h:381
SharedMatrix HG1
Definition: occwave.h:536
double Emp3AA
Definition: occwave.h:325
double rms_kappaB
Definition: occwave.h:277
SharedMatrix KsqrA
Definition: occwave.h:534
std::string ea_poles
Definition: occwave.h:391
Array1d * z_pcg_newB
Definition: occwave.h:485
int * idprowB
Definition: occwave.h:438
void mp3_energy()
Definition: occ/cc_energy.cc:388
double Escsmimp2BB
Definition: occwave.h:260
int exp_tol_t2
Definition: occwave.h:189
void t2_amps()
Definition: t2_amps.cc:40
SharedMatrix Cb_ref
Definition: occwave.h:512
std::string ekt_ea_
Definition: occwave.h:395
int nvoA
Definition: occwave.h:171
int * idpcolA
Definition: occwave.h:439
Array2d * AorbBB
Definition: occwave.h:499
SharedMatrix KsqrB
Definition: occwave.h:535
int * ov_pairpiAB
Definition: occwave.h:447
SharedMatrix Hso
Definition: occwave.h:515
Definition: occwave.h:45
Array1d * kappa_newA
Definition: occwave.h:470
std::string ekt_ip_
Definition: occwave.h:394
double ** C_pitzerA
Definition: occwave.h:506
double Esosmp3AB
Definition: occwave.h:333
double Esosmp2
Definition: occwave.h:255
double Escf
Definition: occwave.h:238
void trans_ints_ump2()
Definition: trans_ints_ump2.cc:40
SharedMatrix Ftilde
Definition: occwave.h:525
SharedMatrix gamma1corrA
Definition: occwave.h:540
void t2_2nd_general()
Definition: t2_2nd_general.cc:40
void omp3_t2_1st_general()
Definition: omp3_t2_1st_general.cc:39
double biggest_kappaB
Definition: occwave.h:288
int idp_returnB
Definition: occwave.h:198
int cachelev
Definition: occwave.h:204
SharedMatrix Worb
Definition: occwave.h:548
std::string ep_ea_poles
Definition: occwave.h:393
void mem_release()
Definition: occwave.cc:574
double Escsmp3AA
Definition: occwave.h:330
double Esospicepa
Definition: occwave.h:357
SharedMatrix Ca_ref
Definition: occwave.h:511
std::string sym_gfm_
Definition: occwave.h:398
double EscscepaAA
Definition: occwave.h:349
double DE
Definition: occwave.h:271
std::string ep_ip_poles
Definition: occwave.h:392
int exp_cutoff
Definition: occwave.h:193
double EcepaL
Definition: occwave.h:346
int * vv_pairpiAA
Definition: occwave.h:449
double EcepaAB
Definition: occwave.h:345
SharedMatrix t1newA
Definition: occwave.h:563
std::string wfn
Definition: occwave.h:363
SharedMatrix UorbrotA
Definition: occwave.h:530
int * mosym_c1
Definition: occwave.h:421
virtual double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: occwave.cc:407
void gfock()
Definition: gfock.cc:39
int * mosym
Definition: occwave.h:419
int num_vecs
Definition: occwave.h:199
void occ_iterations()
Definition: occ/occ_iterations.cc:40
int itr_diis
Definition: occwave.h:216
void omp3_manager()
Definition: occ/manager.cc:440
void omp2_response_pdms()
Definition: omp2_response_pdms.cc:39
double rms_t1B
Definition: occwave.h:315
int * pitzer2qtB
Definition: occwave.h:432
int * virtpiA
Definition: occwave.h:410
double Emp3AB
Definition: occwave.h:326
int itr_ep
Definition: occwave.h:225
int * occ2symblkB
Definition: occwave.h:426
Array1d * p_pcgA
Definition: occwave.h:476
int multp
Definition: occwave.h:201
void ep2_ip()
Definition: ep2_ip.cc:46
void tpdm_corr_opdm()
Definition: tpdm_ref_corr_opdm.cc:152
int * avirtpiB
Definition: occwave.h:418
Definition: liboptions.h:355
int * pitzer2qtA
Definition: occwave.h:431
void trans_ints_rmp2()
Definition: trans_ints_rmp2.cc:40
SharedMatrix Vso
Definition: occwave.h:514
SharedMatrix KorbA
Definition: occwave.h:532
double b_pcgB
Definition: occwave.h:306
double Emp3L
Definition: occwave.h:327
Array1d * Minv_pcgB
Definition: occwave.h:481
int * aoccpiB
Definition: occwave.h:416
double rms_kappa
Definition: occwave.h:275
double Escsmp2
Definition: occwave.h:250
double Escsnmp2AA
Definition: occwave.h:258
double Escsmp2vdwAB
Definition: occwave.h:266
int nao
Definition: occwave.h:167
double Escsmp3BB
Definition: occwave.h:329
SharedMatrix GvvA
Definition: occwave.h:557
double tol_pcg
Definition: occwave.h:310
SharedMatrix FtildeB
Definition: occwave.h:527
Array1d * r_pcgB
Definition: occwave.h:473
int nso
Definition: occwave.h:168
double tol_grad
Definition: occwave.h:273
void omp3_ip_poles()
Definition: omp3_ip_poles.cc:62
std::string orb_resp_solver_
Definition: occwave.h:389
double Ecorr
Definition: occwave.h:247
void orb_resp_pcg_rhf()
Definition: kappa_orb_resp_iter.cc:656
double biggest_kappa
Definition: occwave.h:286
double Escsmp2vdwBB
Definition: occwave.h:264
DIISManager * t2DiisManager
Definition: occwave.h:163
int * qt2pitzerA
Definition: occwave.h:429
Array2d * vecsB
Definition: occwave.h:495
double Ecepa_old
Definition: occwave.h:342
std::string level_shift
Definition: occwave.h:369
std::string hess_type
Definition: occwave.h:375
double EscscepaBB
Definition: occwave.h:348
void coord_grad()
Definition: coord_grad.cc:39
int * idpirrB
Definition: occwave.h:442
Definition: occ/arrays.h:269
int orbs_already_sc
Definition: occwave.h:223
void mp3_manager()
Definition: occ/manager.cc:735
double biggest_mograd
Definition: occwave.h:283
double rms_t2BB
Definition: occwave.h:293
int * avirtpiA
Definition: occwave.h:417
int nfrzc
Definition: occwave.h:180
int * vv_pairpiAB
Definition: occwave.h:450
SharedMatrix FCB
Definition: occwave.h:554
SharedMatrix gamma1corrB
Definition: occwave.h:541
SharedMatrix FtildeA
Definition: occwave.h:526
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
double rms_wogB
Definition: occwave.h:280
int * virt2symblkA
Definition: occwave.h:427
Array2d * AorbAB
Definition: occwave.h:500
double Escsmimp2
Definition: occwave.h:259
void cepa_iterations()
Definition: cepa_iterations.cc:41
std::string write_mo_coeff
Definition: occwave.h:379
int nacvoA
Definition: occwave.h:176
Array1d * dr_pcgA
Definition: occwave.h:488
Array1d * kappa_newB
Definition: occwave.h:471
void common_init()
Definition: occwave.cc:61
double rms_pcg
Definition: occwave.h:309
double Etotal
Definition: occwave.h:236
double Enuc
Definition: occwave.h:234
std::shared_ptr< Wavefunction > reference_wavefunction() const
Returns the reference wavefunction.
Definition: wavefunction.cc:465
int nacso
Definition: occwave.h:175
double biggest_kappaA
Definition: occwave.h:287
Simple wavefunction base class.
Definition: wavefunction.h:84
void denominators_ump2()
Definition: trans_ints_ump2.cc:189
int itr_occ
Definition: occwave.h:194
double * evalsB
Definition: occwave.h:457
void mograd()
Definition: occ/mograd.cc:39
double Ecc_rdm
Definition: occwave.h:249
double Escsmimp2AA
Definition: occwave.h:261
Array2d * errvecsB
Definition: occwave.h:497
void tpdm_oovv()
Definition: corr_tpdm.cc:104
double tol_t2
Definition: occwave.h:289
double rms_t2
Definition: occwave.h:290
SharedMatrix ZmatA
Definition: occwave.h:559
void kappa_msd()
Definition: kappa_msd.cc:37
double Escscepavdw
Definition: occwave.h:356
Array1d * kappa
Definition: occwave.h:467
int nshell
Definition: occwave.h:179
int * virtpiB
Definition: occwave.h:411
double s2_proj
Definition: occwave.h:317
int * occ2symblkA
Definition: occwave.h:425
double mu_ls
Definition: occwave.h:295
double Eopdm
Definition: occwave.h:269
Array1d * z_pcg_newA
Definition: occwave.h:484
double rms_pcgA
Definition: occwave.h:307
int nidp
Definition: occwave.h:205
void omp3_g_int()
Definition: omp3_g_int.cc:38
double Escscepa
Definition: occwave.h:351
std::string reference
Definition: occwave.h:364
virtual ~OCCWave()
Definition: occwave.cc:56
double Emp3L_old
Definition: occwave.h:328
double EcepaL_old
Definition: occwave.h:347
void mp2_manager()
Definition: occ/manager.cc:279
int * doccpi
Definition: occwave.h:406
int idp_returnA
Definition: occwave.h:197
SharedMatrix FCA
Definition: occwave.h:553
void w_int()
Definition: w_int.cc:39
Array1d * r_pcgA
Definition: occwave.h:472
std::string basis
Definition: occwave.h:368
std::string do_sos
Definition: occwave.h:378
double * evals_c1B
Definition: occwave.h:459
SharedMatrix t1A
Definition: occwave.h:561
void dump_ints()
Definition: coord_grad.cc:80
std::string ip_poles
Definition: occwave.h:390
double cepa_sos_scale_
Definition: occwave.h:360
int cc_mindiis_
Definition: occwave.h:219
int * idpirrA
Definition: occwave.h:441
SharedMatrix HmoA
Definition: occwave.h:516
void denominators_uhf()
Definition: trans_ints_uhf.cc:776
Definition: occ/arrays.h:48
double Etpdm
Definition: occwave.h:270
Array1d * sigma_pcgB
Definition: occwave.h:479
int mo_optimized
Definition: occwave.h:210
void omp3_mp2_energy()
Definition: occ/cc_energy.cc:243
void cepa_energy()
Definition: occ/cc_energy.cc:608
SharedMatrix HG1A
Definition: occwave.h:537
void w_1st_order()
Definition: w_1st_order.cc:39
int nmo
Definition: occwave.h:166
double Emp2BB
Definition: occwave.h:242
double Escsmp3
Definition: occwave.h:332
class IntegralTransform * ints
Definition: occwave.h:162
double rms_wog
Definition: occwave.h:278
Definition: occ/arrays.h:107
Definition: integraltransform.h:58
int idp_idx
Definition: occwave.h:212
void omp3_tpdm_vvvv()
Definition: corr_tpdm.cc:274
Array1d * z_pcgA
Definition: occwave.h:474
void ocepa_g_int()
Definition: ocepa_g_int.cc:38
void t1_1st_gen()
Definition: t1_1st.cc:72
void tpdm_vovo()
Definition: corr_tpdm.cc:686
SharedMatrix gamma1corr
Definition: occwave.h:539
double b_pcgA
Definition: occwave.h:305
std::string pcg_beta_type_
Definition: occwave.h:383
SharedMatrix UorbrotB
Definition: occwave.h:531
std::string compute_ccl
Definition: occwave.h:388
void ocepa_t2_1st_sc()
Definition: ocepa_t2_1st_sc.cc:39
double rms_t1
Definition: occwave.h:313
void v_2nd_order()
Definition: v_2nd_order.cc:37
SharedMatrix FsoB
Definition: occwave.h:519
double s2_resp
Definition: occwave.h:316
Array1d * wogA
Definition: occwave.h:461
Array1d * z_pcgB
Definition: occwave.h:475
void trans_ints_uhf()
Definition: trans_ints_uhf.cc:41
Array1d * wogB
Definition: occwave.h:462
int * vir_offA
Definition: occwave.h:435
int * ov_pairpiBB
Definition: occwave.h:448
int * virt2symblkB
Definition: occwave.h:428
int incore_abcd_
Definition: occwave.h:221
std::string opt_method
Definition: occwave.h:374
double Escsnmp3
Definition: occwave.h:335
size_t cost_abcd_
Definition: occwave.h:231
Array1d * wog_intB
Definition: occwave.h:464
int conver
Definition: occwave.h:209
void omp2_g_int()
Definition: omp2_response_pdms.cc:218
SharedMatrix UorbA
Definition: occwave.h:528
double Ecepa
Definition: occwave.h:341
double idp_cutoff
Definition: occwave.h:274
The DIISManager class handles DIIS extrapolations.
Definition: diismanager.h:45
double Eelec
Definition: occwave.h:237
double a_pcgB
Definition: occwave.h:304
int do_diis_
Definition: occwave.h:215
SharedMatrix HCB
Definition: occwave.h:552
int nidp_tot
Definition: occwave.h:206
double cepa_ss_scale_
Definition: occwave.h:359
SharedMatrix Ca_new
Definition: occwave.h:509
double sos_scale2
Definition: occwave.h:302
double rms_kappaA
Definition: occwave.h:276
int * mopi
Definition: occwave.h:403
void semi_canonic()
Definition: occ/semi_canonic.cc:39
Array1d * zvectorB
Definition: occwave.h:491
int nooB
Definition: occwave.h:170
SharedMatrix G1tildeB
Definition: occwave.h:547
int itr_pcg
Definition: occwave.h:211
double * evals_c1A
Definition: occwave.h:458
int nacvoB
Definition: occwave.h:177
double Emp3
Definition: occwave.h:323
SharedMatrix KorbB
Definition: occwave.h:533
void ekt_ea()
Definition: ekt_ea.cc:42
void orb_resp_pcg_uhf()
Definition: kappa_orb_resp_iter.cc:839
int cc_maxdiis_
Definition: occwave.h:218
void z_vector()
Definition: occ/z_vector.cc:40
double rms_pcgB
Definition: occwave.h:308
double Escsmp2BB
Definition: occwave.h:251
double Escsmp3vdw
Definition: occwave.h:337
void tpdm_ovvo()
Definition: corr_tpdm.cc:715
void omp2_manager()
Definition: occ/manager.cc:44
double Esosmp3
Definition: occwave.h:334