Psi4
structs.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2018 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
33 /*
34 ** STRUCTS.H
35 **
36 ** C. David Sherrill
37 ** Center for Computational Quantum Chemistry
38 ** University of Georgia
39 ** 1996
40 */
41 
42 #ifndef _psi_src_bin_detci_structs_h
43 #define _psi_src_bin_detci_structs_h
44 
45 #include <string>
46 #include "psi4/pragma.h"
47 PRAGMA_WARNING_PUSH
48 PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS
49 #include <memory>
52 #include "psi4/libmints/typedefs.h"
54 
55 namespace psi {
56 namespace detci {
57 
58 /*** DEFINES ***/
59 
60 #define CI_BLK_MAX 5000
61 #define IOFF_MAX 50604
62 
63 #define PARM_GUESS_VEC_UNIT 0
64 #define PARM_GUESS_VEC_H0_BLOCK 1
65 #define PARM_GUESS_VEC_DFILE 3
66 #define PARM_OPENTYPE_UNKNOWN -1
67 #define PARM_OPENTYPE_NONE 0
68 #define PARM_OPENTYPE_HIGHSPIN 1
69 #define PARM_OPENTYPE_SINGLET 2
70 #define PARM_OUTFILE_MAX 132
71 #define METHOD_RSP 0
72 #define METHOD_OLSEN 1
73 #define METHOD_MITRUSHENKOV 2
74 #define METHOD_DAVIDSON_LIU_SEM 3
75 #define METHOD_RSPTEST_OF_SEM 4
76 #define PRECON_LANCZOS 0
77 #define PRECON_DAVIDSON 1
78 #define PRECON_EVANGELISTI 2
79 #define PRECON_GEN_DAVIDSON 3
80 #define PRECON_H0BLOCK_INVERT 4
81 #define PRECON_H0BLOCK_ITER_INVERT 5
82 #define PRECON_H0BLOCK_COUPLING 6
83 #define MULT 0
84 #define DIV 1
85 #define UPDATE_DAVIDSON 1
86 #define UPDATE_OLSEN 2
87 #define CI_VEC 0
88 #define SIGMA_VEC 1
89 #define TRUE 1
90 #define FALSE 0
91 #define HD_EXACT 0
92 #define HD_KAVE 1
93 #define ORB_ENER 2
94 #define EVANGELISTI 3
95 #define LEININGER 4
96 #define Z_HD_KAVE 5
97 
98 /*
99  * string with replacement list
100  *
101  * For each string, provide:
102  *
103  * occs: a list of all the occupied orbitals for this string
104  * (n.b. unsigned char, so limited to 256 (active) orbitals for now)
105  *
106  * Then, this is followed by information about all the strings that
107  * can be generated by replacing orbital j with orbital i, i.e.,
108  *
109  * |new_string> = ${\hat E}_{ij}$ |string>
110  *
111  * This information is grouped by the "string code" or "string list" for the
112  * excited string, |new_string>. In a full CI, this just numbers the irrep
113  * of the string
114  * produced by the excitation (e.g., in C2v code 0 is a1, code 1 is a2,
115  * etc.). In a RAS, this is a more complicated code that gives a
116  * combo of irrep, and the number of holes in RAS I and particles in RAS
117  * III, etc.
118  *
119  * cnt[code]: Number of strings belonging to list code that can be
120  * reached by single replacements ${\hat E}_{ij}$ from the current
121  * string. Loop excited strings for this target code from 0 to
122  * cnt[code]... let's call the index of each string in this group "p"
123  * below.
124  *
125  * ij[code][p]: Composide index ij that gives new string p
126  * to string list [code]. Packed into a composite index using
127  * ij = ioff[MAX0(i,j)] + MIN0(i,j). Appropriate for accessing
128  * quantities with i,j permutational symmetry.
129  *
130  * oij[code][p]: Composite index ij that gives new string p belonging
131  * to string list [code]. Packed into a composite index using
132  * ij = i * num_ci_orbs + j. Appropriate for accessing packed quantities
133  * without i,j permutationa.l symmetry.
134  *
135  * ridx[code][p]: The relative index of new string p within the
136  * the string list[code].
137  *
138  * sgn[code][p]: The sign of the generated string p relative to its
139  * canonical form (+/- 1).
140  */
141 
142 struct stringwr {
143  unsigned char *occs;
144  int **ij;
145  int **oij;
146  size_t **ridx;
147  signed char **sgn;
148  int *cnt;
149 };
150 
151 struct level {
152  int num_j;
153  int *a;
154  int *b;
155  int **k;
156  int **kbar;
157  int *y;
158  int *x;
159 };
160 
161 struct stringgraph {
162  int offset;
164  struct level *lvl;
165  int ***ktmp; /* ktmp[case][row][level] */
166 };
167 
168 /*
169 ** OLSEN_GRAPH structure. This maintains a graphical
170 ** representation of alpha and/or beta strings according to the method
171 ** of Roos and Olsen, which maintains a different subgraph for each
172 ** possible combination of point-group irrep, #RAS I electrons, and
173 ** #RAS III electrons.
174 */
175 struct olsen_graph {
176  int num_str; /* total number of strings */
177  int num_drc_orbs; /* number of dropped core orbitals */
178  int num_expl_cor_orbs; /* number of explicit core orbitals */
179  int drc_sym; /* symmetry (irrep) for the dropped core */
180  int num_el; /* number of electrons (total) in graph */
181  int num_el_expl; /* number of electrons (explicit) in graph */
182  int num_orb; /* number of orbitals explicitly treated */
183  int ras1_lvl; /* orbital number where RAS I ends (less drc),
184  or the last level in RAS I */
185  int ras1_min; /* minimum number of electrons in RAS I (for
186  the _strings_), incl. core */
187  int ras1_max; /* max number of RAS I electrons (useful when
188  the RAS I level may extend beyond the last
189  occupied orbital), incl. core */
190  int ras3_lvl; /* orbital num where RAS III begins (less drc) */
191  int ras3_max; /* maximum number of electrons in RAS III */
192  int ras4_lvl; /* orbital number where RAS IV begins (less drc) */
193  int ras4_max; /* maximum number of electrons in RAS IV */
194  int nirreps; /* number of irreps */
195  int subgr_per_irrep; /* possible number of Olsen subgraphs per irrep */
196  int max_str_per_irrep; /* largest number of strings found in an irrep */
197  int *str_per_irrep; /* array containing num strings per irrep */
198  int ***decode; /* decode[ras1_holes][ras3_e][ras4_e] */
199  int **encode; /* encode[0,1,2][code] gives ras1 e- (excl drc) and
200  ras3 e- and ras4 e- */
201  struct stringgraph **sg; /* sg[irrep][code] */
202  int *orbsym; /* array for orbital irreps (incl. drc) */
203  int *list_offset; /* absolute offset for each list */
204 };
205 
206 /*
207 ** FASTGRAPH structure. Should provide a more straightforward (if
208 ** also more restrictive) version of struct stringgraph. Although
209 ** somewhat more memory intensive, should allow for fast OTF
210 ** computation of string addresses. The memory requirements are not
211 ** really severe in any case (0-5 MB total for all subgraphs).
212 */
213 struct fastgraph {
214  int num_strings; /* number of strings in this subgraph */
215  int **data; /* holds k, then x, then y */
216 };
217 
218 /*
219 ** GRAPH_SET structure. This maintains a graphical
220 ** representation of alpha and/or beta strings according to the method
221 ** of Roos and Olsen, which maintains a different subgraph for each
222 ** possible combination of point-group irrep, #RAS I electrons, and
223 ** #RAS III electrons. New implementation of previous olsen_graph
224 ** structure; this one uses the more simplified fastgraph structure
225 ** instead of stringgraph.
226 */
227 struct graph_set {
228  int num_str; /* total number of strings */
229  int num_graphs; /* total number of valid subgraphs */
230  int num_drc_orbs; /* number of dropped core orbitals */
231  int num_expl_cor_orbs; /* number of explicit core orbitals */
232  int drc_sym; /* symmetry (irrep) for the dropped core */
233  int num_el; /* number of electrons (total) in graph */
234  int num_el_expl; /* number of electrons (explicit) in graph */
235  int num_orb; /* number of orbitals explicitly treated */
236  int ras1_lvl; /* orbital number where RAS I ends (not including
237  dropped core orbitals in the numbering),
238  or the last level in RAS I */
239  int ras1_min; /* minimum number of electrons in RAS I (for
240  the _strings_), no longer incl. core
241  (either explicit core or dropped core) */
242  int ras1_max; /* max number of RAS I electrons (useful when
243  the RAS I level may extend beyond the last
244  occupied orbital), no longer incl. core
245  (either explicit core or dropped core) */
246  int ras3_lvl; /* orbital num where RAS III begins (less drc) */
247  int ras3_max; /* maximum number of electrons in RAS III */
248  int ras4_lvl; /* orbital number where RAS IV begins (less drc) */
249  int ras4_max; /* maximum number of electrons in RAS IV */
250  int ras34_max; /* max number of electrons in RAS III AND IV */
251  int nirreps; /* number of irreps */
252  int num_codes; /* possible number of subgraphs per irrep */
253  int ***decode; /* decode[ras1_holes][ras3_e][ras4_e] */
254  int **encode; /* encode[0,1,2][code] gives ras1 e- (excl drc) and
255  ras3 e- and ras4 e- */
256  struct fastgraph **AllGraph;
257  /* Pointers to all subgraphs */
258  struct fastgraph **Graph; /* Pointers to allowed subgraphs */
259  int *graph_irrep; /* irrep of each non-null graph */
260  int *graph_code; /* code for each non-null graph */
261  int *graph_offset; /* absolute offset for each list */
262  int *orbsym; /* array for orbital irreps (incl. drc) */
263  unsigned char ***Occs; /* Orbital occupancies for each string */
264 };
265 
266 struct H_zero_block {
267  double **H0b; /* H0 block */
268  double **H0b_inv; /* inverse of block (H0 - E) */
269  double **H0b_diag; /* Eigenvectors of H0 block */
270  double *H0b_diag_transpose; /* tmp array for Transpose of Eigenvectors of H0 block */
271  double *H0b_eigvals; /* Eigenvalues of H0 block */
272  double *H00; /* diag elements of H0 block */
273  int size; /* size of H0 block */
274  int osize; /* original (dimensioned size); can be reduced
275  for Ms=0 cases by H0block_pairup() */
276  int guess_size; /* size of initial H0 block guess which may
277  differ from size */
278  int oguess_size; /* original guess size may change with
279  spin_cpl_chk() and pairup() */
280  int coupling_size; /* size of H0 block coupling to secondary
281  space */
282  int ocoupling_size; /* original size of coupling_size */
283  double *c0b, *s0b; /* gathered C and sigma vectors */
284  double *c0bp, *s0bp; /* INV(H0 - E) times c0b and s0b */
285 
286  int *alplist; /* list (graph) containing alpha string */
287  int *betlist; /* list containing beta string */
288  int *alpidx; /* relative index of alpha string */
289  int *betidx; /* relative index of beta string */
290  int *blknum; /* block number for each member */
291  int *pair; /* which H0block member is related by
292  interchange of alpha and beta indices */
293  double **tmp1; /* tmp matrix to hold (H0 - E) */
294  int nbuf; /* number of buffers in CIvect */
295  int *buf_num; /* number of H0block elements per buffer */
296  int **buf_member; /* H0block members for each buffer */
297  double spin_cp_vals; /* Values of dets which should be added
298  to the h0block but were not due to size
299  restrictions of h0block.size */
300  double *tmp_array1; /* temporary array 1 */
301  double *tmp_array2; /* temporary array 2 */
302 };
303 
304 /*
305 ** CalcInfo: Data Structure for holding calculation information such
306 ** as nuclear repulsion energy, number of atoms, number of basis functions,
307 ** etc.
308 */
309 struct calcinfo {
310  int natom; /* number of atoms */
311  int nso; /* number of symmetry orbitals */
312  int nmo; /* number of molecular orbitals */
313  int nmotri; /* num elements in lwr diag matrix nmo big */
314  int nirreps; /* number of irreducible representations in pt grp */
315  Dimension docc; /* number of doubly occupied orbitals per irrep */
316  Dimension socc; /* number of singly occupied orbitals per irrep */
317  Dimension ci_orbs; /* number of act orbitals per irrep */
318  Dimension dropped_docc; /* number of core orbitals per irrep constrained to
319  be doubly occupied and dropped from explicit
320  consideration in the CI computation;
321  sum of frozen_docc and rstr_docc - CDS 4/15 */
322  Dimension frozen_docc; /* number of frozen doubly occupied orbs per irrep;
323  these are not explicitly present in the CI
324  and these orbitals are not allowed to optimize
325  in an MCSCF - CDS 4/15 */
326  Dimension rstr_docc; /* number of restricted doubly occupied orbs per
327  irrep; these are not explicitly present in the
328  CI and these orbitals are allowed to optimize
329  in an MCSCF - CDS 4/15 */
330  Dimension dropped_uocc; /* number of unoccupied orbitals per irrep
331  constrained to be unoccupied and dropped from
332  explicit consideratin in the CI computation;
333  sum of frozen_uocc and rstr_uocc - CDS 4/15 */
334  Dimension frozen_uocc; /* number of frozen unoccupied orbitals per irrep;
335  these are not explicitly present in the CI
336  and these orbitals are not allowed to optimize
337  in an MCSCF */
338  Dimension rstr_uocc; /* number of restricted unoccpied orbitals per irrep;
339  these are not explicitly present in the CI
340  and these orbitals are allowed to optimize in
341  an MCSCF */
342  int iopen; /* flag for whether open shell or not */
343  double enuc; /* nuclear repulsion energy */
344  double escf; /* scf energy */
345  double efzc; /* energy of the frozen core orbitals */
346  double edrc; /* energy of the dropped core orbitals */
347  double e0; /* E0, zeroth order energy */
348  double e0_drc; /* two times the sum of the dropped core orbitals */
349  double e1; /* E1, first order energy */
350  int num_alp; /* number of alpha electrons */
351  int num_bet; /* number of beta electrons */
352  int num_alp_expl; /* number of alpha electrons explicitly treated */
353  int num_bet_expl; /* number of beta electrons explicitly treated */
354  std::vector<std::string> labels; /* labels for irreps */
355  int *orbsym; /* irrep for each orbital */
356  std::vector<int> reorder; /* map Pitzer-ordered orbitals to our ordering */
357  std::vector<int> order; /* map our ordering back to Pitzer ordering */
358  std::vector<int> act_reorder; /* map Pitzer-ordered orbitals to our ordering for active only*/
359  std::vector<int> act_order; /* map our ordering back to Pitzer ordering for active only*/
360  std::vector<double> scfeigval; /* SCF eigenvalues */
361  std::vector<double> scfeigvala; /* For ZAPTn, alpha and beta eigenvalues different */
362  std::vector<double> scfeigvalb; /* in SOCC space */
363  SharedMatrix so_onel_ints; /* Pitzer-order one-electron integrals */
364  SharedMatrix fzc_so_onel_ints; /* Pitzer-order frozen one-electron integrals */
365  SharedVector onel_ints; /* CI-order one-electron integrals */
366  SharedVector tf_onel_ints; /* CI-order transformed (avg) one-electron integrals */
367  SharedVector gmat; /* CI-order onel ints in RAS g matrix form, not symmetry packed */
368  SharedVector twoel_ints; /* CI-order two-electron integrals */
369  int num_fzc_orbs; /* number of frozen core orbitals */
370  int num_rsc_orbs; /* number of restricted core orbitals */
371  int num_drc_orbs; /* number of dropped core orbitals
372  (frozen + restricted) */
373  int num_fzv_orbs; /* number of frozen/deleted virtual orbitals */
374  int num_rsv_orbs; /* number of restricted virtual orbitals */
375  int num_drv_orbs; /* number of dropped virtual orbitals
376  (frozen + restricted) */
377  int num_rot_orbs; /* number of rotatable orbitals
378  (nmo - nfzc - nfzv) */
379  int npop; /* number of populated orbitals, nso - total virtual */
380  int num_expl_cor_orbs; /* number of explicit core orbitals, i.e.,
381  orbitals that are constrained to be doubly
382  occupied in the CI and but are nevertheless
383  explicitly included in the CI computation (not
384  currently used for anything but kept because
385  lower-level routines allow it; it is set to 0) */
386  int num_alp_str; /* number of alpha strings */
387  int num_bet_str; /* number of beta strings */
388  int num_ci_orbs; /* nmo - num orbs frozen */
389  size_t num_ci_tri; /* number of upper triangular ci orbs */
390  size_t num_ci_tri2; /* number of doubly upper triangular ci orbs (example: two-el integrals) */
391  int ref_alp; /* address of reference alpha string */
392  int ref_bet; /* address of reference beta string */
393  int ref_alp_list; /* string list containing reference alpha string */
394  int ref_bet_list; /* string list containing reference beta string */
395  int ref_alp_rel; /* relative index of reference alpha string */
396  int ref_bet_rel; /* relative index of reference beta string */
397  int ref_sym; /* symmetry (irrep) of reference determinant */
398  int spab; /* socc per alpha or beta, for singlet states */
399  int **ras_opi; /* num orbs per irr per ras space ras_opi[ras][irr] */
400  int **ras_orbs[4]; /* ras_orbs[ras][irr][cnt] gives an orbital number */
401  int sigma_initialized; /* has sigma_init been called yet? */
402 };
403 
404 /*
405 ** parameters structure: holds run-time parameters
406 */
407 struct params {
408  std::string dertype; /* derivative level: none, first, etc */
409  std::string wfn; /* wavefunction type: CI, DETCAS, etc. */
410  std::string ref; /* reference type (RHF, ROHF); ROHF with MULTP=1
411  is an open-shell singlet */
412  std::string mcscf_type; /*Type of MCSCF computation DF or CONV */
413  int multp; /* multiplicity (2S+1) */
414  int ex_lvl; /* excitation level */
415  int val_ex_lvl; /* valence excitation level, used for RAS's */
416  int cc_val_ex_lvl; /* NOT analogous to val_ex_lvl ... this controls how
417  many holes allowed from RAS II for MRCC */
418  int cc_a_val_ex_lvl; /* alpha part of cc_val_ex_lvl */
419  int cc_b_val_ex_lvl; /* beta part of cc_val_ex_lvl */
420  int maxiter; /* maximum number of allowed iterations */
421  int num_roots; /* number of CI roots to find */
422  int istop; /* stop after setting up CI space */
423  int print_ciblks; /* print a summary of the CI blocks? */
424  bool die_if_not_converged; /* Do we die if we do not converge */
425  bool diag_h_converged; /* Boolean to set if the diagonalization converges */
426  double convergence; /* convergence on RMS of the CI update vector */
427  /* (i.e. the Davidson/Liu d vector) applied to ea root */
428  double energy_convergence; /* convergence on CI energy */
429  int ras; /* do a RAS calculation? Set true if "RAS1" keyword */
430  int fci; /* do a FULL ci calc? (affects sigma1-2 subroutines) */
431  int fci_strings; /* do a FULL ci calc? (affects string storage) */
432  double S; /* the value of quantum number S */
433  int Ms0; /* 1 if Ms=0, 0 otherwise */
434  int ref_sym; /* irrep for CI vectors; -1 = find automatically */
435  int opentype; /* none, highspin, or open-shell singlet; see #define */
436  int a_ras1_lvl; /* orbital number defining RAS I for alpha electrons:
437  any electrons at this level or lower are in RAS I */
438  int a_ras1_min; /* minimum number of alpha electrons in RAS I */
439  int a_ras1_max; /* maximum number of alpha electrons in RAS I */
440  int b_ras1_lvl; /* orbital number defining RAS I for beta electrons:
441  any electrons at this level or lower are in RAS I */
442  int b_ras1_min; /* minimum number of beta electrons in RAS I */
443  int b_ras1_max; /* maximum number of beta electrons in RAS I */
444  int a_ras3_max; /* maximum number of alpha electrons in RAS III */
445  int b_ras3_max; /* maximum number of beta electrons in RAS III */
446  int cc_a_ras3_max; /* as above but for CC */
447  int cc_b_ras3_max; /* as above but for CC */
448  int a_ras4_max; /* maximum number of alpha electrons in RAS IV */
449  int b_ras4_max; /* maximum number of beta electrons in RAS IV */
450  int cc_a_ras4_max; /* as above but for CC */
451  int cc_b_ras4_max; /* as above but for CC */
452  int ras1_lvl; /* Orbital number of the highest orbital in RAS I */
453  int ras1_min; /* currently min #e AT THE RAS I LEVEL (excluding drc) */
454  int ras3_lvl; /* orbital number defining RAS III overall */
455  int ras4_lvl; /* orbital number defining RAS IV overall */
456  /* make larger than num_ci_orbs if there is no RAS IV */
457  int ras3_max; /* maximum number of electrons in RAS III */
458  int cc_ras3_max; /* as above but for CC */
459  int ras4_max; /* maximum number of electrons in RAS IV */
460  int cc_ras4_max; /* as above but for CC */
461  int ras34_max; /* max number of electrons in RAS III AND IV */
462  int cc_ras34_max; /* as above but for CC */
463  int a_ras34_max; /* max number of alp electrons in RAS III AND IV */
464  int b_ras34_max; /* max number of bet electrons in RAS III AND IV */
465  int cc_a_ras34_max; /* as above but for CC */
466  int cc_b_ras34_max; /* as above but for CC */
467  int guess_vector; /* what kind of CI vector to start with; see #define */
468  int h0blocksize; /* size of H0 block in preconditioner. */
469  int h0guess_size; /* size of H0 block for initial guess */
470  int h0block_coupling_size; /* size of coupling block in preconditioner */
471  int h0block_coupling; /* 1 if true; 0 otherwise */
472  int hd_ave; /* how to average H diag energies over spin coupling
473  sets */
474  int hd_otf; /* 1 if diag energies computed on the fly 0 otherwise */
475  int nodfile; /* 1 if no dfile used 0 otherwise works for nroots=1 */
476  int nprint; /* number of important determinants to print out */
477  int cc_nprint; /* number of most important CC amps per ex lvl to print */
478  int mixed; /* 1=allow mixed excitations, 0=don't */
479  int mixed4; /* 1=allow mixed excitations in RAS IV, 0=don't */
480  int repl_otf; /* generate single-replacements on-the-fly */
481  int r4s; /* restrict strings with e- in RAS IV: i.e. if an
482  electron is in RAS IV, then the holes in RAS I
483  must equal the particles in RAS III + RAS IV else
484  the string is discarded */
485  int calc_ssq; /* calculate the value of <S^2> or not */
486  int icore; /* core option:
487  0 = RAS subblock at a time
488  1 = Entire CI vector at a time
489  2 = Symmetry block at a time */
490  int diag_method; /* diagonalization method:
491  0 = RSP
492  1 = Olsen
493  2 = Mitrushenkov
494  3 = Davidson/Liu SEM method
495  4 = Stupid test of Davidson/Liu SEM method */
496  int precon; /* preconditioner for diagonalization method
497  0 = Lanczos
498  1 = Davidson
499  2 = Generalized Davidson or H0block
500  3 = H0block inverse */
501  int update; /* update vector in diag method
502  1 = Davidson
503  2 = Olsen */
504  int mcscf; /* 1(0) if computing MCSCF is TRUE(FALSE) */
505  int mpn; /* 1(0) if computing mpn series is TRUE(FALSE) */
506  int zaptn; /* 1(0) if computing zaptn series is TRUE(FALSE) */
507  int save_mpn2; /* 0 = save MPn energy, 1 = save MP(2n-1) energy,
508  2 = save MP(2n-2) energy */
509  int mpn_schmidt; /* 1(0) if a orthonormal vector space is employed
510  rather than storing the kth order wfn */
511  int wigner; /* 1(0) if wigner formulas used in Empn series */
512  int diag_iters_taken; /* Number of diagonalization iterations taken */
513  int maxnvect; /* maximum number of b vectors for SEM method */
514  int nunits; /* num of tmp files to use for CI vects and such */
515  int collapse_size; /* how many vectors to collapse to in SEM */
516  int lse_collapse; /* iterations between lst sqr ext */
517  int lse_iter; /* iterations between last lst sqr ext */
518  int lse; /* 1(0) if lst sqr ext is TRUE or FALSE */
519  double lse_tolerance; /* energy converged to tol to perform lse */
520  int neg_only; /* 1(0) if get -(+) values of diag elements */
521  int hd_filenum; /* first tmp file for H diagonal */
522  int c_filenum; /* first tmp file for CI coeffs */
523  int s_filenum; /* first tmp file for sigma coeffs */
524  int d_filenum; /* first tmp file for D correction vectors */
525  int num_init_vecs; /* number of initial vectors for Davidson method */
526  int restart; /* restart flag, 0 or 1 */
527  int bendazzoli; /* use bendazzoli algorithm */
528  int opdm; /* call the opdm subroutine? */
529  int opdm_diag; /* get ci natural orbitals? */
530  int opdm_ave; /* average the opdm over several states */
531  int transdens; /* compute transition densities? */
532  int dipmom; /* compute dipole moment or transition dip mom? */
533  int tpdm; /* call the tpdm subroutine? */
534  int root; /* which root to optimize (write opdm/tpdm for) */
535  double perturbation_parameter; /* z in H = H0 + z * H1 */
536  int z_scale_H; /* 1(0) if pert. scaling used */
537  double special_conv; /* special convergence value */
538  int nthreads; /* number of threads to use in sigma routines */
539  int sf_restrict; /* 1 if restrict CI space (CI blocks) to
540  do only determinants (or their
541  spin-complements) in RASCI versions of
542  Krylov's SF CI */
543  int print_sigma_overlap; /* Print sigma overlap matrix? Test for Arteum */
544  int filter_guess; /* 1 if we want to filter out some of our guess
545  vectors by checking the phase of a pair of determinants */
546  int filter_guess_sign; /* the desired phase between dets 1 and 2 */
547  int filter_guess_Ia; /* absolute alpha string addr for determinant 1 */
548  int filter_guess_Ib; /* absolute beta string addr for determinant 1 */
549  int filter_guess_Ja; /* absolute alpha string addr for determinant 2 */
550  int filter_guess_Jb; /* absolute beta string addr for determinant 2 */
551  int filter_guess_Iaridx; /* relative alpha string addr for det 1 */
552  int filter_guess_Ibridx; /* relative beta string addr for det 1 */
553  int filter_guess_Jaridx; /* relative alpha string addr for det 2 */
554  int filter_guess_Jbridx; /* relative beta string addr for det 2 */
555  int filter_guess_Iac; /* string list number for alpha of det 1 */
556  int filter_guess_Ibc; /* string list number for beta of det 1 */
557  int filter_guess_Jac; /* string list number for alpha of det 2 */
558  int filter_guess_Jbc; /* string list number for beta of det 2 */
559  int filter_guess_H0_det1; /* H0block determinant number for det 1 */
560  int filter_guess_H0_det2; /* H0block determinant number for det 2 */
561  int filter_zero_det; /* zero out any particular determinant? */
562  int filter_zero_det_Ia; /* absolute alpha string addr for zero det */
563  int filter_zero_det_Ib; /* absolute beta string addr for zero det */
564  int filter_zero_det_Iac; /* string list number for alpha of zero det */
565  int filter_zero_det_Ibc; /* string list number for beta of zero det */
566  int filter_zero_det_Iaridx; /* relative alpha string for zero det */
567  int filter_zero_det_Ibridx; /* relative beta string for zero det */
568  int follow_vec_num; /* num components in user-specified vec to follow */
569  std::vector<double> follow_vec_coef; /* array of coefficients for vec to follow */
570  std::vector<int> follow_vec_Ia; /* array of absolute alpha strings for vector */
571  std::vector<int> follow_vec_Ib; /* array of absolute beta strings for vector */
572  std::vector<int> follow_vec_Iac; /* array of alpha string lists for vector */
573  std::vector<int> follow_vec_Ibc; /* array of beta string lists for vector */
574  std::vector<int> follow_vec_Iaridx; /* array of alpha relative idx for vector */
575  std::vector<int> follow_vec_Ibridx; /* array of beta relative idx for vector */
576  std::vector<int> ex_allow; /* Determine nonstandard excitation types, such
577  as CID, CIST, CIDTQ, etc. Array is length
578  ex_lvl and each element is 1 or 0. 1 means
579  that excitation level is allowed. */
580  std::vector<int> average_states; /* which states to average in a SA calc */
581  std::vector<double> average_weights; /* the weights for each state in a SA calc */
582  int average_num; /* length of the above two arrays */
583  int cc; /* do coupled-cluster */
584  int cc_ex_lvl; /* coupled-cluster excitation level */
585  int cc_export; /* export a CC vector? */
586  int cc_import; /* import a CC vector? */
587  int cc_fix_external; /* fix amplitudes involving RAS I or IV ? */
588  int cc_fix_external_min; /* num external indices before amp gets fixed */
589  int cc_mixed; /* ignore block if num holes in RAS I and II is
590  > cc_ex_lvl and if any indices correspond to
591  RAS I or IV (i.e., include only all-active
592  higher excitations) */
593  int cc_update_eps; /* update T amps with orb eigvals or not? */
594  int diis; /* do DIIS? */
595  int diis_start; /* how many diis vectors built up before start */
596  int diis_freq; /* how many iters to go before a diis step */
597  int diis_min_vecs; /* how many vectors required before do diis? */
598  int diis_max_vecs; /* how many vectors maximum to hold? */
599  int cc_variational; /* variational energy expression? */
600 };
601 
602 /*
603 ** CI Vector structure which keeps track of how many
604 ** symmetry or RAS blocks in a CI vector, the string graph
605 ** codes for each block, offsets for each block (to compute absolute
606 ** indices), and a decoder which takes two block codes (alpha and
607 ** beta) and determines the CI vector block number.
608 */
609 struct ci_blks {
610  size_t vectlen; /* total number of elements in the CI vector */
611  int num_blocks; /* number of blocks in the CI vector */
612  int Ia_code[CI_BLK_MAX]; /* gives the block's alpha string code */
613  int Ib_code[CI_BLK_MAX]; /* gives the block's beta string code */
614  int Ia_size[CI_BLK_MAX]; /* num of alp strings in the block */
615  int Ib_size[CI_BLK_MAX]; /* num of bet strings in the block */
616  size_t offset[CI_BLK_MAX]; /* offset for absolute numbering */
617  int **decode; /* gives the block number for a given pair
618  of alpha and beta codes */
619  int num_alp_codes; /* number of alpha codes in decode matrix */
620  int num_bet_codes; /* number of beta codes in decode matrix */
621  int *first_iablk; /* first blocknum for a given Ia irrep */
622  int *last_iablk; /* last blocknum for a given Ia irrep */
623  int subgr_per_irrep; /* possible number of Olsen subgraphs per irrep */
624  int nirreps; /* number of molecular irreps */
625  int Ms0; /* 1 if Ms=0, 0 otherwise */
626 };
627 
628 /*
629 ** Struct to keep track of variable required in a sigma calculation
630 */
631 struct sigma_data {
632  double *F;
633  int **Jij[2];
634  int **Joij[2];
635  int **Jridx[2];
636  int *Jcnt[2];
637  signed char **Jsgn[2];
638  unsigned char **Toccs;
639  double **transp_tmp;
640  double **cprime;
641  double **sprime;
642  double *V, *Sgn;
643  int *L, *R;
644  int max_dim;
645 };
646 }
647 } // namespace psi
648 
649 #endif // header guard
double * s0b
Definition: structs.h:283
int * y
Definition: structs.h:157
int num_bet_codes
Definition: structs.h:620
int filter_zero_det_Iaridx
Definition: structs.h:566
int h0guess_size
Definition: structs.h:469
int ** kbar
Definition: structs.h:156
int neg_only
Definition: structs.h:520
int cc_a_ras3_max
Definition: structs.h:446
bool die_if_not_converged
Definition: structs.h:424
int drc_sym
Definition: structs.h:179
SharedMatrix fzc_so_onel_ints
Definition: structs.h:364
int a_ras34_max
Definition: structs.h:463
int Ia_code[CI_BLK_MAX]
Definition: structs.h:612
int num_orb
Definition: structs.h:182
double * Sgn
Definition: structs.h:642
Definition: structs.h:213
int sf_restrict
Definition: structs.h:539
#define CI_BLK_MAX
Definition: structs.h:60
std::vector< int > follow_vec_Iac
Definition: structs.h:572
int filter_guess
Definition: structs.h:544
int cc_b_ras4_max
Definition: structs.h:451
int filter_guess_Jbc
Definition: structs.h:558
int * orbsym
Definition: structs.h:202
int coupling_size
Definition: structs.h:280
int nthreads
Definition: structs.h:538
int ref_bet
Definition: structs.h:392
int num_alp_str
Definition: structs.h:386
int nprint
Definition: structs.h:476
SharedMatrix so_onel_ints
Definition: structs.h:363
double * H0b_diag_transpose
Definition: structs.h:270
int ** oij
Definition: structs.h:145
int * a
Definition: structs.h:153
int nunits
Definition: structs.h:514
SharedVector tf_onel_ints
Definition: structs.h:366
int mixed
Definition: structs.h:478
size_t vectlen
Definition: structs.h:610
int nbuf
Definition: structs.h:294
int num_drv_orbs
Definition: structs.h:375
int oguess_size
Definition: structs.h:278
int ras4_max
Definition: structs.h:459
int * str_per_irrep
Definition: structs.h:197
std::vector< int > follow_vec_Ia
Definition: structs.h:570
int ** Jridx[2]
Definition: structs.h:635
std::vector< int > ex_allow
Definition: structs.h:576
double ** H0b_diag
Definition: structs.h:269
Dimension dropped_docc
Definition: structs.h:318
int nirreps
Definition: structs.h:314
int nso
Definition: structs.h:311
int subgr_per_irrep
Definition: structs.h:623
int filter_zero_det_Iac
Definition: structs.h:564
int num_roots
Definition: structs.h:421
int sigma_initialized
Definition: structs.h:401
int max_dim
Definition: structs.h:644
Definition: structs.h:309
double * V
Definition: structs.h:642
unsigned char * occs
Definition: structs.h:143
Definition: structs.h:266
std::vector< int > follow_vec_Ib
Definition: structs.h:571
double * c0bp
Definition: structs.h:284
int lse
Definition: structs.h:518
int ex_lvl
Definition: structs.h:414
int cc_b_val_ex_lvl
Definition: structs.h:419
int ras
Definition: structs.h:429
int s_filenum
Definition: structs.h:523
double * s0bp
Definition: structs.h:284
int *** decode
Definition: structs.h:198
Definition: structs.h:227
int filter_guess_Iac
Definition: structs.h:555
Definition: structs.h:631
int h0block_coupling_size
Definition: structs.h:470
double lse_tolerance
Definition: structs.h:519
int opentype
Definition: structs.h:435
int ** encode
Definition: structs.h:199
Definition: structs.h:609
int ** ij
Definition: structs.h:144
int wigner
Definition: structs.h:511
int ref_bet_rel
Definition: structs.h:396
int ref_bet_list
Definition: structs.h:394
int cc_fix_external_min
Definition: structs.h:588
int diis_freq
Definition: structs.h:596
std::vector< int > order
Definition: structs.h:357
int ras3_max
Definition: structs.h:457
int *** decode
Definition: structs.h:253
int fci_strings
Definition: structs.h:431
int cc_ras34_max
Definition: structs.h:462
std::vector< int > reorder
Definition: structs.h:356
int cc_b_ras3_max
Definition: structs.h:447
int * alpidx
Definition: structs.h:288
int offset
Definition: structs.h:162
int Ms0
Definition: structs.h:433
int * b
Definition: structs.h:154
int filter_guess_H0_det2
Definition: structs.h:560
int num_strings
Definition: structs.h:214
int ref_alp
Definition: structs.h:391
double escf
Definition: structs.h:344
int filter_guess_Ibridx
Definition: structs.h:552
int ras1_min
Definition: structs.h:453
int num_str
Definition: structs.h:228
int d_filenum
Definition: structs.h:524
bool diag_h_converged
Definition: structs.h:425
struct fastgraph ** AllGraph
Definition: structs.h:256
int ras3_lvl
Definition: structs.h:246
int num_drc_orbs
Definition: structs.h:230
int * list_offset
Definition: structs.h:203
int ras3_max
Definition: structs.h:247
int nodfile
Definition: structs.h:475
double S
Definition: structs.h:432
int repl_otf
Definition: structs.h:480
int mcscf
Definition: structs.h:504
int num_strings
Definition: structs.h:163
int filter_guess_Ia
Definition: structs.h:547
int diis_max_vecs
Definition: structs.h:598
size_t offset[CI_BLK_MAX]
Definition: structs.h:616
int cc_val_ex_lvl
Definition: structs.h:416
int ** encode
Definition: structs.h:254
int restart
Definition: structs.h:526
int maxnvect
Definition: structs.h:513
double * H0b_eigvals
Definition: structs.h:271
int ** ras_orbs[4]
Definition: structs.h:400
int num_el
Definition: structs.h:180
int ras1_min
Definition: structs.h:239
double * tmp_array1
Definition: structs.h:300
int cc_variational
Definition: structs.h:599
int cc_ras4_max
Definition: structs.h:460
int b_ras34_max
Definition: structs.h:464
int b_ras3_max
Definition: structs.h:445
int npop
Definition: structs.h:379
int cc_a_ras34_max
Definition: structs.h:465
int ras1_max
Definition: structs.h:187
int * x
Definition: structs.h:158
int filter_guess_Iaridx
Definition: structs.h:551
int * orbsym
Definition: structs.h:355
int mixed4
Definition: structs.h:479
int nirreps
Definition: structs.h:194
int ras4_lvl
Definition: structs.h:455
size_t num_ci_tri
Definition: structs.h:389
double * F
Definition: structs.h:632
int num_expl_cor_orbs
Definition: structs.h:380
int nirreps
Definition: structs.h:624
std::string mcscf_type
Definition: structs.h:412
int b_ras4_max
Definition: structs.h:449
int filter_guess_H0_det1
Definition: structs.h:559
Dimension rstr_uocc
Definition: structs.h:338
std::vector< int > follow_vec_Iaridx
Definition: structs.h:574
int print_sigma_overlap
Definition: structs.h:543
int num_init_vecs
Definition: structs.h:525
int * L
Definition: structs.h:643
Definition: structs.h:161
int transdens
Definition: structs.h:531
unsigned char ** Toccs
Definition: structs.h:638
Dimension frozen_docc
Definition: structs.h:322
signed char ** Jsgn[2]
Definition: structs.h:637
int * blknum
Definition: structs.h:290
size_t ** ridx
Definition: structs.h:146
int num_rsv_orbs
Definition: structs.h:374
double e0
Definition: structs.h:347
int filter_zero_det_Ib
Definition: structs.h:563
double convergence
Definition: structs.h:426
double perturbation_parameter
Definition: structs.h:535
std::string dertype
Definition: structs.h:408
int ** data
Definition: structs.h:215
int filter_zero_det_Ibridx
Definition: structs.h:567
int ras3_max
Definition: structs.h:191
int b_ras1_max
Definition: structs.h:443
int ras34_max
Definition: structs.h:250
int c_filenum
Definition: structs.h:522
int num_alp_codes
Definition: structs.h:619
int num_orb
Definition: structs.h:235
std::string ref
Definition: structs.h:410
double e0_drc
Definition: structs.h:348
struct fastgraph ** Graph
Definition: structs.h:258
int opdm_diag
Definition: structs.h:529
int osize
Definition: structs.h:274
int * R
Definition: structs.h:643
int ** Jij[2]
Definition: structs.h:633
int a_ras3_max
Definition: structs.h:444
int * orbsym
Definition: structs.h:262
int num_codes
Definition: structs.h:252
int * graph_offset
Definition: structs.h:261
std::vector< int > follow_vec_Ibc
Definition: structs.h:573
double * H00
Definition: structs.h:272
Dimension frozen_uocc
Definition: structs.h:334
Dimension dropped_uocc
Definition: structs.h:330
int tpdm
Definition: structs.h:533
int num_el_expl
Definition: structs.h:181
double efzc
Definition: structs.h:345
int cc_ras3_max
Definition: structs.h:458
int cc_export
Definition: structs.h:585
int num_fzv_orbs
Definition: structs.h:373
int cc_mixed
Definition: structs.h:589
SharedWavefunction detci(SharedWavefunction, Options &)
Definition: detci.cc:65
int * graph_irrep
Definition: structs.h:259
int cc_import
Definition: structs.h:586
int ras34_max
Definition: structs.h:461
Dimension rstr_docc
Definition: structs.h:326
int ref_sym
Definition: structs.h:397
int num_str
Definition: structs.h:176
int hd_otf
Definition: structs.h:474
int * graph_code
Definition: structs.h:260
int * buf_num
Definition: structs.h:295
int ** k
Definition: structs.h:155
Dimension docc
Definition: structs.h:315
PRAGMA_WARNING_PUSH PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS PRAGMA_WARNING_POP
Definition: integraliter.cc:43
double edrc
Definition: structs.h:346
int * Jcnt[2]
Definition: structs.h:636
int a_ras1_lvl
Definition: structs.h:436
int * last_iablk
Definition: structs.h:622
int hd_ave
Definition: structs.h:472
int subgr_per_irrep
Definition: structs.h:195
int mpn_schmidt
Definition: structs.h:509
std::vector< double > follow_vec_coef
Definition: structs.h:569
double ** H0b
Definition: structs.h:267
int ras4_max
Definition: structs.h:249
int num_bet_expl
Definition: structs.h:353
int mpn
Definition: structs.h:505
int size
Definition: structs.h:273
Definition: dimension.h:40
signed char ** sgn
Definition: structs.h:147
int num_bet_str
Definition: structs.h:387
int num_ci_orbs
Definition: structs.h:388
std::vector< double > scfeigval
Definition: structs.h:360
int ras1_min
Definition: structs.h:185
int diis_start
Definition: structs.h:595
int filter_zero_det
Definition: structs.h:561
double ** sprime
Definition: structs.h:641
int num_bet
Definition: structs.h:351
int ras1_lvl
Definition: structs.h:236
double spin_cp_vals
Definition: structs.h:297
int multp
Definition: structs.h:413
int * betidx
Definition: structs.h:289
int ** buf_member
Definition: structs.h:296
std::vector< int > follow_vec_Ibridx
Definition: structs.h:575
int cc_fix_external
Definition: structs.h:587
std::vector< int > act_reorder
Definition: structs.h:358
int r4s
Definition: structs.h:481
int zaptn
Definition: structs.h:506
double ** cprime
Definition: structs.h:640
int save_mpn2
Definition: structs.h:507
int num_expl_cor_orbs
Definition: structs.h:231
int max_str_per_irrep
Definition: structs.h:196
int filter_guess_Jac
Definition: structs.h:557
size_t num_ci_tri2
Definition: structs.h:390
int filter_guess_sign
Definition: structs.h:546
int num_fzc_orbs
Definition: structs.h:369
int filter_guess_Jbridx
Definition: structs.h:554
double special_conv
Definition: structs.h:537
std::vector< double > scfeigvala
Definition: structs.h:361
int *** ktmp
Definition: structs.h:165
unsigned char *** Occs
Definition: structs.h:263
int ref_alp_list
Definition: structs.h:393
int maxiter
Definition: structs.h:420
Definition: structs.h:142
int ras4_max
Definition: structs.h:193
int drc_sym
Definition: structs.h:232
int cc_a_val_ex_lvl
Definition: structs.h:418
int * cnt
Definition: structs.h:148
int ras1_lvl
Definition: structs.h:183
double energy_convergence
Definition: structs.h:428
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
struct stringgraph ** sg
Definition: structs.h:201
int cc_b_ras34_max
Definition: structs.h:466
int cc_a_ras4_max
Definition: structs.h:450
double * c0b
Definition: structs.h:283
std::vector< int > act_order
Definition: structs.h:359
int calc_ssq
Definition: structs.h:485
int diis
Definition: structs.h:594
int natom
Definition: structs.h:310
int follow_vec_num
Definition: structs.h:568
int filter_guess_Ja
Definition: structs.h:549
std::vector< std::string > labels
Definition: structs.h:354
int Ia_size[CI_BLK_MAX]
Definition: structs.h:614
int Ib_code[CI_BLK_MAX]
Definition: structs.h:613
int h0block_coupling
Definition: structs.h:471
int num_el
Definition: structs.h:233
std::vector< int > average_states
Definition: structs.h:580
int * betlist
Definition: structs.h:287
int root
Definition: structs.h:534
int nmotri
Definition: structs.h:313
int bendazzoli
Definition: structs.h:527
int num_graphs
Definition: structs.h:229
int lse_collapse
Definition: structs.h:516
int nirreps
Definition: structs.h:251
int hd_filenum
Definition: structs.h:521
int a_ras4_max
Definition: structs.h:448
Dimension ci_orbs
Definition: structs.h:317
int nmo
Definition: structs.h:312
int filter_guess_Ibc
Definition: structs.h:556
int ** ras_opi
Definition: structs.h:399
int b_ras1_lvl
Definition: structs.h:440
int cc_update_eps
Definition: structs.h:593
int b_ras1_min
Definition: structs.h:442
int * first_iablk
Definition: structs.h:621
int val_ex_lvl
Definition: structs.h:415
int spab
Definition: structs.h:398
int average_num
Definition: structs.h:582
Dimension socc
Definition: structs.h:316
int num_alp_expl
Definition: structs.h:352
int cc
Definition: structs.h:583
int num_el_expl
Definition: structs.h:234
double ** H0b_inv
Definition: structs.h:268
int update
Definition: structs.h:501
int ras1_max
Definition: structs.h:242
int print_ciblks
Definition: structs.h:423
int cc_ex_lvl
Definition: structs.h:584
int h0blocksize
Definition: structs.h:468
Definition: structs.h:407
std::vector< double > average_weights
Definition: structs.h:581
double e1
Definition: structs.h:349
int diag_iters_taken
Definition: structs.h:512
int ras3_lvl
Definition: structs.h:190
int ref_sym
Definition: structs.h:434
SharedVector onel_ints
Definition: structs.h:365
double ** tmp1
Definition: structs.h:293
int collapse_size
Definition: structs.h:515
int icore
Definition: structs.h:486
int cc_nprint
Definition: structs.h:477
int guess_vector
Definition: structs.h:467
int ras4_lvl
Definition: structs.h:192
int ras4_lvl
Definition: structs.h:248
int * pair
Definition: structs.h:291
int filter_guess_Ib
Definition: structs.h:548
int Ms0
Definition: structs.h:625
double enuc
Definition: structs.h:343
int guess_size
Definition: structs.h:276
int filter_guess_Jaridx
Definition: structs.h:553
int ras3_lvl
Definition: structs.h:454
int diag_method
Definition: structs.h:490
int num_alp
Definition: structs.h:350
double ** transp_tmp
Definition: structs.h:639
int num_rsc_orbs
Definition: structs.h:370
int istop
Definition: structs.h:422
int z_scale_H
Definition: structs.h:536
int a_ras1_max
Definition: structs.h:439
int num_expl_cor_orbs
Definition: structs.h:178
int * alplist
Definition: structs.h:286
Definition: structs.h:151
int ** Joij[2]
Definition: structs.h:634
int ocoupling_size
Definition: structs.h:282
int diis_min_vecs
Definition: structs.h:597
int filter_zero_det_Ia
Definition: structs.h:562
int ** decode
Definition: structs.h:617
int num_drc_orbs
Definition: structs.h:177
SharedVector twoel_ints
Definition: structs.h:368
int precon
Definition: structs.h:496
int filter_zero_det_Ibc
Definition: structs.h:565
int fci
Definition: structs.h:430
int opdm
Definition: structs.h:528
int num_rot_orbs
Definition: structs.h:377
int filter_guess_Jb
Definition: structs.h:550
int num_blocks
Definition: structs.h:611
std::vector< double > scfeigvalb
Definition: structs.h:362
int iopen
Definition: structs.h:342
std::shared_ptr< Vector > SharedVector
Definition: adc.h:51
struct level * lvl
Definition: structs.h:164
int num_j
Definition: structs.h:152
int Ib_size[CI_BLK_MAX]
Definition: structs.h:615
int ref_alp_rel
Definition: structs.h:395
int ras1_lvl
Definition: structs.h:452
int dipmom
Definition: structs.h:532
SharedVector gmat
Definition: structs.h:367
double * tmp_array2
Definition: structs.h:301
int num_drc_orbs
Definition: structs.h:371
int lse_iter
Definition: structs.h:517
std::string wfn
Definition: structs.h:409
int opdm_ave
Definition: structs.h:530
int a_ras1_min
Definition: structs.h:438
Definition: structs.h:175