3
\brief Enter brief description of file here
5
/**************************************************
7
init_uhf.c - separate code to initialize UHF
11
**************************************************/
16
#include <libchkpt/chkpt.h>
18
namespace psi { namespace cscf {
25
int degen[20],*num_so;
31
for (i = 1; i < 1024 ; i++) {
32
ioff[i] = ioff[i-1] + i;
35
/* EFV 10/24/98 All requests for file30 should be handled with libfile30
36
but for now I'll use wreadw */
37
num_ir = chkpt_rd_nirreps();
38
num_so = chkpt_rd_sopi();
39
repnuc = chkpt_rd_enuc();
40
irr_labs = chkpt_rd_irr_labs();
42
/* now initialize scf_info */
48
scf_info = (struct symm *) malloc(sizeof(struct symm)*num_ir);
50
/* STB 6/30/99 Initialize structures to hold the information with spin
53
spin_info = (struct spin *) malloc(sizeof(struct spin)*2);
56
for(i=0; i < num_ir; i++) { nn = num_so[i]; if(nn > nsfmax) nsfmax = nn; }
60
spin_info[m].scf_spin =
61
(struct symm *) malloc(sizeof(struct symm)*num_ir);
65
for(i=0; i < num_ir ; i++) {
66
scf_info[i].num_so = nn = num_so[i];
67
/* EFV 10/24/98 degeneracy = 1
68
scf_info[i].degeneracy = degen[i]; */
69
scf_info[i].nclosed = 0;
70
scf_info[i].nopen = 0;
71
scf_info[i].nhalf = 0;
72
scf_info[i].os_num = 0;
75
scf_info[i].irrep_label = irr_labs[i];
76
/* scf_info[i].irrep_label[4] = '\0';*/
83
scf_info[i].smat = init_array(ioff[nn]);
84
scf_info[i].tmat = init_array(ioff[nn]);
85
scf_info[i].hmat = init_array(ioff[nn]);
86
scf_info[i].sahalf = block_matrix(nn,nn);
87
scf_info[i].pinv = block_matrix(nn,nn);
88
scf_info[i].occ_num = init_array(nn);
89
/* STB (6/30/99) - There is no P matrix in UHF only
92
scf_info[i].dpmat = init_array(ioff[nn]);
93
scf_info[i].pmat = init_array(ioff[nn]);
94
scf_info[i].cmat = block_matrix(nn,nn);
95
/* STB(4/1/98) - Added array to store the eigenvalues of the
96
core hamiltonian for mo guessing*/
97
scf_info[i].hevals = init_array(nn);
100
sp->scf_spin[i].irrep_label = scf_info[i].irrep_label;
101
sp->scf_spin[i].dpmat = init_array(ioff[nn]);
102
sp->scf_spin[i].dpmato = NULL;
103
sp->scf_spin[i].pmat = init_array(ioff[nn]);
104
sp->scf_spin[i].pmato = NULL;
105
sp->scf_spin[i].fock_pac = init_array(ioff[nn]);
106
sp->scf_spin[i].gmat = init_array(ioff[nn]);
107
sp->scf_spin[i].gmato = NULL;
108
sp->scf_spin[i].occ_num = init_array(nn);
109
sp->scf_spin[i].fock_evals = init_array(nn);
110
sp->scf_spin[i].cmat = block_matrix(nn,nn);
111
/* TDC(6/19/96) - Added array for saving original MO vector */
112
sp->scf_spin[i].cmat_orig = block_matrix(nn,nn);
113
/* STB(4/1/98) - Added array to store the eigenvalues of the
114
core hamiltonian for mo guessing*/
115
sp->scf_spin[i].hevals = init_array(nn);
116
/* Need separate XC Fock for KS DFT */
118
sp->scf_spin[i].xcmat = init_array(ioff[nn]);
122
/* read in number of atoms and nuclear charges and total number of MO*/
123
natom = chkpt_rd_natom();
124
zvals = chkpt_rd_zvals();
125
nbfso = chkpt_rd_nso();
127
/* Character label for Spin */
128
spin_info[0].spinlabel = "Alpha";
129
spin_info[1].spinlabel = "Beta";
130
/* Initialize arrays to hold energy and symmetry arrays */
131
ener_tot = init_array(nbfso);
132
symm_tot = init_int_array(nbfso);
136
}} // namespace psi::cscf