Psi4
libdpd/dpd.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 
33 #ifndef _psi_src_lib_libdpd_dpd_h
34 #define _psi_src_lib_libdpd_dpd_h
35 
36 #include <cstdio>
37 #include <string>
38 #include "psi4/psifiles.h"
39 #include "psi4/libpsio/config.h"
40  #include "psi4/pragma.h"
41  PRAGMA_WARNING_PUSH
42  PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS
43  #include <memory>
45 #include <vector>
46 #include "psi4/psi4-dec.h"
47 
48 // Testing -TDC
49 #include "dpdmospace.h"
50 
51 namespace psi {
52 
53 #define T3_TIMER_ON (0)
54 
55 #define DPD_BIGNUM 2147483647 /* the four-byte signed int limit */
56 /* #define ALL_BUF4_SORT_OOC */
57 
58 struct dpdparams4{
59  int nirreps; /* No. of irreps */
60  int pqnum; /* Pair number for the row indices */
61  int rsnum; /* Pair number for the column indices */
62  int *rowtot; /* Row dimension for each irrep */
63  int *coltot; /* Column dimension for each irrep */
64  int **rowidx; /* Row index lookup array */
65  int **colidx; /* Column index lookup array */
66  int ***roworb; /* Row index -> orbital index lookup array */
67  int ***colorb; /* Column index -> orbital index lookup array */
68  int *ppi; /* Number of p indices per irrep */
69  int *qpi; /* Number of q indices per irrep */
70  int *rpi; /* Number of r indices per irrep */
71  int *spi; /* Number of s indices per irrep */
72  int *poff; /* Orbital offset for p */
73  int *qoff; /* Orbital offset for q */
74  int *roff; /* Orbital offset for r */
75  int *soff; /* Orbital offset for s */
76  int *psym; /* Orbital symmetry for index p */
77  int *qsym; /* Orbital symmetry for index q */
78  int *rsym; /* Orbital symmetry for index r */
79  int *ssym; /* Orbital symmetry for index s */
80  int perm_pq; /* Can p and q be permuted? */
81  int perm_rs; /* Can r and s be permuted? */
82  int peq; /* Can p and q be equal? */
83  int res; /* Can r and s be equal? */
84  int **start13; /* returns the starting row of irrep matrix h for orbital index p */
85 };
86 
87 struct dpdfile4 {
88  int dpdnum; /* dpd structure reference */
90  int filenum;
91  int my_irrep; /* Total irrep of this quantity */
92  psio_address *lfiles; /* File address for each submatrix by ROW irrep */
94  int incore;
95  double ***matrix;
96 };
97 
98 struct dpdshift4 {
100  int **rowtot;
101  int **coltot;
102  double ****matrix;
103 };
104 
105 struct dpdbuf4 {
106  int dpdnum; /* dpd structure reference */
107  int anti; /* Is this buffer antisymmetric? */
111  int **row_offset;
112  int **col_offset;
113  double ***matrix;
114 };
115 
116 struct dpdtrans4 {
117  double ***matrix;
120 };
121 
122 struct dpdparams2 {
123  int nirreps; /* No. of irreps */
124  int pnum;
125  int qnum;
126  int *rowtot; /* Row dimension for each submatrix */
127  int *coltot; /* Column dimension for each submatrix */
128  int *rowidx; /* Row index lookup array */
129  int *colidx; /* Column index lookup array */
130  int **roworb; /* Row index -> orbital index lookup array */
131  int **colorb; /* Column index -> orbital index lookup array */
132  int *ppi; /* Number of p indices per irrep */
133  int *qpi; /* Number of q indices per irrep */
134  int *poff; /* Orbital offset for p */
135  int *qoff; /* Orbital offset for q */
136  int *psym; /* Orbital symmetry for index p */
137  int *qsym; /* Orbital symmetry for index q */
138 };
139 
140 struct dpdfile2 {
141  int dpdnum; /* dpd structure reference */
143  int filenum;
144  int my_irrep;
147  int incore;
148  double ***matrix;
149 };
150 
151 /* DPD File4 Cache entries */
153  int dpdnum; /* dpd structure reference */
154  int filenum; /* libpsio unit number */
155  int irrep; /* overall symmetry */
156  int pqnum; /* dpd pq value */
157  int rsnum; /* dpd rs value */
158  char label[PSIO_KEYLEN]; /* libpsio TOC keyword */
159  double ***matrix; /* pointer to irrep blocks */
160  int size; /* size of entry in double words */
161  unsigned int access; /* access time */
162  unsigned int usage; /* number of accesses */
163  unsigned int priority; /* priority level */
164  int lock; /* auto-deletion allowed? */
165  int clean; /* has this file4 changed? */
166  dpd_file4_cache_entry *next; /* pointer to next cache entry */
167  dpd_file4_cache_entry *last; /* pointer to previous cache entry */
168 };
169 
170 /* DPD File2 Cache entries */
173  next(NULL),
174  last(NULL)
175  {
176  }
177  int dpdnum; /* dpd structure reference */
178  int filenum; /* libpsio unit number */
179  int irrep; /* overall symmetry */
180  int pnum; /* dpd p value */
181  int qnum; /* dpd q value */
182  char label[PSIO_KEYLEN]; /* libpsio TOC keyword */
183  double ***matrix; /* pointer to irrep blocks */
184  int size; /* size of entry in double words */
185  int clean; /* has this file2 changed? */
186  dpd_file2_cache_entry *next; /* pointer to next cache entry */
187  dpd_file2_cache_entry *last; /* pointer to previous cache entry */
188 };
189 
190 /* DPD global parameter set */
191 struct dpd_data {
192  int nirreps;
195  int *numorbs;
196  int **orboff;
197  int **pairtot;
198  int **orbspi;
199  int **orbsym;
200  int **orbidx2;
201  int ***pairidx;
202  int ***orbs2;
203  int ****pairorb;
206 };
207 
208 struct thread_data {
211  dpdbuf4 *SIjAb; int *occpi; int *occ_off; int *virtpi; int *vir_off;
212  double omega; dpdfile2 *fIJ; dpdfile2 *fAB; int Gi; int Gj; int Gk;
213  int first_ijk; int last_ijk;
215  int newtrips;
216 };
217 
218 struct dpd_gbl {
219  long int memory; /* Total memory requested by the user */
220  long int memused; /* Total memory used (cache + other) */
221  long int memcache; /* Total memory in cache (locked and unlocked) */
222  long int memlocked; /* Total memory locked in the cache */
223 
224  // The default C'tor will zero everything out properly
226  file2_cache(NULL),
227  file4_cache(NULL),
232  {}
237  unsigned int file4_cache_lru_del;
238  unsigned int file4_cache_low_del;
241  int **cachelist;
243 };
244 
245 /* Useful for the generalized 4-index sorting function */
250 
251 /* Useful for the 3-index sorting function dpd_3d_sort() */
252 enum pattern {abc, acb, cab, cba, bca, bac};
253 
254 class DPD{
255 public:
256 
257  // These used to live in the dpd_data struct
258  int nirreps;
261  int *numorbs;
262  int **orboff;
263  int **pairtot;
264  int **orbspi;
265  int **orbsym;
266  int **orbidx2;
267  int ***pairidx;
268  int ***orbs2;
269  int ****pairorb;
272 
273  std::vector<DPDMOSpace> moSpaces;
274 
275  DPD(int dpd_num, int nirreps, long int memory, int cachetype,
276  int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority,
277  int num_subspaces, std::vector<int*> &spaceArrays);
278  DPD(int dpd_num, int nirreps, long int memory, int cachetype,
279  int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority,
280  int num_subspaces, std::vector<DPDMOSpace> &moSpaces);
281  DPD();
282 
283  ~DPD();
284 
285  int init(int dpd_num, int nirreps, long int memory, int cachetype,
286  int *cachefiles, int **cachelist,
287  dpd_file4_cache_entry *priority, int num_subspaces, ...);
288  int init(int dpd_num, int nirreps, long int memory, int cachetype,
289  int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority,
290  int num_subspaces, std::vector<int*> &spaceArrays);
291 
292  void dpd_error(const char *caller, std::string OutFileRMR);
293 
294  double **dpd_block_matrix(size_t n, size_t m);
295  void free_dpd_block(double **array, size_t n, size_t m);
296 
297  int contract222(dpdfile2 *X, dpdfile2 *Y, dpdfile2 *Z, int target_X,
298  int target_Y, double alpha, double beta);
299  int contract442(dpdbuf4 *X, dpdbuf4 *Y, dpdfile2 *Z, int target_X,
300  int target_Y, double alpha, double beta);
301  int contract422(dpdbuf4 *X, dpdfile2 *Y, dpdfile2 *Z, int trans_Y,
302  int trans_Z, double alpha, double beta);
303  int contract244(dpdfile2 *X, dpdbuf4 *Y, dpdbuf4 *Z, int sum_X, int sum_Y,
304  int trans_Z, double alpha, double beta);
305  int contract424(dpdbuf4 *X, dpdfile2 *Y, dpdbuf4 *Z, int sum_X,
306  int sum_Y, int trans_Z, double alpha, double beta);
307  int contract444(dpdbuf4 *X, dpdbuf4 *Y, dpdbuf4 *Z,
308  int target_X, int target_Y, double alpha, double beta);
309  int contract444_df(dpdbuf4 *B, dpdbuf4 *tau_in, dpdbuf4 *tau_out, double alpha, double beta);
310 
311  /* Need to consolidate these routines into one general function */
312  int dot23(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z,
313  int transt, int transz, double alpha, double beta);
314  int dot24(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z,
315  int transt, int transz, double alpha, double beta);
316  int dot13(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z,
317  int transt, int transz, double alpha, double beta);
318  int dot14(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z,
319  int transt, int transz, double alpha, double beta);
320 
321  int trace42_13(dpdbuf4 *A, dpdfile2 *B, int transb, double alpha, double beta);
322 
323  int file2_init(dpdfile2 *File, int filenum, int irrep, int pnum,
324  int qnum, const char *label);
325  int file2_close(dpdfile2 *File);
326  int file2_mat_init(dpdfile2 *File);
327  int file2_mat_close(dpdfile2 *File);
328  int file2_mat_rd(dpdfile2 *File);
329  int file2_mat_wrt(dpdfile2 *File);
330  int file2_print(dpdfile2 *File, std::string OutFileRMR);
331  int file2_mat_print(dpdfile2 *File, std::string OutFileRMR);
332  int file2_copy(dpdfile2 *InFile, int outfilenum, const char *label);
333  int file2_dirprd(dpdfile2 *FileA, dpdfile2 *FileB);
334  double file2_dot(dpdfile2 *FileA, dpdfile2 *FileB);
335  int file2_scm(dpdfile2 *InFile, double alpha);
336  double file2_dot_self(dpdfile2 *BufX);
337  double file2_trace(dpdfile2 *InFile);
338  int file2_axpy(dpdfile2 *FileA, dpdfile2 *FileB,
339  double alpha, int transA);
340  int file2_axpbycz(dpdfile2 *FileA, dpdfile2 *FileB, dpdfile2 *FileC,
341  double a, double b, double c);
342 
343 
344  int file4_init(dpdfile4 *File, int filenum, int irrep, int pqnum,
345  int rsnum, const char *label);
346  int file4_init_nocache(dpdfile4 *File, int filenum, int irrep, int pqnum,
347  int rsnum, const char *label);
348  int file4_close(dpdfile4 *File);
349  int file4_mat_irrep_init(dpdfile4 *File, int irrep);
350  int file4_mat_irrep_close(dpdfile4 *File, int irrep);
351  int file4_mat_irrep_rd(dpdfile4 *File, int irrep);
352  int file4_mat_irrep_wrt(dpdfile4 *File, int irrep);
353  int file4_mat_irrep_row_init(dpdfile4 *File, int irrep);
354  int file4_mat_irrep_row_close(dpdfile4 *File, int irrep);
355  int file4_mat_irrep_row_rd(dpdfile4 *File, int irrep, int row);
356  int file4_mat_irrep_row_wrt(dpdfile4 *File, int irrep, int row);
357  int file4_mat_irrep_row_zero(dpdfile4 *File, int irrep, int row);
358  int file4_print(dpdfile4 *File, std::string OutFileRMR);
359  int file4_mat_irrep_rd_block(dpdfile4 *File, int irrep, int start_pq,
360  int num_pq);
361  int file4_mat_irrep_wrt_block(dpdfile4 *File, int irrep, int start_pq,
362  int num_pq);
363 
364  int buf4_init(dpdbuf4 *Buf, int inputfile, int irrep, int pqnum, int rsnum,
365  int file_pqnum, int file_rsnum, int anti, const char *label);
366  int buf4_init(dpdbuf4 *Buf, int inputfile, int irrep, std::string pq, std::string rs,
367  std::string file_pq, std::string file_rs, int anti, const char *label);
368  int buf4_init(dpdbuf4 *Buf, int inputfile, int irrep, std::string pq, std::string rs, int anti, const char *label);
369  int pairnum(std::string);
370  double buf4_trace(dpdbuf4 *Buf);
371  int buf4_close(dpdbuf4 *Buf);
372  int buf4_mat_irrep_init(dpdbuf4 *Buf, int irrep);
373  int buf4_mat_irrep_close(dpdbuf4 *Buf, int irrep);
374  int buf4_mat_irrep_rd(dpdbuf4 *Buf, int irrep);
375  int buf4_mat_irrep_wrt(dpdbuf4 *Buf, int irrep);
376  int buf4_print(dpdbuf4 *Buf, std::string OutFileRMR, int print_data);
377  int buf4_copy(dpdbuf4 *InBuf, int outfilenum, const char *label);
378  int buf4_sort(dpdbuf4 *InBuf, int outfilenum, enum indices index,
379  int pqnum, int rsnum, const char *label);
380  int buf4_sort(dpdbuf4 *InBuf, int outfilenum, enum indices index,
381  std::string pq, std::string rs, const char *label);
382  int buf4_sort_ooc(dpdbuf4 *InBuf, int outfilenum, enum indices index,
383  int pqnum, int rsnum, const char *label);
384  int buf4_sort_axpy(dpdbuf4 *InBuf, int outfilenum, enum indices index,
385  int pqnum, int rsnum, const char *label, double alpha);
386  int buf4_axpy(dpdbuf4 *BufX, dpdbuf4 *BufY, double alpha);
387  int buf4_axpbycz(dpdbuf4 *FileA, dpdbuf4 *FileB, dpdbuf4 *FileC,
388  double a, double b, double c);
389  int buf4_dirprd(dpdbuf4 *BufA, dpdbuf4 *BufB);
390  double buf4_dot(dpdbuf4 *BufA, dpdbuf4 *BufB);
391  double buf4_dot_self(dpdbuf4 *BufX);
392  int buf4_scm(dpdbuf4 *InBuf, double alpha);
393  int buf4_scmcopy(dpdbuf4 *InBuf, int outfilenum, const char *label,
394  double alpha);
395  int buf4_symm(dpdbuf4 *Buf);
396  int buf4_symm2(dpdbuf4 *Buf1, dpdbuf4 *Buf2);
397  int buf4_mat_irrep_shift13(dpdbuf4 *Buf, int irrep);
398  int buf4_mat_irrep_shift31(dpdbuf4 *Buf, int irrep);
399  int buf4_mat_irrep_row_init(dpdbuf4 *Buf, int irrep);
400  int buf4_mat_irrep_row_close(dpdbuf4 *Buf, int irrep);
401  int buf4_mat_irrep_row_zero(dpdbuf4 *Buf, int irrep, int row);
402  int buf4_mat_irrep_row_rd(dpdbuf4 *Buf, int irrep, int pq);
403  int buf4_mat_irrep_row_wrt(dpdbuf4 *Buf, int irrep, int pq);
404  int buf4_mat_irrep_init_block(dpdbuf4 *Buf, int irrep, int num_pq);
405  int buf4_mat_irrep_close_block(dpdbuf4 *Buf, int irrep, int num_pq);
406  int buf4_mat_irrep_rd_block(dpdbuf4 *Buf, int irrep, int start_pq,
407  int num_pq);
408  int buf4_mat_irrep_wrt_block(dpdbuf4 *Buf, int irrep, int start_pq,
409  int num_pq);
410  int buf4_dump(dpdbuf4 *DPDBuf, struct iwlbuf *IWLBuf,
411  int *prel, int *qrel, int *rrel, int *srel,
412  int bk_pack, int swap23);
413  int trans4_init(dpdtrans4 *Trans, dpdbuf4 *Buf);
414  int trans4_close(dpdtrans4 *Trans);
415  int trans4_mat_irrep_init(dpdtrans4 *Trans, int irrep);
416  int trans4_mat_irrep_close(dpdtrans4 *Trans, int irrep);
417  int trans4_mat_irrep_rd(dpdtrans4 *Trans, int irrep);
418  int trans4_mat_irrep_wrt(dpdtrans4 *Trans, int irrep);
419  int trans4_mat_irrep_shift13(dpdtrans4 *Trans, int irrep);
420  int trans4_mat_irrep_shift31(dpdtrans4 *Trans, int irrep);
421 
422  int mat4_irrep_print(double **matrix, dpdparams4 *Params,
423  int irrep, int my_irrep, std::string OutFileRMR);
424 
425  void file2_cache_init(void);
426  void file2_cache_close(void);
427  void file2_cache_print(std::string OutFileRMR);
428  dpd_file2_cache_entry* file2_cache_scan(int filenum, int irrep, int pnum, int qnum, const char *label, int dpdnum);
430  int file2_cache_add(dpdfile2 *File);
431  int file2_cache_del(dpdfile2 *File);
432  int file4_cache_del_low(void);
433  void file2_cache_dirty(dpdfile2 *File);
434 
435  void file4_cache_init(void);
436  void file4_cache_close(void);
437  void file4_cache_print(std::string OutFileRMR);
438  void file4_cache_print_screen(void);
440 
441  dpd_file4_cache_entry* file4_cache_scan(int filenum, int irrep, int pqnum, int rsnum, const char *label, int dpdnum);
443  int file4_cache_add(dpdfile4 *File, unsigned int priority);
444  int file4_cache_del(dpdfile4 *File);
446  int file4_cache_del_lru(void);
447  void file4_cache_dirty(dpdfile4 *File);
448  void file4_cache_lock(dpdfile4 *File);
449  void file4_cache_unlock(dpdfile4 *File);
450 
451  void sort_3d(double ***Win, double ***Wout, int nirreps, int h, int *rowtot, int **rowidx,
452  int ***roworb, int *asym, int *bsym, int *aoff, int *boff,
453  int *cpi, int *coff, int **rowidx_out, enum pattern index, int sum);
454 
455 
456  void T3_AAA(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk,
457  dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB,
458  int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega);
459 
460  void T3_AAB(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk,
461  dpdbuf4 *T2AA, dpdbuf4 *T2AB, dpdbuf4 *T2BA, dpdbuf4 *FAA, dpdbuf4 *FAB, dpdbuf4 *FBA,
462  dpdbuf4 *EAA, dpdbuf4 *EAB, dpdbuf4 *EBA, dpdfile2 *fIJ, dpdfile2 *fij,
463  dpdfile2 *fAB, dpdfile2 *fab, int *aoccpi, int *aocc_off, int *boccpi, int *bocc_off,
464  int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off, double omega);
465 
466  void T3_RHF(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk,
467  dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB,
468  int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega);
469 
470  void T3_RHF_ic(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk,
471  dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB,
472  int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega);
473 
474  void cc3_sigma_RHF(dpdbuf4 *CIjAb, dpdbuf4 *WAbEi, dpdbuf4 *WMbIj,
475  int do_singles, dpdbuf4 *Dints, dpdfile2 *SIA,
476  int do_doubles, dpdfile2 *FME, dpdbuf4 *WAmEf, dpdbuf4 *WMnIe,
477  dpdbuf4 *SIjAb, int *occpi, int *occ_off, int *virtpi, int *vir_off,
478  double omega,std::string OutFileRMR, int newtrips);
479 
480  void cc3_sigma_RHF_ic(dpdbuf4 *CIjAb, dpdbuf4 *WAbEi, dpdbuf4 *WMbIj,
481  int do_singles, dpdbuf4 *Dints, dpdfile2 *SIA,
482  int do_doubles, dpdfile2 *FME, dpdbuf4 *WAmEf, dpdbuf4 *WMnIe,
483  dpdbuf4 *SIjAb, int *occpi, int *occ_off, int *virtpi, int *vir_off,
484  double omega, std::string OutFileRMR, int nthreads, int newtrips);
485 
486  void cc3_sigma_UHF_AAA(dpdbuf4 *CMNEF, dpdbuf4 *WABEI, dpdbuf4 *WMBIJ,
487  int do_singles, dpdbuf4 *Dints_anti, dpdfile2 *SIA, int do_doubles,
488  dpdfile2 *FME, dpdbuf4 *WMAFE, dpdbuf4 *WMNIE, dpdbuf4 *SIJAB,
489  int *aoccpi, int *aocc_off, int *avirtpi, int *avir_off, double omega,
490  std::string OutFileRMR);
491 
492  void cc3_sigma_UHF_BBB(dpdbuf4 *Cmnef, dpdbuf4 *Wabei, dpdbuf4 *Wmbij,
493  int do_singles, dpdbuf4 *Dijab_anti, dpdfile2 *Sia, int do_doubles,
494  dpdfile2 *Fme, dpdbuf4 *Wmafe, dpdbuf4 *Wmnie, dpdbuf4 *Sijab,
495  int *boccpi, int *bocc_off, int *bvirtpi, int *bvir_off, double omega,
496  std::string OutFileRMR);
497 
498  void cc3_sigma_UHF_AAB(dpdbuf4 *C2AA, dpdbuf4 *C2AB, dpdbuf4 *C2BA,
499  dpdbuf4 *FAA, dpdbuf4 *FAB, dpdbuf4 *FBA,
500  dpdbuf4 *EAA, dpdbuf4 *EAB, dpdbuf4 *EBA,
501  int do_singles, dpdbuf4 *DAA, dpdbuf4 *DAB, dpdfile2 *SIA, dpdfile2 *Sia,
502  int do_doubles, dpdfile2 *FME, dpdfile2 *Fme,
503  dpdbuf4 *WMAFE, dpdbuf4 *WMaFe, dpdbuf4 *WmAfE,
504  dpdbuf4 *WMNIE, dpdbuf4 *WMnIe, dpdbuf4 *WmNiE,
505  dpdbuf4 *SIJAB, dpdbuf4 *SIjAb, int *aoccpi, int *aocc_off, int *boccpi,
506  int *bocc_off, int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off,
507  double omega, std::string OutFileRMR);
508 
509  void cc3_sigma_UHF_BBA(dpdbuf4 *C2BB, dpdbuf4 *C2AB, dpdbuf4 *C2BA,
510  dpdbuf4 *FBB, dpdbuf4 *FAB, dpdbuf4 *FBA,
511  dpdbuf4 *EBB, dpdbuf4 *EAB, dpdbuf4 *EBA,
512  int do_singles, dpdbuf4 *DBB, dpdbuf4 *DBA, dpdfile2 *SIA, dpdfile2 *Sia,
513  int do_doubles, dpdfile2 *FME, dpdfile2 *Fme,
514  dpdbuf4 *Wmafe, dpdbuf4 *WMaFe, dpdbuf4 *WmAfE,
515  dpdbuf4 *Wmnie, dpdbuf4 *WMnIe, dpdbuf4 *WmNiE,
516  dpdbuf4 *Sijab, dpdbuf4 *SIjAb, int *aoccpi, int *aocc_off, int *boccpi,
517  int *bocc_off, int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off,
518  double omega, std::string OutFileRMR);
519 }; // Dpd class
520 
521 
522 /*
523  * Static variables/functions to mimic the old C machinery
524  */
525 extern dpd_gbl dpd_main;
526 extern DPD* global_dpd_;
527 extern int dpd_default;
528 extern DPD* dpd_list[2];
529 extern int dpd_set_default(int dpd_num);
530 extern int dpd_init(int dpd_num, int nirreps, long int memory, int cachetype,
531  int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority,
532  int num_subspaces, std::vector<int*> &spaceArrays);
533 extern int dpd_close(int dpd_num);
534 extern long int dpd_memfree(void);
535 extern void dpd_memset(long int memory);
536 
537 
538 }// Namespace psi
539 
540 #endif /* _psi_src_lib_libdpd_dpd_h */
int **** pairorb
Definition: libdpd/dpd.h:269
int peq
Definition: libdpd/dpd.h:82
dpdparams4 ** params4
Definition: libdpd/dpd.h:271
int pqnum
Definition: libdpd/dpd.h:60
Definition: libdpd/dpd.h:247
int file4_close(dpdfile4 *File)
Definition: file4_close.cc:45
int dpd_close(int dpd_num)
Definition: libdpd/init.cc:79
int *** pairidx
Definition: libdpd/dpd.h:267
int newtrips
Definition: libdpd/dpd.h:215
dpd_file4_cache_entry * next
Definition: libdpd/dpd.h:166
Definition: libdpd/dpd.h:248
int file2_axpy(dpdfile2 *FileA, dpdfile2 *FileB, double alpha, int transA)
Definition: file2_axpy.cc:50
int file4_mat_irrep_rd(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_rd.cc:40
int contract422(dpdbuf4 *X, dpdfile2 *Y, dpdfile2 *Z, int trans_Y, int trans_Z, double alpha, double beta)
Definition: contract422.cc:57
long int memlocked
Definition: libdpd/dpd.h:222
int buf4_copy(dpdbuf4 *InBuf, int outfilenum, const char *label)
Definition: buf4_copy.cc:54
Definition: libdpd/dpd.h:248
int ** rowtot
Definition: libdpd/dpd.h:100
psio_address * lfiles
Definition: libdpd/dpd.h:145
Definition: libdpd/dpd.h:248
int dpdnum
Definition: libdpd/dpd.h:106
void file2_cache_print(std::string OutFileRMR)
Definition: file2_cache.cc:209
void dpd_memset(long int memory)
Definition: libdpd/init.cc:96
dpd_file2_cache_entry * next
Definition: libdpd/dpd.h:186
unsigned int priority
Definition: libdpd/dpd.h:163
Definition: libdpd/dpd.h:252
int file2_mat_rd(dpdfile2 *File)
Definition: file2_mat_rd.cc:38
int file4_init(dpdfile4 *File, int filenum, int irrep, int pqnum, int rsnum, const char *label)
Definition: file4_init.cc:55
void file4_cache_lock(dpdfile4 *File)
Definition: file4_cache.cc:548
int my_irrep
Definition: libdpd/dpd.h:144
dpd_file2_cache_entry * last
Definition: libdpd/dpd.h:187
int my_irrep
Definition: libdpd/dpd.h:91
Definition: libdpd/dpd.h:87
int buf4_mat_irrep_shift13(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_shift13.cc:41
double *** matrix
Definition: libdpd/dpd.h:148
int dpd_default
Definition: libdpd/init.cc:44
unsigned int file4_cache_low_del
Definition: libdpd/dpd.h:238
int size
Definition: libdpd/dpd.h:184
Definition: iwl.h:47
int file4_mat_irrep_wrt(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_wrt.cc:38
int shift_type
Definition: libdpd/dpd.h:99
void T3_RHF_ic(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk, dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB, int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega)
Definition: T3_RHF_ic.cc:100
double file2_trace(dpdfile2 *InFile)
Definition: file2_trace.cc:37
int last_ijk
Definition: libdpd/dpd.h:213
long int memused
Definition: libdpd/dpd.h:220
Definition: libdpd/dpd.h:246
int buf4_mat_irrep_wrt(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_wrt.cc:61
Definition: libdpd/dpd.h:249
int num_subspaces
Definition: libdpd/dpd.h:193
dpd_file4_cache_entry * file4_cache
Definition: libdpd/dpd.h:234
Definition: libdpd/dpd.h:249
int buf4_mat_irrep_wrt_block(dpdbuf4 *Buf, int irrep, int start_pq, int num_pq)
Definition: buf4_mat_irrep_wrt_block.cc:39
dpdbuf4 * CIjAb
Definition: libdpd/dpd.h:209
int filenum
Definition: libdpd/dpd.h:154
int dpdnum
Definition: libdpd/dpd.h:177
int * qpi
Definition: libdpd/dpd.h:69
void cc3_sigma_UHF_BBA(dpdbuf4 *C2BB, dpdbuf4 *C2AB, dpdbuf4 *C2BA, dpdbuf4 *FBB, dpdbuf4 *FAB, dpdbuf4 *FBA, dpdbuf4 *EBB, dpdbuf4 *EAB, dpdbuf4 *EBA, int do_singles, dpdbuf4 *DBB, dpdbuf4 *DBA, dpdfile2 *SIA, dpdfile2 *Sia, int do_doubles, dpdfile2 *FME, dpdfile2 *Fme, dpdbuf4 *Wmafe, dpdbuf4 *WMaFe, dpdbuf4 *WmAfE, dpdbuf4 *Wmnie, dpdbuf4 *WMnIe, dpdbuf4 *WmNiE, dpdbuf4 *Sijab, dpdbuf4 *SIjAb, int *aoccpi, int *aocc_off, int *boccpi, int *bocc_off, int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off, double omega, std::string OutFileRMR)
Definition: cc3_sigma_UHF.cc:1062
dpd_file4_cache_entry * file4_cache_scan(int filenum, int irrep, int pqnum, int rsnum, const char *label, int dpdnum)
Definition: file4_cache.cc:82
int file4_print(dpdfile4 *File, std::string OutFileRMR)
Definition: file4_print.cc:38
int file4_mat_irrep_close(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_close.cc:47
int file4_cache_del_low(void)
Definition: file4_cache.cc:497
int buf4_close(dpdbuf4 *Buf)
Definition: buf4_close.cc:46
int file4_mat_irrep_row_wrt(dpdfile4 *File, int irrep, int row)
Definition: file4_mat_irrep_row_wrt.cc:39
int file2_init(dpdfile2 *File, int filenum, int irrep, int pnum, int qnum, const char *label)
Definition: file2_init.cc:61
int ** pairtot
Definition: libdpd/dpd.h:263
int * poff
Definition: libdpd/dpd.h:72
int ** colorb
Definition: libdpd/dpd.h:131
int pairnum(std::string)
Definition: pairnum.cc:34
dpdbuf4 buf
Definition: libdpd/dpd.h:119
std::vector< DPDMOSpace > moSpaces
Definition: libdpd/dpd.h:273
int file4_mat_irrep_rd_block(dpdfile4 *File, int irrep, int start_pq, int num_pq)
Definition: file4_mat_irrep_rd_block.cc:39
double buf4_dot(dpdbuf4 *BufA, dpdbuf4 *BufB)
Definition: buf4_dot.cc:40
int incore
Definition: libdpd/dpd.h:147
int nirreps
Definition: libdpd/dpd.h:123
Definition: libdpd/dpd.h:246
void file4_cache_init(void)
Definition: file4_cache.cc:41
int dpd_init(int dpd_num, int nirreps, long int memory, int cachetype, int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority, int num_subspaces, std::vector< int * > &spaceArrays)
Definition: libdpd/init.cc:66
int ** rowidx
Definition: libdpd/dpd.h:64
int ** pairtot
Definition: libdpd/dpd.h:197
int mat4_irrep_print(double **matrix, dpdparams4 *Params, int irrep, int my_irrep, std::string OutFileRMR)
Definition: 4mat_irrep_print.cc:40
int buf4_mat_irrep_close_block(dpdbuf4 *Buf, int irrep, int num_pq)
Definition: buf4_mat_irrep_close_block.cc:51
dpdfile2 * fAB
Definition: libdpd/dpd.h:212
void rs(int nm, int n, double **array, double *e_vals, int matz, double **e_vecs, double toler)
int * rowidx
Definition: libdpd/dpd.h:128
DPD()
Definition: libdpd/init.cc:101
int irrep
Definition: libdpd/dpd.h:179
int irrep
Definition: libdpd/dpd.h:155
int * rsym
Definition: libdpd/dpd.h:78
double *** matrix
Definition: libdpd/dpd.h:95
Definition: libpsio/config.h:65
DPD * global_dpd_
Definition: libdpd/init.cc:43
int file2_scm(dpdfile2 *InFile, double alpha)
Definition: file2_scm.cc:40
int trace42_13(dpdbuf4 *A, dpdfile2 *B, int transb, double alpha, double beta)
Definition: trace42_13.cc:55
int perm_pq
Definition: libdpd/dpd.h:80
Definition: libdpd/dpd.h:116
dpd_gbl()
Definition: libdpd/dpd.h:225
int nirreps
Definition: libdpd/dpd.h:258
int * rowtot
Definition: libdpd/dpd.h:62
int clean
Definition: libdpd/dpd.h:165
int file2_mat_close(dpdfile2 *File)
Definition: file2_mat_close.cc:37
int * qoff
Definition: libdpd/dpd.h:73
int ** coltot
Definition: libdpd/dpd.h:101
long int dpd_memfree(void)
Definition: libdpd/init.cc:89
std::string outfile
Definition: libdpd/dpd.h:214
int file4_mat_irrep_row_init(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_row_init.cc:40
int * cachefiles
Definition: libdpd/dpd.h:240
int file2_cache_add(dpdfile2 *File)
Definition: file2_cache.cc:110
dpd_file4_cache_entry * file4_cache_last(void)
Definition: file4_cache.cc:122
int * virtpi
Definition: libdpd/dpd.h:211
int num_subspaces
Definition: libdpd/dpd.h:259
int * spi
Definition: libdpd/dpd.h:71
int buf4_sort_ooc(dpdbuf4 *InBuf, int outfilenum, enum indices index, int pqnum, int rsnum, const char *label)
Definition: buf4_sort_ooc.cc:52
int Gi
Definition: libdpd/dpd.h:212
int file4_cache_get_priority(dpdfile4 *File)
Definition: file4_cache.cc:451
int contract424(dpdbuf4 *X, dpdfile2 *Y, dpdbuf4 *Z, int sum_X, int sum_Y, int trans_Z, double alpha, double beta)
Definition: contract424.cc:60
double *** matrix
Definition: libdpd/dpd.h:117
int * qoff
Definition: libdpd/dpd.h:135
int buf4_sort(dpdbuf4 *InBuf, int outfilenum, enum indices index, int pqnum, int rsnum, const char *label)
Definition: buf4_sort.cc:113
int rsnum
Definition: libdpd/dpd.h:61
unsigned int file4_cache_most_recent
Definition: libdpd/dpd.h:235
int num_pairs
Definition: libdpd/dpd.h:194
int dpdnum
Definition: libdpd/dpd.h:88
int buf4_axpbycz(dpdbuf4 *FileA, dpdbuf4 *FileB, dpdbuf4 *FileC, double a, double b, double c)
Definition: buf4_axpbycz.cc:49
int buf4_print(dpdbuf4 *Buf, std::string OutFileRMR, int print_data)
Definition: buf4_print.cc:48
int contract222(dpdfile2 *X, dpdfile2 *Y, dpdfile2 *Z, int target_X, int target_Y, double alpha, double beta)
Definition: contract222.cc:41
dpd_file4_cache_entry * file4_cache_priority
Definition: libdpd/dpd.h:242
~DPD()
Definition: libdpd/close.cc:40
dpdbuf4 * WAbEi
Definition: libdpd/dpd.h:209
int file4_mat_irrep_row_rd(dpdfile4 *File, int irrep, int row)
Definition: file4_mat_irrep_row_rd.cc:40
void file4_cache_dirty(dpdfile4 *File)
Definition: file4_cache.cc:434
dpdfile2 SIA_local
Definition: libdpd/dpd.h:214
void cc3_sigma_UHF_AAA(dpdbuf4 *CMNEF, dpdbuf4 *WABEI, dpdbuf4 *WMBIJ, int do_singles, dpdbuf4 *Dints_anti, dpdfile2 *SIA, int do_doubles, dpdfile2 *FME, dpdbuf4 *WMAFE, dpdbuf4 *WMNIE, dpdbuf4 *SIJAB, int *aoccpi, int *aocc_off, int *avirtpi, int *avir_off, double omega, std::string OutFileRMR)
Definition: cc3_sigma_UHF.cc:53
void T3_AAB(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk, dpdbuf4 *T2AA, dpdbuf4 *T2AB, dpdbuf4 *T2BA, dpdbuf4 *FAA, dpdbuf4 *FAB, dpdbuf4 *FBA, dpdbuf4 *EAA, dpdbuf4 *EAB, dpdbuf4 *EBA, dpdfile2 *fIJ, dpdfile2 *fij, dpdfile2 *fAB, dpdfile2 *fab, int *aoccpi, int *aocc_off, int *boccpi, int *bocc_off, int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off, double omega)
Definition: T3_AAB.cc:99
int * occ_off
Definition: libdpd/dpd.h:211
dpdparams2 ** params2
Definition: libdpd/dpd.h:270
dpdparams2 * params
Definition: libdpd/dpd.h:146
void file2_cache_close(void)
Definition: file2_cache.cc:45
dpdparams4 * params
Definition: libdpd/dpd.h:108
void T3_AAA(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk, dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB, int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega)
Definition: T3_AAA.cc:99
int file4_mat_irrep_init(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_init.cc:47
Definition: libdpd/dpd.h:152
int * poff
Definition: libdpd/dpd.h:134
Definition: libdpd/dpd.h:171
int cachetype
Definition: libdpd/dpd.h:239
int file2_mat_wrt(dpdfile2 *File)
Definition: file2_mat_wrt.cc:38
int do_singles
Definition: libdpd/dpd.h:209
int * rpi
Definition: libdpd/dpd.h:70
int * soff
Definition: libdpd/dpd.h:75
unsigned int file4_cache_least_recent
Definition: libdpd/dpd.h:236
int * occpi
Definition: libdpd/dpd.h:211
int dpdnum
Definition: libdpd/dpd.h:141
int pnum
Definition: libdpd/dpd.h:124
Definition: libdpd/dpd.h:98
void free_dpd_block(double **array, size_t n, size_t m)
Definition: libdpd/block_matrix.cc:167
int first_ijk
Definition: libdpd/dpd.h:213
int lock
Definition: libdpd/dpd.h:164
void file2_cache_dirty(dpdfile2 *File)
Definition: file2_cache.cc:237
int file4_mat_irrep_wrt_block(dpdfile4 *File, int irrep, int start_pq, int num_pq)
Definition: file4_mat_irrep_wrt_block.cc:40
int * numorbs
Definition: libdpd/dpd.h:261
int ** colidx
Definition: libdpd/dpd.h:65
int * roff
Definition: libdpd/dpd.h:74
int contract444_df(dpdbuf4 *B, dpdbuf4 *tau_in, dpdbuf4 *tau_out, double alpha, double beta)
Definition: contract444_df.cc:58
int ** row_offset
Definition: libdpd/dpd.h:111
void cc3_sigma_RHF(dpdbuf4 *CIjAb, dpdbuf4 *WAbEi, dpdbuf4 *WMbIj, int do_singles, dpdbuf4 *Dints, dpdfile2 *SIA, int do_doubles, dpdfile2 *FME, dpdbuf4 *WAmEf, dpdbuf4 *WMnIe, dpdbuf4 *SIjAb, int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega, std::string OutFileRMR, int newtrips)
Definition: cc3_sigma_RHF.cc:57
int dot13(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z, int transt, int transz, double alpha, double beta)
Definition: dot13.cc:41
void T3_RHF(double ***W1, int nirreps, int I, int Gi, int J, int Gj, int K, int Gk, dpdbuf4 *T2, dpdbuf4 *F, dpdbuf4 *E, dpdfile2 *fIJ, dpdfile2 *fAB, int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega)
Definition: T3_RHF.cc:99
char label[PSIO_KEYLEN]
Definition: libdpd/dpd.h:182
int ** orbidx2
Definition: libdpd/dpd.h:266
int *** roworb
Definition: libdpd/dpd.h:66
int buf4_dump(dpdbuf4 *DPDBuf, struct iwlbuf *IWLBuf, int *prel, int *qrel, int *rrel, int *srel, int bk_pack, int swap23)
Definition: buf4_dump.cc:39
int anti
Definition: libdpd/dpd.h:107
#define PSIO_KEYLEN
Definition: libpsio/config.h:37
int Gj
Definition: libdpd/dpd.h:212
Definition: libdpd/dpd.h:122
int buf4_mat_irrep_shift31(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_shift31.cc:41
int trans4_close(dpdtrans4 *Trans)
Definition: trans4_close.cc:40
int dpdnum
Definition: libdpd/dpd.h:153
int init(int dpd_num, int nirreps, long int memory, int cachetype, int *cachefiles, int **cachelist, dpd_file4_cache_entry *priority, int num_subspaces,...)
Definition: libdpd/init.cc:151
PRAGMA_WARNING_PUSH PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS PRAGMA_WARNING_POP
Definition: integraliter.cc:43
int * psym
Definition: libdpd/dpd.h:76
int qnum
Definition: libdpd/dpd.h:181
int file2_print(dpdfile2 *File, std::string OutFileRMR)
Definition: file2_print.cc:45
double omega
Definition: libdpd/dpd.h:212
dpd_file4_cache_entry * last
Definition: libdpd/dpd.h:167
int res
Definition: libdpd/dpd.h:83
int ** roworb
Definition: libdpd/dpd.h:130
int buf4_mat_irrep_row_wrt(dpdbuf4 *Buf, int irrep, int pq)
Definition: buf4_mat_irrep_row_wrt.cc:39
int ** orbspi
Definition: libdpd/dpd.h:198
dpd_file2_cache_entry * dpd_file2_cache_last(void)
Definition: file2_cache.cc:96
dpdfile2 * fIJ
Definition: libdpd/dpd.h:212
int incore
Definition: libdpd/dpd.h:94
DPD * dpd_list[2]
Definition: libdpd/init.cc:45
int file2_mat_print(dpdfile2 *File, std::string OutFileRMR)
Definition: file2_mat_print.cc:39
int filenum
Definition: libdpd/dpd.h:143
dpdbuf4 * WMnIe
Definition: libdpd/dpd.h:210
dpdshift4 shift
Definition: libdpd/dpd.h:110
int file2_dirprd(dpdfile2 *FileA, dpdfile2 *FileB)
Definition: file2_dirprd.cc:47
int * colidx
Definition: libdpd/dpd.h:129
int file4_cache_add(dpdfile4 *File, unsigned int priority)
Definition: file4_cache.cc:136
int file4_mat_irrep_row_zero(dpdfile4 *File, int irrep, int row)
Definition: file4_mat_irrep_row_zero.cc:39
double ** dpd_block_matrix(size_t n, size_t m)
Definition: libdpd/block_matrix.cc:73
int buf4_mat_irrep_close(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_close.cc:50
int *** colorb
Definition: libdpd/dpd.h:67
int * psym
Definition: libdpd/dpd.h:136
int file4_cache_del(dpdfile4 *File)
Definition: file4_cache.cc:217
void cc3_sigma_UHF_AAB(dpdbuf4 *C2AA, dpdbuf4 *C2AB, dpdbuf4 *C2BA, dpdbuf4 *FAA, dpdbuf4 *FAB, dpdbuf4 *FBA, dpdbuf4 *EAA, dpdbuf4 *EAB, dpdbuf4 *EBA, int do_singles, dpdbuf4 *DAA, dpdbuf4 *DAB, dpdfile2 *SIA, dpdfile2 *Sia, int do_doubles, dpdfile2 *FME, dpdfile2 *Fme, dpdbuf4 *WMAFE, dpdbuf4 *WMaFe, dpdbuf4 *WmAfE, dpdbuf4 *WMNIE, dpdbuf4 *WMnIe, dpdbuf4 *WmNiE, dpdbuf4 *SIJAB, dpdbuf4 *SIjAb, int *aoccpi, int *aocc_off, int *boccpi, int *bocc_off, int *avirtpi, int *avir_off, int *bvirtpi, int *bvir_off, double omega, std::string OutFileRMR)
Definition: cc3_sigma_UHF.cc:523
double buf4_dot_self(dpdbuf4 *BufX)
Definition: buf4_dot_self.cc:45
Definition: libdpd/dpd.h:247
int buf4_mat_irrep_row_init(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_row_init.cc:40
double *** matrix
Definition: libdpd/dpd.h:159
Definition: libdpd/dpd.h:252
Definition: libdpd/dpd.h:191
int * ssym
Definition: libdpd/dpd.h:79
dpdparams4 ** params4
Definition: libdpd/dpd.h:205
dpdbuf4 * WMbIj
Definition: libdpd/dpd.h:209
int file4_cache_del_lru(void)
Definition: file4_cache.cc:383
int buf4_init(dpdbuf4 *Buf, int inputfile, int irrep, int pqnum, int rsnum, int file_pqnum, int file_rsnum, int anti, const char *label)
Definition: buf4_init.cc:66
dpd_file2_cache_entry * file2_cache
Definition: libdpd/dpd.h:233
int buf4_mat_irrep_row_rd(dpdbuf4 *Buf, int irrep, int pq)
Definition: buf4_mat_irrep_row_rd.cc:39
void file4_cache_close(void)
Definition: file4_cache.cc:50
int buf4_symm(dpdbuf4 *Buf)
Definition: buf4_symm.cc:49
void cc3_sigma_UHF_BBB(dpdbuf4 *Cmnef, dpdbuf4 *Wabei, dpdbuf4 *Wmbij, int do_singles, dpdbuf4 *Dijab_anti, dpdfile2 *Sia, int do_doubles, dpdfile2 *Fme, dpdbuf4 *Wmafe, dpdbuf4 *Wmnie, dpdbuf4 *Sijab, int *boccpi, int *bocc_off, int *bvirtpi, int *bvir_off, double omega, std::string OutFileRMR)
Definition: cc3_sigma_UHF.cc:287
unsigned int file4_cache_lru_del
Definition: libdpd/dpd.h:237
Definition: libdpd/dpd.h:248
int * coltot
Definition: libdpd/dpd.h:63
int pqnum
Definition: libdpd/dpd.h:156
Definition: libdpd/dpd.h:249
int ** orboff
Definition: libdpd/dpd.h:262
dpdbuf4 * SIjAb
Definition: libdpd/dpd.h:211
double buf4_trace(dpdbuf4 *Buf)
Definition: buf4_trace.cc:33
int filenum
Definition: libdpd/dpd.h:178
Definition: libdpd/dpd.h:140
int clean
Definition: libdpd/dpd.h:185
int do_doubles
Definition: libdpd/dpd.h:210
int contract444(dpdbuf4 *X, dpdbuf4 *Y, dpdbuf4 *Z, int target_X, int target_Y, double alpha, double beta)
Definition: contract444.cc:57
Definition: libdpd/dpd.h:248
double *** matrix
Definition: libdpd/dpd.h:183
unsigned int usage
Definition: libdpd/dpd.h:162
Definition: libdpd/dpd.h:247
Definition: libdpd/dpd.h:58
dpd_file2_cache_entry * file2_cache_scan(int filenum, int irrep, int pnum, int qnum, const char *label, int dpdnum)
Definition: file2_cache.cc:75
char label[PSIO_KEYLEN]
Definition: libdpd/dpd.h:158
int buf4_sort_axpy(dpdbuf4 *InBuf, int outfilenum, enum indices index, int pqnum, int rsnum, const char *label, double alpha)
Definition: buf4_sort_axpy.cc:92
int contract442(dpdbuf4 *X, dpdbuf4 *Y, dpdfile2 *Z, int target_X, int target_Y, double alpha, double beta)
Definition: contract442.cc:62
int buf4_mat_irrep_init_block(dpdbuf4 *Buf, int irrep, int num_pq)
Definition: buf4_mat_irrep_init_block.cc:50
int ** orbsym
Definition: libdpd/dpd.h:199
int num_pairs
Definition: libdpd/dpd.h:260
int *** orbs2
Definition: libdpd/dpd.h:202
long int memory
Definition: libdpd/dpd.h:219
int trans4_mat_irrep_wrt(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_wrt.cc:39
int buf4_mat_irrep_row_close(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_row_close.cc:39
int ** orboff
Definition: libdpd/dpd.h:196
int file4_init_nocache(dpdfile4 *File, int filenum, int irrep, int pqnum, int rsnum, const char *label)
Definition: file4_init_nocache.cc:57
int contract244(dpdfile2 *X, dpdbuf4 *Y, dpdbuf4 *Z, int sum_X, int sum_Y, int trans_Z, double alpha, double beta)
Definition: contract244.cc:64
int buf4_dirprd(dpdbuf4 *BufA, dpdbuf4 *BufB)
Definition: buf4_dirprd.cc:47
dpdfile2 * FME
Definition: libdpd/dpd.h:210
double **** matrix
Definition: libdpd/dpd.h:102
int ** col_offset
Definition: libdpd/dpd.h:112
Definition: libdpd/dpd.h:252
Definition: libdpd/dpd.h:254
dpd_file2_cache_entry()
Definition: libdpd/dpd.h:172
double *** matrix
Definition: libdpd/dpd.h:113
int * qpi
Definition: libdpd/dpd.h:133
int perm_rs
Definition: libdpd/dpd.h:81
void file2_cache_init(void)
Definition: file2_cache.cc:40
dpdbuf4 SIjAb_local
Definition: libdpd/dpd.h:214
long int memcache
Definition: libdpd/dpd.h:221
void dpd_error(const char *caller, std::string OutFileRMR)
Definition: libdpd/error.cc:40
int file2_mat_init(dpdfile2 *File)
Definition: file2_mat_init.cc:37
double file2_dot_self(dpdfile2 *BufX)
Definition: file2_dot_self.cc:42
int filenum
Definition: libdpd/dpd.h:90
dpdparams4 * params
Definition: libdpd/dpd.h:93
Definition: libdpd/dpd.h:247
int buf4_mat_irrep_init(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_init.cc:48
int * qsym
Definition: libdpd/dpd.h:137
Definition: libdpd/dpd.h:105
Definition: libdpd/dpd.h:247
int *** orbs2
Definition: libdpd/dpd.h:268
int trans4_mat_irrep_shift31(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_shift31.cc:41
int file2_copy(dpdfile2 *InFile, int outfilenum, const char *label)
Definition: file2_copy.cc:39
int ** start13
Definition: libdpd/dpd.h:84
psio_address * lfiles
Definition: libdpd/dpd.h:92
int * qsym
Definition: libdpd/dpd.h:77
dpdbuf4 * WmAEf
Definition: libdpd/dpd.h:210
pattern
Definition: libdpd/dpd.h:252
Definition: libdpd/dpd.h:249
dpdfile4 file
Definition: libdpd/dpd.h:109
int Gk
Definition: libdpd/dpd.h:212
void sort_3d(double ***Win, double ***Wout, int nirreps, int h, int *rowtot, int **rowidx, int ***roworb, int *asym, int *bsym, int *aoff, int *boff, int *cpi, int *coff, int **rowidx_out, enum pattern index, int sum)
Definition: 3d_sort.cc:80
int trans4_mat_irrep_close(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_close.cc:40
Definition: pointgrp.h:106
char label[PSIO_KEYLEN]
Definition: libdpd/dpd.h:142
int buf4_mat_irrep_rd(dpdbuf4 *Buf, int irrep)
Definition: buf4_mat_irrep_rd.cc:68
int buf4_mat_irrep_rd_block(dpdbuf4 *Buf, int irrep, int start_pq, int num_pq)
Definition: buf4_mat_irrep_rd_block.cc:40
dpdshift4 shift
Definition: libdpd/dpd.h:118
Definition: libdpd/dpd.h:208
int nirreps
Definition: libdpd/dpd.h:192
Definition: libdpd/dpd.h:246
unsigned int access
Definition: libdpd/dpd.h:161
void cc3_sigma_RHF_ic(dpdbuf4 *CIjAb, dpdbuf4 *WAbEi, dpdbuf4 *WMbIj, int do_singles, dpdbuf4 *Dints, dpdfile2 *SIA, int do_doubles, dpdfile2 *FME, dpdbuf4 *WAmEf, dpdbuf4 *WMnIe, dpdbuf4 *SIjAb, int *occpi, int *occ_off, int *virtpi, int *vir_off, double omega, std::string OutFileRMR, int nthreads, int newtrips)
Definition: cc3_sigma_RHF_ic.cc:68
int *** pairidx
Definition: libdpd/dpd.h:201
indices
Definition: libdpd/dpd.h:246
int buf4_symm2(dpdbuf4 *Buf1, dpdbuf4 *Buf2)
Definition: buf4_symm2.cc:50
int * coltot
Definition: libdpd/dpd.h:127
int dot24(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z, int transt, int transz, double alpha, double beta)
Definition: dot24.cc:41
Definition: PsiFileImpl.h:39
Definition: libdpd/dpd.h:249
int ** orbsym
Definition: libdpd/dpd.h:265
Definition: libdpd/dpd.h:246
int dot14(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z, int transt, int transz, double alpha, double beta)
Definition: dot14.cc:41
int dpd_set_default(int dpd_num)
Definition: libdpd/init.cc:59
int buf4_axpy(dpdbuf4 *BufX, dpdbuf4 *BufY, double alpha)
Definition: buf4_axpy.cc:50
int file2_cache_del(dpdfile2 *File)
Definition: file2_cache.cc:166
int trans4_mat_irrep_shift13(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_shift13.cc:43
Definition: libdpd/dpd.h:247
int file4_mat_irrep_row_close(dpdfile4 *File, int irrep)
Definition: file4_mat_irrep_row_close.cc:39
Definition: libdpd/dpd.h:248
int * ppi
Definition: libdpd/dpd.h:68
int buf4_scm(dpdbuf4 *InBuf, double alpha)
Definition: buf4_scm.cc:64
int ** orbidx2
Definition: libdpd/dpd.h:200
dpd_file4_cache_entry * file4_cache_find_lru(void)
Definition: file4_cache.cc:351
Definition: libdpd/dpd.h:246
Definition: libdpd/dpd.h:252
int * vir_off
Definition: libdpd/dpd.h:211
void file4_cache_unlock(dpdfile4 *File)
Definition: file4_cache.cc:568
Definition: libdpd/dpd.h:252
void file4_cache_print_screen(void)
Definition: file4_cache.cc:272
int trans4_init(dpdtrans4 *Trans, dpdbuf4 *Buf)
Definition: trans4_init.cc:40
int nirreps
Definition: libdpd/dpd.h:59
Definition: PsiFileImpl.h:40
dpdbuf4 * Dints
Definition: libdpd/dpd.h:209
int trans4_mat_irrep_init(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_init.cc:39
Definition: libdpd/dpd.h:218
int * numorbs
Definition: libdpd/dpd.h:195
dpd_gbl dpd_main
Definition: libdpd/init.cc:46
int ** orbspi
Definition: libdpd/dpd.h:264
int pnum
Definition: libdpd/dpd.h:180
dpdparams2 ** params2
Definition: libdpd/dpd.h:204
Definition: libdpd/dpd.h:249
int buf4_scmcopy(dpdbuf4 *InBuf, int outfilenum, const char *label, double alpha)
Definition: buf4_scmcopy.cc:55
int qnum
Definition: libdpd/dpd.h:125
int buf4_mat_irrep_row_zero(dpdbuf4 *Buf, int irrep, int row)
Definition: buf4_mat_irrep_row_zero.cc:39
Definition: libdpd/dpd.h:252
int dot23(dpdfile2 *T, dpdbuf4 *I, dpdfile2 *Z, int transt, int transz, double alpha, double beta)
Definition: dot23.cc:67
The parallel (pun intended) of OutFile, except it reads files in.
Definition: ParallelScanner.h:59
int thr_id
Definition: libdpd/dpd.h:214
char label[PSIO_KEYLEN]
Definition: libdpd/dpd.h:89
int size
Definition: libdpd/dpd.h:160
int ** cachelist
Definition: libdpd/dpd.h:241
Definition: libdpd/dpd.h:246
int trans4_mat_irrep_rd(dpdtrans4 *Trans, int irrep)
Definition: trans4_mat_irrep_rd.cc:39
int file2_close(dpdfile2 *File)
Definition: file2_close.cc:46
double file2_dot(dpdfile2 *FileA, dpdfile2 *FileB)
Definition: file2_dot.cc:39
dpdfile2 * SIA
Definition: libdpd/dpd.h:210
int * ppi
Definition: libdpd/dpd.h:132
void file4_cache_print(std::string OutFileRMR)
Definition: file4_cache.cc:310
int * rowtot
Definition: libdpd/dpd.h:126
int **** pairorb
Definition: libdpd/dpd.h:203
int file2_axpbycz(dpdfile2 *FileA, dpdfile2 *FileB, dpdfile2 *FileC, double a, double b, double c)
Definition: file2_axpbycz.cc:49
int rsnum
Definition: libdpd/dpd.h:157