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