3
\brief Enter brief description of file here
9
#include<libint/libint.h>
11
#include<libciomr/libciomr.h>
23
if (UserOptions.print_lvl >= PRINT_INTRO) {
25
fprintf(outfile," --------------------------------------------\n");
26
fprintf(outfile," CINTS: An integrals program written in C\n");
27
fprintf(outfile," Justin T. Fermann and Edward F. Valeev\n");
28
fprintf(outfile," --------------------------------------------\n\n");
39
/*----------------------
41
----------------------*/
42
if (UserOptions.print_lvl >= PRINT_OPTIONS) {
43
fprintf(outfile,"\n -OPTIONS:\n");
44
fprintf(outfile," Print level = %d\n",UserOptions.print_lvl);
45
if (UserOptions.restart)
46
fprintf(outfile," Restart = yes\n");
47
fprintf(outfile," Integral tolerance = %1.0e\n",UserOptions.cutoff);
48
fprintf(outfile," Max. memory to use = %ld double words\n",UserOptions.max_memory);
49
fprintf(outfile," Number of threads = %d\n",UserOptions.num_threads);
50
fprintf(outfile," LIBINT's real type length = %d bit\n",sizeof(REALTYPE)*8);
51
fprintf(outfile,"\n -CALCULATION CONSTANTS:\n");
52
fprintf(outfile," Label = %s\n", Molecule.label);
53
fprintf(outfile," Number of atoms = %d\n", Molecule.num_atoms);
54
if (UserOptions.print_lvl >= PRINT_BASIS) {
55
fprintf(outfile," Number of shells = %d\n", BasisSet.num_shells);
56
fprintf(outfile," Number of primitives = %d\n", BasisSet.num_prims);
58
fprintf(outfile," Number of atomic orbitals = %d\n", BasisSet.num_ao);
59
fprintf(outfile," Number of symmetry orbitals = %d\n", Symmetry.num_so);
60
fprintf(outfile," Maximum AM in the basis = %d\n", BasisSet.max_am - 1);
61
if (UserOptions.fine_structure_alpha != 1.0)
62
fprintf(outfile," Fine-structure alpha scaling = %8.4lf\n", UserOptions.fine_structure_alpha);
63
fprintf(outfile,"\n -SYMMETRY INFORMATION;\n");
64
fprintf(outfile," Computational point group = %s\n", Symmetry.symlabel);
65
fprintf(outfile," Number of irreps = %d\n", Symmetry.nirreps);
66
if (UserOptions.print_lvl >= PRINT_BASIS) {
67
fprintf(outfile," Number of symmetry unique shells = %d\n", Symmetry.num_unique_shells);
70
if (UserOptions.print_lvl >= PRINT_GEOMETRY) {
71
fprintf(outfile,"\n -CARTESIAN COORDINATES (a.u.):\n");
72
fprintf(outfile," Nuc. charge X Y Z\n");
73
fprintf(outfile," ------------- ----------------- ----------------- -----------------\n");
75
for(i=0;i<Molecule.num_atoms;i++){
76
fprintf(outfile," %8.3lf ",Molecule.centers[i].Z_nuc);
77
fprintf(outfile," %17.12lf %17.12lf %17.12lf",
78
Molecule.centers[i].x, Molecule.centers[i].y, Molecule.centers[i].z);
79
fprintf(outfile,"\n");
81
fprintf(outfile,"\n");
93
/*---------------------
95
---------------------*/
96
if (UserOptions.print_lvl >= PRINT_BASIS) {
97
fprintf(outfile,"\n -BASIS SET INFORMATION:\n");
98
fprintf(outfile," Prim# Exponent ");
99
for(i=0;i<BasisSet.max_am;i++)
100
fprintf(outfile," Norm. CCoeff. (L=%1d)",i);
101
fprintf(outfile,"\n");
102
fprintf(outfile," ----- --------------");
103
for(i=0;i<BasisSet.max_am;i++)
104
fprintf(outfile," -------------------");
105
fprintf(outfile,"\n");
106
for(i=0;i<BasisSet.num_prims;i++) {
107
fprintf(outfile," %3d %14.7lf",i+1,BasisSet.cgtos[i].exp);
108
for(j=0;j<BasisSet.max_am;j++)
109
fprintf(outfile," %15.10lf ",BasisSet.cgtos[i].ccoeff[j]);
110
fprintf(outfile,"\n");
112
fprintf(outfile,"\n\n");
113
fprintf(outfile," Shell# Nuc# L SPRIM SNUMG\n");
114
fprintf(outfile," ------ ---- - ----- -----\n");
115
for(i=0;i<BasisSet.num_shells;i++)
116
fprintf(outfile," %4d %3d %2d %3d %3d\n",i+1,
117
BasisSet.shells[i].center,BasisSet.shells[i].am-1,
118
BasisSet.shells[i].fprim,BasisSet.shells[i].n_prims);
119
fprintf(outfile,"\n\n");
129
/*--- It's about recurrence relations, well, sort of... ---*/
130
if (UserOptions.print_lvl) {
131
fprintf(outfile," ---------------------------------------------\n");
132
fprintf(outfile," 'I will find a center in you.\n");
133
fprintf(outfile," I will chew it up and leave,\n");
134
fprintf(outfile," I will work to elevate you\n");
135
fprintf(outfile," just enough to bring you down.'\n");
136
fprintf(outfile," 'Sober', Tool\n");
137
fprintf(outfile," ---------------------------------------------\n\n");
146
if (UserOptions.print_lvl >= PRINT_OPDM) {
147
fprintf(outfile," -Total density matrix in AO basis :\n");
148
print_mat(Dens,BasisSet.num_ao,BasisSet.num_ao,outfile);
149
fprintf(outfile,"\n\n");
150
fprintf(outfile," -Energy weighted density matrix in AO basis :\n");
151
print_mat(Lagr,BasisSet.num_ao,BasisSet.num_ao,outfile);
152
fprintf(outfile,"\n\n");
159
/*!----------------------------------------------------
160
May be used to print out gradients and other vector
161
quantities associated with atoms
162
----------------------------------------------------*/
163
void print_atomvec(const char *quantity, double **vecs)
167
fprintf(outfile,"\n -%s:\n",quantity);
168
fprintf(outfile," Atom X Y Z\n");
169
fprintf(outfile," ------ ----------------- ----------------- -----------------\n");
171
for(i=0;i<Molecule.num_atoms;i++){
172
fprintf(outfile," %4d ",i+1);
173
fprintf(outfile," %17.12lf %17.12lf %17.12lf",vecs[i][0], vecs[i][1], vecs[i][2]);
174
fprintf(outfile,"\n");
176
fprintf(outfile,"\n");
181
/*!---------------------------------------------------------
182
May be used to print out Hessian and other square matrix
183
quantities associated with atoms
185
N.B. for now uses print_mat()
186
---------------------------------------------------------*/
187
void print_atommat(const char *quantity, double **mat)
191
fprintf(outfile,"\n -%s:\n",quantity);
193
/* fprintf(outfile," Atom X Y Z\n");
194
fprintf(outfile," ------ ----------------- ----------------- -----------------\n");
196
for(i=0;i<Molecule.num_atoms;i++){
197
fprintf(outfile," %4d ",i+1);
198
fprintf(outfile," %17.12lf %17.12lf %17.12lf",vecs[i][0], vecs[i][1], vecs[i][2]);
199
fprintf(outfile,"\n");
202
print_mat(mat,Molecule.num_atoms*3,Molecule.num_atoms*3,outfile);
203
fprintf(outfile,"\n");
208
void print_moinfo_corr()
212
if (UserOptions.print_lvl >= PRINT_MOINFO_CORR) {
213
fprintf(outfile,"\n -MO information:\n");
214
fprintf(outfile," Number of MOs = %d\n",MOInfo.num_mo);
216
" Label\t# FZDC\t# DOCC\t# SOCC\t# VIRT\t# FZVR\n");
218
" -----\t------\t------\t------\t------\t------\n");
219
for(i=0; i < Symmetry.nirreps; i++) {
221
" %s\t %d\t %d\t %d\t %d\t %d\n",
222
Symmetry.irr_labels[i],MOInfo.frozen_docc[i],
223
MOInfo.clsdpi[i],MOInfo.openpi[i],MOInfo.virtpi[i],
224
MOInfo.frozen_uocc[i]);
226
fprintf(outfile,"\n");