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