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