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