229
231
struct calcinfo {
230
232
int natom; /* number of atoms */
231
int natom3; /* number of atoms * 3 (to save calculations) */
232
233
int nso; /* number of symmetry orbitals */
233
234
int nmo; /* number of molecular orbitals */
234
235
int nmotri; /* num elements in lwr diag matrix nmo big */
236
237
int *docc; /* doubly occupied orbitals per irrep */
237
238
int *socc; /* singly occupied orbitals per irrep */
238
239
int *frozen_docc; /* frozen doubly occupied orbs per irrep */
240
int *rstr_docc; /* restricted core orbitals per irrep */
241
int *rstr_uocc; /* restricted virtual orbitals per irrep */
239
242
int *frozen_uocc; /* frozen virtual orbs per irrep */
240
243
int iopen; /* flag for whether open shell or not */
241
244
double enuc; /* nuclear repulsion energy */
267
270
int num_bet_str; /* number of beta strings */
268
271
int num_ci_orbs; /* nmo - num orbs frozen */
269
272
int num_fzv_orbs; /* number of frozen/deleted virtual orbitals */
273
int num_vir_orbs; /* number of restricted virtual orbitals */
270
274
int ref_alp; /* address of reference alpha string */
271
275
int ref_bet; /* address of reference beta string */
272
276
int ref_alp_list; /* string list containing reference alpha string */
314
318
int fci_strings; /* do a FULL ci calc? (affects string storage) */
315
319
int fzc; /* do implicit frozen core (remove those orbs)? */
316
320
/* the alternative is a "restricted core" calc */
317
int S; /* the value of quantum number S */
321
double S; /* the value of quantum number S */
318
322
int Ms0; /* 1 if Ms=0, 0 otherwise */
319
323
int ref_sym; /* irrep for CI vectors; -1 = find automatically */
320
324
int opentype; /* closed, highspin, or open-shell singlet; see #define */
417
421
roots and irreps of opdm in opdmfile */
418
422
int **orbs_idxmat; /* matrix of index values for various
419
423
roots and irreps of orbitals in orbsfile */
424
int transdens; /* compute transition densities? */
425
int dipmom; /* compute dipole moment or transition dip mom? */
426
int tdm_write; /* write the transition density matrix/matrices? */
427
int tdm_print; /* print the transition density matrix/matrices? */
420
428
int tpdm; /* call the tpdm subroutine? */
421
429
int tpdm_write; /* write the tpdm? */
422
430
int tpdm_print; /* print the tpdm? */
437
445
do only determinants (or their
438
446
spin-complements) in RASCI versions of
439
447
Krylov's SF CI */
448
int print_sigma_overlap;/* Print sigma overlap matrix? Test for Arteum */
440
449
int filter_guess; /* 1 if we want to filter out some of our guess
441
450
vectors by checking the phase of a pair of
455
464
int filter_guess_Jbc; /* string list number for beta of det 2 */
456
465
int filter_guess_H0_det1; /* H0block determinant number for det 1 */
457
466
int filter_guess_H0_det2; /* H0block determinant number for det 2 */
467
int zero_det; /* zero out any particular determinant? */
468
int zero_det_Ia; /* absolute alpha string addr for zero det */
469
int zero_det_Ib; /* absolute beta string addr for zero det */
470
int zero_det_Iac; /* string list number for alpha of zero det */
471
int zero_det_Ibc; /* string list number for beta of zero det */
472
int zero_det_Iaridx; /* relative alpha string for zero det */
473
int zero_det_Ibridx; /* relative beta string for zero det */
474
int follow_vec_num; /* num components in user-specified vec to follow */
475
double *follow_vec_coef;/* array of coefficients for vec to follow */
476
int *follow_vec_Ia; /* array of absolute alpha strings for vector */
477
int *follow_vec_Ib; /* array of absolute beta strings for vector */
478
int *follow_vec_Iac; /* array of alpha string lists for vector */
479
int *follow_vec_Ibc; /* array of beta string lists for vector */
480
int *follow_vec_Iaridx; /* array of alpha relative idx for vector */
481
int *follow_vec_Ibridx; /* array of beta relative idx for vector */
482
int *ex_type; /* Determine nonstandard excitation types, such
483
as CID, CIST, CIDTQ, etc. */
484
int *average_states; /* which states to average in a SA calc */
485
double *average_weights;/* the weights for each state in a SA calc */
486
int average_num; /* length of the above two arrays */
467
496
** beta) and determines the CI vector block number.
470
unsigned long vectlen; /* total number of elements in the CI vector */
499
BIGINT vectlen; /* total number of elements in the CI vector */
471
500
int num_blocks; /* number of blocks in the CI vector */
472
501
int Ia_code[CI_BLK_MAX]; /* gives the block's alpha string code */
473
502
int Ib_code[CI_BLK_MAX]; /* gives the block's beta string code */
474
503
int Ia_size[CI_BLK_MAX]; /* num of alp strings in the block */
475
504
int Ib_size[CI_BLK_MAX]; /* num of bet strings in the block */
476
unsigned long offset[CI_BLK_MAX]; /* offset for absolute numbering */
505
BIGINT offset[CI_BLK_MAX]; /* offset for absolute numbering */
477
506
int **decode; /* gives the block number for a given pair
478
507
of alpha and beta codes */
479
508
int num_alp_codes; /* number of alpha codes in decode matrix */