1% 2% $Id$ 3% 4\label{sec:scf} 5 6The NWChem self-consistent field (SCF) module computes closed-shell 7restricted Hartree-Fock (RHF) wavefunctions, restricted high-spin 8open-shell Hartree-Fock (ROHF) wavefunctions, and spin-unrestricted 9Hartree-Fock (UHF) wavefunctions. 10 11The \verb+SCF+ directive provides input to the SCF module and is a 12compound directive that encloses additional directives specific to the 13SCF module: 14\begin{verbatim} 15 SCF 16 ... 17 END 18\end{verbatim} 19 20\section{Wavefunction type} 21 22A spin-restricted, closed shell RHF calculation is performed by 23default. An error results if the number of electrons is inconsistent 24with this assumption. The number of electrons is inferred from the 25total charge on the system and the sum of the effective nuclear 26charges of all centers (atoms and dummy atoms, Section 27\ref{sec:geom}). The total charge on the system is zero by default, 28unless specified at some value by input on the \verb+CHARGE+ directive 29(Section \ref{sec:toplevel}). 30 31The options available to define the SCF wavefunction and multiplicity 32are as follows: 33 34\begin{verbatim} 35 SINGLET 36 DOUBLET 37 TRIPLET 38 QUARTET 39 QUINTET 40 SEXTET 41 SEPTET 42 OCTET 43 NOPEN <integer nopen default 0> 44 RHF 45 ROHF 46 UHF 47\end{verbatim} 48 49The optional keywords \verb+SINGLET+, \verb+DOUBLET+, \ldots, 50\verb+OCTET+ and \verb+NOPEN+ allow the user to specify the number of 51singly occupied orbitals for a particular calculation. \verb+SINGLET+ 52is the default, and specifies a closed shell; \verb+DOUBLET+ specifies 53one singly occupied orbital; \verb+TRIPLET+ specifies two singly 54occupied orbitals; and so forth. If there are more than seven singly 55occupied orbitals, the keyword \verb+NOPEN+ must be used, with the 56integer \verb+nopen+ defining the number of singly occupied 57orbitals (sometimes referred to as open shells). 58 59If the multiplicity is any value other than \verb+SINGLET+, the 60default calculation will be a spin-restricted, high-spin, open-shell 61SCF calculation (keyword ROHF). The open-shell orbitals must be the 62highest occupied orbitals. If necessary, any starting vectors may be 63rearranged through the use of the \verb+SWAP+ keyword on the 64\verb+VECTORS+ directive (see Section \ref{sec:vectors}) to accomplish 65this. 66 67A spin-unrestricted solution can also be performed by specifying the 68keyword \verb+UHF+. In UHF calculations, it is assumed that the 69number of singly occupied orbitals corresponds to the difference 70between the number of alpha-spin and beta-spin orbitals. For example, 71a UHF calculation with 2 more alpha-spin orbitals than beta-spin 72orbitals can be obtained by specifying 73 74\begin{verbatim} 75 scf 76 triplet ; uhf # (Note: two logical lines of input) 77 ... 78 end 79\end{verbatim} 80 81The user should be aware that, by default, molecular orbitals are 82symmetry adapted in NWChem. This may not be desirable for fully 83unrestricted wavefunctions. In such cases, the user has the option of 84defeating the defaults by specifying the keywords \verb+ADAPT OFF+ 85(see Section \ref{sec:adapt}) and \verb+SYM OFF+ (see Section 86\ref{sec:sym}). 87 88The keywords \verb+RHF+ and \verb+ROHF+ are provided in the code for 89completeness. It may be necessary to specify these in order to modify 90the behavior of a previous calculation (see Section \ref{sec:persist} 91for restart behavior). 92 93\section{{\tt SYM} --- use of symmetry} 94\label{sec:sym} 95 96 \begin{verbatim} 97 SYM <string (ON||OFF) default ON> 98 \end{verbatim} 99 100This directive enables/disables the use of symmetry to speed up Fock matrix 101construction (via the petite-list or skeleton algorithm) in the SCF, if 102symmetry was used in the specification of the geometry. Symmetry 103adaptation of the molecular orbitals is not affected by this option. 104The default is to use symmetry if it is specified in the geometry 105directive (Section \ref{sec:geom}). 106 107For example, to disable use of symmetry in Fock matrix construction: 108\begin{verbatim} 109 sym off 110\end{verbatim} 111 112\section{{\tt ADAPT} -- symmetry adaptation of MOs} 113\label{sec:adapt} 114 115\begin{verbatim} 116 ADAPT <string (ON||OFF) default ON> 117\end{verbatim} 118 119The default in the SCF module calculation is to force symmetry 120adaption of the molecular orbitals. This does not affect the speed of 121the calculation, but without explicit adaption the resulting orbitals 122may be symmetry contaminated for some problems. This is especially 123likely if the calculation is started using orbitals from a distorted 124geometry. 125 126The underlying assumption in the use of symmetry in Fock matrix 127construction is that the density is totally symmetric. If the orbitals 128are symmetry contaminated, this assumption may not be valid --- which 129could result in incorrect energies and poor convergence of the 130calculation. It is thus advisable when specifying \verb+ADAPT OFF+ to 131also specify \verb+SYM OFF+ (Section \ref{sec:sym}). 132 133\section{{\tt TOL2E} --- integral screening threshold} 134\label{sec:tol2e} 135 136\begin{verbatim} 137 TOL2E <real tol2e default min(10e-7 , 0.01*$thresh$)> 138\end{verbatim} 139 140The variable \verb+tol2e+ is used in determining the integral 141screening threshold for the evaluation of the energy and related 142Fock-like matrices. The Schwarz inequality is used to screen the 143product of integrals and density matrices in a manner that results in 144an accuracy in the energy and Fock matrices that approximates the 145value specified for \verb+tol2e+. 146 147It is generally not necessary to set this parameter directly. Specify 148instead the required precision in the wavefunction, using the 149\verb+THRESH+ directive (Section \ref{sec:thresh}). The default 150threshold is the minimum of $10^{-7}$ and 0.01 times the requested 151convergence threshold for the SCF calculation (Section 152\ref{sec:thresh}). 153 154The input to specify the threshold explicitly within the \verb+SCF+ 155directive is, for example: 156 157\begin{verbatim} 158 tol2e 1e-9 159\end{verbatim} 160 161For very diffuse basis sets, or for high-accuracy calculations it 162might be necessary to set this parameter. A value of $10^{-12}$ is 163sufficient for nearly all such purposes. 164 165\section{{\tt VECTORS} --- input/output of MO vectors} 166\label{sec:vectors} 167 168 169\begin{verbatim} 170 VECTORS [[input] (<string input_movecs default atomic>) || \ 171 (project <string basisname> <string filename>) || \ 172 (fragment <string file1> [<string file2> ...])] \ 173 [swap [alpha||beta] <integer vec1 vec2> ...] \ 174 [reorder <integer atom1 atom2> ...] \ 175 [output <string output_filename default input_movecs>] \ 176 [lock] 177 [rotate <string input_geometry> <string input_movecs>] 178\end{verbatim} 179 180The \verb+VECTORS+ directive allows the user to specify the source and 181destination of the molecular orbital vectors. In a startup 182calculation (see Section \ref{sec:start}), the default source for 183guess vectors is a diagonalized Fock matrix constructed from a 184superposition of the atomic density matrices for the particular 185problem. This is usually a very good guess. For a restarted 186calculation, the default is to use the previous MO vectors. 187 188The optional keyword \verb+INPUT+ allows the user to specify the 189source of the input molecular orbital vectors as any of the following: 190\begin{itemize} 191\item \verb+ATOMIC+ --- eigenvectors of a Fock-like matrix formed from 192 a superposition of the atomic densities (the default guess). See 193 Sections \ref{sec:atomscf} and \ref{sec:tolguess}. 194\item \verb+HCORE+ --- eigenvectors of the bare-nucleus Hamiltonian or 195 the one-electron Hamiltonian. 196\item \verb+filename+ --- the name of a file containing the MO vectors 197 from a previous calculation. Note that unless the path is fully 198 qualified, or begins with a dot (``.''), then it is assumed to 199 reside in the directory for permanent files (see Section 200 \ref{sec:dirs}). 201\item \verb+PROJECT basisname filename+ --- projects the existing MO 202 vectors in the file \verb+filename+ from the smaller basis with name 203 \verb+basisname+ into the current basis. The definition of the 204 basis \verb+basisname+ must be available in the current database, 205 and the basis must be smaller than the current basis. In addition, 206 the geometry used for the previous calculations must have the atoms 207 in the same order and in the same orientation as the current 208 geometry. 209\item \verb+FRAGMENT file1 ...+ --- assembles starting MO vectors from 210 previously performed calculations on fragments of the system and is 211 described in more detail in Section \ref{sec:fragguess}. Even 212 though there are some significant restrictions in the use of the 213 initial implementation of this method (see Section 214 \ref{sec:fragguess}), this is the most powerful initial guess option 215 within the code. It is particularly indispensable for open shell 216 metallic systems. 217\item \verb+ROTATE input_geometry input_movecs+ --- rotates 218 MO vectors generated at a previous geometry 219 to the current active geometry. 220\end{itemize} 221 222The molecular orbitals are saved every iteration if more than 600 223seconds have elapsed, and also at the end of the calculation. At 224completion (converged or not), the SCF module always canonically 225transforms the molecular orbitals by {\em separately} diagonalizing 226the closed--closed, open--open, and virtual--virtual blocks of the 227Fock matrix. 228 229The name of the file used to store the MO vectors is determined as 230follows: 231\begin{itemize} 232\item if the \verb+OUTPUT+ keyword was specified on the \verb+VECTORS+ 233 directive, then the filename that follows this keyword is used, or 234\item if the input vectors were read from a file, this file is reused 235 for the output vectors (overwriting the input vectors); else, 236\item a default file name is generated in the directory for permanent 237 files (Section \ref{sec:dirs}) by prepending \verb+".movecs"+ with 238 the file prefix, i.e., \verb+"<file_prefix>.movecs"+. 239\end{itemize} 240The name of this file is stored in the database so that a subsequent 241SCF calculation will automatically restart from these MO vectors. 242 243Applications of this directive are illustrated in the following 244examples. 245 246Example 1: 247\begin{verbatim} 248 vectors output h2o.movecs 249\end{verbatim} 250Assuming a start-up calculation, this directive will result in use of 251the default atomic density guess, and will output the vectors to the 252file \verb+h2o.movecs+. 253 254Example 2: 255\begin{verbatim} 256 vectors input initial.movecs output final.movecs 257\end{verbatim} 258This directive will result in the initial vectors being read from the 259file \verb+"initial.movecs"+. The results will be written to the file 260\verb+final.movecs+. The contents of \verb+"initial.movecs"+ will not 261be changed. 262 263Example 3: 264\begin{verbatim} 265 vectors input project "small basis" small.movecs 266\end{verbatim} 267This directive will cause the calculation to start from vectors in the 268file \verb+"small.movecs"+ which are in a basis named \verb+"small basis"+. 269The output vectors will be written to the default file 270\verb+"<file_prefix.movecs>"+. 271 272Once starting vectors have been obtained using any of the possible 273options, they may be reordered through use of the \verb+SWAP+ keyword. 274This optional keyword requires a list of orbital pairs that will be 275swapped. For UHF calculations, separate \verb+SWAP+ keywords may be 276provided for the alpha and beta orbitals, as necessary. 277 278An example of use of the \verb+SWAP+ directive: 279\begin{verbatim} 280 vectors input try1.movecs swap 173 175 174 176 output try2.movecs 281\end{verbatim} 282This directive will cause the initial orbitals to be read from the 283file \verb+"try1.movecs"+. The vectors for the orbitals within the 284pairs 173--175 will be swapped with those within 174--176, so the 285resulting order is 175, 176, 173, 174. The final orbitals obtained in 286the calculation will be written to the file \verb+"try2.movecs"+. 287 288The swapping of orbitals occurs as a sequential process in the order 289(left to right) input by the user. Thus, regarding each pair as an 290elementary transposition it is possible to construct arbitrary 291permutations of the orbitals. For instance, to apply the permutation 292$(6 7 8 9)$\footnote{The cyclic permutation $(6 7 8 9)$ maps the 293 ordered list {\tt 6 7 8 9} into {\tt 9 6 7 8}.} we note that this 294permutation is equal to $(6 7)(7 8)(8 9)$, and thus may be specified 295as 296\begin{verbatim} 297 vectors swap 8 9 7 8 6 7 298\end{verbatim} 299 300Another example, now illustrating this feature for a UHF calculation, 301is the directive 302\begin{verbatim} 303 vectors swap beta 4 5 swap alpha 5 6 304\end{verbatim} 305This input will result in the swapping of the 5--6 alpha orbital pair 306and the 4--5 beta orbital pair. (All other items in the input use the 307default values.) 308 309The \verb+LOCK+ keyword allows the user to specify that the ordering 310of orbitals will be locked to that of the initial vectors, insofar as 311possible. The default is to order by ascending orbital energies within 312each orbital space. One application where locking might be desirable 313is a calculation where it is necessary to preserve the ordering of a 314previous geometry, despite flipping of the orbital energies. For such 315a case, the \verb+LOCK+ directive can be used to prevent the SCF 316calculation from changing the ordering, even if the orbital energies 317change. 318 319The mapping of the MO's to the nuclei can be changed using the \verb+REORDER+ keyword. 320Once starting vectors have been obtained using any of the possible 321options, the \verb+REORDER+ keyword moves the MO coefficients between atoms 322listed in the integer list. This keyword is particularly useful for calculating localized 323electron and hole states. 324 325This optional keyword requires a list containing the new atom ordering. 326It is not necessary to provide separate lists for alpha and 327beta orbitals. 328 329An example of use of the \verb+REORDER+ keyword: 330\begin{verbatim} 331 vectors input try1.movecs reorder 2 1 output try2.movecs 332\end{verbatim} 333This directive will cause the initial orbitals to be read from the 334file \verb+"try1.movecs"+. The MO coefficients for the basis functions 335on atom 2 336will be swapped with those on atom 1. 337The final orbitals obtained in 338the calculation will be written to the file \verb+"try2.movecs"+. 339 340The following example shows how the \verb+ROTATE+ keyword can be used to rotate 341MO vectors calculated at geometry \verb+geom1+ to geometry \verb+geom2+, which has a 342different rotational orientation: 343 344\begin{verbatim} 345set geometry geom1 346dft 347 vectors input atomic output geom1.mo 348end 349task dft 350 351set geometry geom2 352dft 353 vectors input rotate geom1 geom1.mo output geom2.mo 354end 355task dft 356 357\end{verbatim} 358\subsection{Superposition of fragment molecular orbitals} 359\label{sec:fragguess} 360 361The fragment initial guess is particularly useful in the following 362instances: 363\begin{itemize} 364\item The system naturally decomposes into molecules that can be 365 treated individually, e.g., a cluster. 366\item One or more fragments are particularly hard to converge and 367 therefore much time can be saved by converging them independently. 368\item A fragment (e.g., a metal atom) must be prepared with a specific 369 occupation. This can often be readily accomplished with a 370 calculation on the fragment using dummy charges to model a ligand 371 field. 372\item The molecular occupation predicted by the atomic initial guess 373 is often wrong for systems with heavy metals which may have 374 partially occupied orbitals with lower energy than some doubly 375 occupied orbitals. The fragment initial guess avoids this problem. 376\end{itemize} 377 378\begin{verbatim} 379 VECTORS [input] fragment <string file1> [<string file2> ...] 380\end{verbatim} 381The molecular orbitals are formed by superimposing the previously 382generated orbitals of fragments of the molecule being studied. These 383fragment molecular orbitals must be in the same basis as the current 384calculation. The input specifies the files containing the fragment 385molecular orbitals. For instance, in a calculation on the water 386dimer, one might specify 387\begin{verbatim} 388 vectors fragment h2o1.movecs h2o2.movecs 389\end{verbatim} 390where \verb+h2o1.movecs+ contains the orbitals for the first fragment, and 391\verb+h2o2.movecs+ contains the orbitals for the second fragment. 392 393A complete example of the input for a calculation on the water 394dimer using the fragment guess is as follows: 395\begin{verbatim} 396 start dimer 397 398 title "Water dimer SCF using fragment initial guess" 399 400 geometry dimer 401 O -0.595 1.165 -0.048 402 H 0.110 1.812 -0.170 403 H -1.452 1.598 -0.154 404 O 0.724 -1.284 0.034 405 H 0.175 -2.013 0.348 406 H 0.177 -0.480 0.010 407 end 408 409 geometry h2o1 410 O -0.595 1.165 -0.048 411 H 0.110 1.812 -0.170 412 H -1.452 1.598 -0.154 413 end 414 415 geometry h2o2 416 O 0.724 -1.284 0.034 417 H 0.175 -2.013 0.348 418 H 0.177 -0.480 0.010 419 end 420 421 basis 422 o library 3-21g 423 h library 3-21g 424 end 425 426 set geometry h2o1 427 scf; vectors input atomic output h2o1.movecs; end 428 task scf 429 430 set geometry h2o2 431 scf; vectors input atomic output h2o2.movecs; end 432 task scf 433 434 set geometry dimer 435 scf 436 vectors input fragment h2o1.movecs h2o2.movecs \ 437 output dimer.movecs 438 end 439 task scf 440\end{verbatim} 441First, the geometry of the dimer and the two monomers are specified 442and given names. Then, after the basis specification, calculations 443are performed on the fragments by setting the geometry to the 444appropriate fragment (Section \ref{sec:set}) and redirecting the 445output molecular orbitals to an appropriately named file. Note also 446that use of the atomic initial guess is forced, since the default 447initial guess is to use any existing MOs which would not be 448appropriate for the second fragment calculation. Finally, the dimer 449calculation is performed by specifying the dimer geometry, indicating 450use of the fragment guess, and redirecting the output MOs. 451 452The following points are important in using the fragment initial guess: 453\begin{enumerate} 454\item The fragment calculations must be in the same basis set as the 455 full calculation. 456\item The order of atoms in the fragments and the order in which the 457 fragment files are specified must be such that when the fragment 458 basis sets are concatenated all the basis functions are in the same 459 order as in the full system. This is readily accomplished by first 460 generating the full geometry with atoms for each fragment 461 contiguous, splitting this into numbered fragments and specifying 462 the fragment MO files in the correct order on the \verb+VECTORS+ 463 directive. 464\item The occupation of orbitals is preserved when they are merged 465 from the fragments to the full molecule and the resulting occupation 466 must match the requested occupation for the full molecule. E.g., a 467 triplet ROHF calculation must be comprised of fragments that have 468 a total of exactly two open-shell orbitals. 469\item Because of these restrictions, it is not possible to introduce 470 additional atoms (or basis functions) into fragments for the purpose 471 of cleanly breaking real bonds. However, it is possible, and highly 472 recommended, to introduce additional point charges to simulate the 473 presence of other fragments. 474\item MO vectors of partially occupied or strongly polarized systems 475 are very sensitive to orientation. While it is possible to specify 476 the same fragment MO vector file multiple times in the 477 \verb+VECTORS+ directive, it is usually much better to do a separate 478 calculation for each fragment. 479\item Linear dependencies which were present in a fragment calculation 480 may be magnified in the full calculation. When this occurs, 481 some of the fragment's highest virtual orbitals will not be copied to the 482 full system, and a warning will be printed. 483 484\end{enumerate} 485 486A more involved example is now presented. We wish to model the sextet 487state of Fe(III) complexed with water, imidazole and a heme with a net 488unit positive charge. The default atomic guess does not give the 489correct $d^5$ occupation for the metal and also gives an incorrect 490state for the double anion of the heme. The following performs 491calculations on all of the fragments. Things to note are: 492\begin{enumerate} 493\item The use 494of a dummy $+2$ charge in the initial guess on the heme which in part 495simulates the presence of the metal ion, and also automatically forces 496an additional two electrons to be added to the system (the default net 497charge being zero). 498\item The iron fragment calculation (charge +3, $d^5$, sextet) will 499 yield the correct open-shell occupation for the full system. If, 500 instead, the {\it d}-orbitals were partially occupied (e.g., the doublet 501 state) it would be useful to introduce dummy charges around the iron 502 to model the ligand field and thereby lift the degeneracy to obtain 503 the correct occupation. 504\item $C_s$ symmetry is used for all of the calculations. It is not 505 necessary that the same symmetry be used in all of the 506 calculations, provided that the order and orientation of the atoms 507 is preserved. 508\item The \verb+unset scf:*+ directive is used immediately before 509 the calculation on the full system so that the default name for the 510 output MO vector file can be used, rather than having to specify it 511 explicitly. 512\end{enumerate} 513\begin{verbatim} 514start heme6a1 515title "heme-H2O (6A1) from M.Dupuis" 516 517############################################################ 518# Define the geometry of the full system and the fragments # 519############################################################ 520 521geometry full-system 522 symmetry cs 523 524 H 0.438 -0.002 4.549 525 C 0.443 -0.001 3.457 526 C 0.451 -1.251 2.828 527 C 0.452 1.250 2.828 528 H 0.455 2.652 4.586 529 H 0.461 -2.649 4.586 530 N1 0.455 -1.461 1.441 531 N1 0.458 1.458 1.443 532 C 0.460 2.530 3.505 533 C 0.462 -2.530 3.506 534 C 0.478 2.844 1.249 535 C 0.478 3.510 2.534 536 C 0.478 -2.848 1.248 537 C 0.480 -3.513 2.536 538 C 0.484 3.480 0.000 539 C 0.485 -3.484 0.000 540 H 0.489 4.590 2.664 541 H 0.496 -4.592 2.669 542 543 H 0.498 4.573 0.000 544 H 0.503 -4.577 0.000 545 H -4.925 1.235 0.000 546 H -4.729 -1.338 0.000 547 C -3.987 0.685 0.000 548 N -3.930 -0.703 0.000 549 C -2.678 1.111 0.000 550 C -2.622 -1.076 0.000 551 H -2.284 2.126 0.000 552 H -2.277 -2.108 0.000 553 N -1.838 0.007 0.000 554 555 Fe 0.307 0.000 0.000 556 557 O 2.673 -0.009 0.000 558 H 3.238 -0.804 0.000 559 H 3.254 0.777 0.000 560end 561 562geometry ring-only 563 symmetry cs 564 H 0.438 -0.002 4.549 565 C 0.443 -0.001 3.457 566 C 0.451 -1.251 2.828 567 C 0.452 1.250 2.828 568 H 0.455 2.652 4.586 569 H 0.461 -2.649 4.586 570 N1 0.455 -1.461 1.441 571 N1 0.458 1.458 1.443 572 C 0.460 2.530 3.505 573 C 0.462 -2.530 3.506 574 C 0.478 2.844 1.249 575 C 0.478 3.510 2.534 576 C 0.478 -2.848 1.248 577 C 0.480 -3.513 2.536 578 C 0.484 3.480 0.000 579 C 0.485 -3.484 0.000 580 H 0.489 4.590 2.664 581 H 0.496 -4.592 2.669 582 583 Bq 0.307 0.0 0.0 charge 2 # simulate the iron 584end 585 586geometry imid-only 587 symmetry cs 588 H 0.498 4.573 0.000 589 H 0.503 -4.577 0.000 590 H -4.925 1.235 0.000 591 H -4.729 -1.338 0.000 592 C -3.987 0.685 0.000 593 N -3.930 -0.703 0.000 594 C -2.678 1.111 0.000 595 C -2.622 -1.076 0.000 596 H -2.284 2.126 0.000 597 H -2.277 -2.108 0.000 598 N -1.838 0.007 0.000 599end 600 601geometry fe-only 602 symmetry cs 603 Fe .307 0.000 0.000 604end 605 606geometry water-only 607 symmetry cs 608 O 2.673 -0.009 0.000 609 H 3.238 -0.804 0.000 610 H 3.254 0.777 0.000 611end 612 613############################ 614# Basis set for everything # 615############################ 616 617basis nosegment 618 O library 6-31g* 619 N library 6-31g* 620 C library 6-31g* 621 H library 6-31g* 622 Fe library "Ahlrichs pVDZ" 623end 624 625########################################################## 626# SCF on the fragments for initial guess for full system # 627########################################################## 628 629scf; thresh 1e-2; end 630 631set geometry ring-only 632scf; vectors atomic swap 80 81 output ring.mo; end 633task scf 634 635set geometry water-only 636scf; vectors atomic output water.mo; end 637task scf 638 639set geometry imid-only 640scf; vectors atomic output imid.mo; end 641task scf 642 643charge 3 644set geometry fe-only 645scf; sextet; vectors atomic output fe.mo; end 646task scf 647 648########################## 649# SCF on the full system # 650########################## 651 652unset scf:* # This restores the defaults 653 654charge 1 655 656set geometry full-system 657 658scf 659 sextet 660 vectors fragment ring.mo imid.mo fe.mo water.mo 661 maxiter 50 662end 663 664task scf 665\end{verbatim} 666 667\subsection{Atomic guess orbitals with charged atoms} 668\label{sec:atomscf} 669 670As noted above, the default guess vectors are based on superimposing 671the density matrices of the neutral atoms. If some atoms are 672significantly charged, this default guess may be improved upon by 673modifying the atomic densities. This is done by setting parameters 674that add fractional charges to the occupation of the valence atomic 675orbitals. Since the atomic SCF program does not have its own input 676block, the \verb+SET+ directive (Section \ref{sec:set}) must be used 677to set these parameters. 678 679The input specifies a list of tags (i.e., names of atoms in a 680geometry, see Section \ref{sec:geom}) and the charges to be added to 681those centers. Two parameters must be set as follows: 682\begin{verbatim} 683 set atomscf:tags_z <string list_of_tags> 684 set atomscf:z <real list_of_charges> 685\end{verbatim} 686 687\sloppy 688 689The array of strings \verb+atomscf:tags_z+ should be set to the list 690of tags, and the array \verb+atomscf:z+ should be set to the list of 691charges which must be real numbers (not integers). All atoms that 692have a tag specified in the list of tags will be assigned the 693corresponding charge from the list of charges. 694 695\fussy 696 697For example, the following specifies that all oxygen atoms with tag 698\verb+O+ be assigned a charge of \verb+-1+ and all iron atoms with tag 699\verb+Fe+ be assigned a charge of \verb=+2= 700\begin{verbatim} 701 set atomscf:z -1 2.0 702 set atomscf:tags_z O Fe 703\end{verbatim} 704 705There are some limitations to this feature. It is not possible to add 706electrons to closed shell atoms, nor is it possible to remove all 707electrons from a given atom. Attempts to do so will cause the code to 708report an error, and it will not report further errors in the input 709for modifying the charge even when they are detected. 710 711Finally, recall that the database is persistent (Section 712\ref{sec:persist}) and that the modified settings will be used in 713subsequent atomic guess calculations unless the data is deleted from 714the database with the \verb+UNSET+ directive (Section 715\ref{sec:unset}). 716 717\section{Accuracy of initial guess} 718\label{sec:tolguess} 719 720For SCF, the initial Fock-matrix construction from the atomic guess is 721now (staring from version 3.3) performed to a default precision of 7221e-7. However, other wavefunctions, notably DFT, use a lower 723precision. In charged, or diffuse basis sets, this precision may not 724be sufficient and could result in incorrect ordering of the initial 725orbitals. The accuracy may be increased with the following directive 726which should be inserted in the top-level of input (i.e., outside of 727the SCF input block) and before the {\tt TASK} directive. 728\begin{verbatim} 729 set tolguess 1e-7 730\end{verbatim} 731 732\section{{\tt THRESH} --- convergence threshold} 733\label{sec:thresh} 734 735\begin{verbatim} 736 THRESH <real thresh default 1.0e-4> 737\end{verbatim} 738 739This directive specifies the convergence threshold for the 740calculation. The convergence threshold is the norm of the orbital 741gradient, and has a default value in the code of $10^{-4}$. 742 743The norm of the orbital gradient corresponds roughly to the precision 744available in the wavefunction, and the energy should be converged to 745approximately the square of this number. It should be noted, however, 746that the precision in the energy will not exceed that of the integral 747screening tolerance. This tolerance (Section \ref{sec:tol2e}) is 748automatically set from the convergence threshold, so that sufficient 749precision is usually available by default. 750 751The default convergence threshold suffices for most SCF energy and 752geometry optimization calculations, providing about 6--8 decimal 753places in the energy, and about four significant figures in the 754density and energy derivative with respect to nuclear coordinates. 755However, greater precision may be required for calculations involving 756weakly interacting systems, floppy molecules, finite-difference of 757gradients to compute the Hessian, and for post-Hartree-Fock 758calculations. A threshold of $10^{-6}$ is adequate for most such 759purposes, and a threshold of $10^{-8}$ might be necessary for very 760high accuracy or very weak interactions. A threshold of $10^{-10}$ 761should be regarded as the best that can be attained in most 762circumstances. 763 764\section{{\tt MAXITER} --- iteration limit} 765\label{sec:max} 766 767\begin{verbatim} 768 MAXITER <integer maxiter default 8> 769\end{verbatim} 770 771\sloppy 772 773The maximum number of iterations for the SCF calculation defaults to 77420 for both ROHF/RHF and UHF calculations. For most molecules, this 775number of iterations is more than sufficient for the quadratically 776convergent SCF algorithm to obtain a solution converged to the default 777threshold (see Section \ref{sec:thresh} above). If the SCF program 778detects that the quad\-ratically con\-ver\-gent algorithm is not 779efficient, then it will resort to a lin\-early con\-ver\-gent 780algorithm and increase the maximum number of iterations by 10. 781 782\fussy 783 784Convergence may not be reached in the maximum number of iterations for 785many reasons, including input error (e.g., an incorrect geometry or a 786linearly dependent basis), a very low convergence threshold, a poor 787initial guess, or the fact that the system is intrinsically hard to 788converge due to the presence of many states with similar energies. 789 790The following sets the maximum number of SCF iterations to 50: 791\begin{verbatim} 792 maxiter 50 793\end{verbatim} 794 795\section{{\tt PROFILE} --- performance profile} 796 797This directive allows the user to obtain timing and parallel 798execution information about the SCF module. It is specified by the 799simple keyword 800 801\begin{verbatim} 802 PROFILE 803\end{verbatim} 804 805This option can be helpful in understanding the computational 806performance of an SCF calculation. However, 807it can introduce a significant overhead 808on machines that have expensive timing routines, such as the SUN. 809 810\section{{\tt DIIS} --- DIIS convergence} 811 812This directive allows the user to specify DIIS convergence rather than 813second-order convergence for the SCF calculation. The form of the 814directive is as follows: 815 816\begin{verbatim} 817 DIIS 818\end{verbatim} 819 820The implementation of this option is currently fairly rudimentary. It 821does not have level-shifting and damping, and does not support open 822shells or UHF. It is provided on an ``as is'' basis, and should be 823used with caution. 824 825When the \verb+DIIS+ directive is specified in the input, the user has 826the additional option of specifying the size of the subspace for the 827DIIS extrapolation. This is accomplished with the \verb+DIISBAS+ 828directive, which is of the form: 829\begin{verbatim} 830 DIISBAS <integer diisbas default 5> 831\end{verbatim} 832The default of 5 should be adequate for most applications, but may be 833increased if convergence is poor. On large systems, it may be necessary 834to specify a lower value for \verb+diisbas+, to conserve memory. 835 836\section{{\tt DIRECT} and {\tt SEMIDIRECT} --- recomputation of integrals} 837\label{sec:semidirect} 838 839In the context of SCF calculations direct means that all integrals are 840recomputed as required and none are stored. The other extreme are 841disk- or memory-resident (sometimes termed conventional) calculations 842in which all integrals are computed once and stored. Semi-direct 843calculations are between these two extremes with some integrals being 844precomputed and stored, and all other integrals being recomputed as 845necessary. 846 847The default behavior of the SCF module is 848\begin{itemize} 849\item If enough memory is available, the integrals are computed once 850 and are cached in memory. 851\item If there is not enough memory to store all the integrals at 852 once, then 95\% of the available disk space in the scratch directory 853 (see Section \ref{sec:dirs}) is assumed to be available for this 854 purpose, and as many integrals as possible are cached on disk (with 855 no memory being used for caching). Some attempt is made to store 856 the most expensive integrals in the cache. 857 \item If there is not enough room in memory or on disk for all the 858 integrals, then the ones that are not cached are recomputed in a 859 semidirect fashion. 860\end{itemize} 861 862The integral file is deleted at the end of a calculation, so it is not 863possible to restart a semidirect calculation when the integrals are 864cached in memory or on disk. Many computer systems (e.g., the EMSL 865IBM SP) clear the fast scratch space at the end of each job, adding a 866further complication to the problem of restarting a {\em parallel} 867semidirect calculation. 868 869%Under some situations, it is possible to 870%restart from integrals on disk, but this capability will not be made 871%widely available until a later date. 872 873On the IBM SP or any other computer with fast disks local to each 874processor, semidirect calculation offers the best behavior. It can 875result in {\em quadratic speedup} as more processors are added. 876 877A fully direct calculation (with recomputation of the integrals at 878each iteration) is forced by specifying the directive 879 880\begin{verbatim} 881 DIRECT 882\end{verbatim} 883 884Alternatively, the \verb+SEMIDIRECT+ directive can be used to control 885the default semidirect calculation by defining the amount of disk 886space and the cache memory size. The form of this directive is as 887follows: 888 889\begin{verbatim} 890 SEMIDIRECT [filesize <integer filesize default disksize>] 891 [memsize <integer memsize default available>] 892 [filename <string filename default $file_prefix.aoints$>] 893\end{verbatim} 894 895The keyword \verb+FILESIZE+ allows the user to specify the amount of 896disk space to be used per process for storing the integrals in 64-bit 897words. Similarly, the keyword \verb+MEMSIZE+ allows the user to 898specify the number of 64-bit words to be used per process for caching 899integrals in memory. (Note: If the amount of storage space specified 900by the entry for \verb+memsize+ is not available, the code cuts the 901value in half and checks again for available space. This process is 902repeated until the request is satisfied.) 903 904By default, the integral files are placed into the scratch directory 905(see Section \ref{sec:dirs}). Specifying the keyword \verb+FILENAME+ 906overrides this default. The user-specified name entered in the string 907\verb+filename+ has the process number appended to it, so that each 908process has a distinct file but with a common base-name and directory. 909Therefore, it is not possible to use this keyword to specify different 910disks for different processes. The \verb+SCRATCH_DIR+ directive (see 911Section \ref{sec:dirs}) can be used for this purpose. 912 913For example, to force full recomputation of all integrals: 914\begin{verbatim} 915 direct 916\end{verbatim} 917 918Exactly the same result could be obtained by entering the directive: 919\begin{verbatim} 920 semidirect filesize 0 memsize 0 921\end{verbatim} 922 923To disable the use of memory for caching integrals and limit disk 924usage by each process to 100 megawords (MW): 925\begin{verbatim} 926 semidirect memsize 0 filesize 100000000 927\end{verbatim} 928 929The integral records are typically 32769 words long and any non-zero 930value for \verb+filesize+ or \verb+memsize+ should be enough to hold 931at least one record. 932 933 934\subsection{Integral File Size and Format for the SCF Module} 935 936The file format is rather complex, since it accommodates a variety of 937packing and compression options and the distribution of data. This 938section presents some information that may help the user understand 939the output, and illustrates how to use the output information to 940estimate file sizes. 941 942If integrals are stored with a threshold of greater than $10^{-10}$, 943then the integrals are stored in a 32-bit fixed-point format (with 944appropriate treatment for large values to retain precision). If 945integrals are stored with a threshold less than $10^{-10}$, however, 946the values are stored in 64-bit floating-point format. If a 947replicated-data calculation is being run, then 8 bits are used for 948each basis function label, unless there are more than 256 functions, 949in which case 16 bits are used. If distributed data is being used, 950then the labels are always packed to 8 bits (the distributed blocks 951always being less than 256; labels are relative to the start of the 952block). 953 954Thus, the number ($W$) of 64-bit words required to store $N$ 955integrals, may be computed as 956\begin{displaymath} 957 W = \left\{ \\ 958 \begin{array}{c} 959 N \mbox{ , 8-bit labels and 32-bit values} \\ 960 \frac{3}{2}N \mbox{ , 16-bit labels and 32-bit values} \\ 961 \frac{3}{2}N \mbox{ , 8-bit labels and 64-bit values} \\ 962 2N \mbox{ , 16-bit labels and 64-bit values} 963 \end{array} 964 \right. 965\end{displaymath} 966 967The actual number of words required can 968exceed this computed value by up to one percent, due to 969bookkeeping overhead, and because the file itself is 970organized into fixed-size records. 971 972With at least the default print level, all semidirect (not direct) 973calculations will print out information about the integral file and 974the number of integrals computed. The form of this output is as 975follows: 976 977\begin{verbatim} 978 Integral file = ./c6h6.aoints.0 979 Record size in doubles = 32769 No. of integs per rec = 32768 980 Max. records in memory = 3 Max. records in file = 5 981 No. of bits per label = 8 No. of bits per value = 32 982 983 #quartets = 2.0D+04 #integrals = 7.9D+05 direct = 63.6% cached = 36.4% 984\end{verbatim} 985 986The file information above relates only to process 0. The line of 987information about the number of quartets, integrals, etc., is a sum 988over all processes. 989 990When the integral file is closed, additional information of the following 991form is printed: 992 993\begin{verbatim} 994------------------------------------------------------------ 995EAF file 0: "./c6h6.aoints.0" size=262152 bytes 996------------------------------------------------------------ 997 write read awrite aread wait 998 ----- ---- ------ ----- ---- 999 calls: 6 12 0 0 0 1000 data(b): 1.57e+06 3.15e+06 0.00e+00 0.00e+00 1001 time(s): 1.09e-01 3.12e-02 0.00e+00 1002rate(mb/s): 1.44e+01 1.01e+02 1003------------------------------------------------------------ 1004 1005 Parallel integral file used 4 records with 0 large values 1006\end{verbatim} 1007Again, the detailed file information relates just to process 0, but 1008the final line indicates the total number of integral records stored 1009by all processes. 1010 1011This information may be used to optimize subsequent calculations, for 1012instance by assigning more memory or disk space. 1013 1014\section{SCF Convergence Control Options} 1015\label{sec:scfconv} 1016 1017{\em Note to users:} It is desired that the SCF program converge 1018reliably with the default options for a wide variety of molecules. In 1019addition, it should be guaranteed to converge for any system, with 1020sufficient iterations. Please report significant convergence problems 1021to \verb+nwchem+-\verb+support@+\-\verb+emsl.pnl.gov+, and include the 1022input file. 1023 1024% An understanding of the output of the SCF program and the options 1025% controlling convergence requires some knowledge of the convergence 1026% scheme. 1027 1028The SCF program uses a preconditioned conjugate gradient (PCG) method 1029that is unconditionally convergent. Basically, a search direction is 1030generated by multiplying the orbital gradient (the derivative of the 1031energy with respect to the orbital rotations) by an approximation to 1032the inverse of the level-shifted orbital Hessian. In the initial 1033iterations (see Section \ref{sec:nrswitch}), an inexpensive 1034one-electron approximation to the inverse orbital Hessian is used. 1035Closer to convergence, the full orbital Hessian is used, which should 1036provide quadratic convergence. For both the full or one-electron 1037orbital Hessians, the inverse-Hessian matrix-vector product is formed 1038iteratively. Subsequently, an approximate line search is performed 1039along the new search direction. If the exact Hessian is being 1040employed, then the line search should require a single step (of 1041unity). Preconditioning with approximate Hessians may require 1042additional steps, especially in the initial iterations. It is the 1043(approximate) line search that provides the convergence guarantee. 1044The iterations required to solve the linear equations are referred to 1045as micro-iterations. A macro-iteration comprises both the iterative 1046solution and a line search. 1047 1048Level-shifting plays the same role in this algorithm as 1049it does in the conventional iterative solution of the SCF equations. 1050The approximate Hessian used for preconditioning should be positive 1051definite. If this is not the case, then level-shifting by a positive 1052constant ($\Delta$) serves to make the preconditioning matrix positive 1053definite, by adding $\Delta$ to all of its eigenvalues. The 1054level-shifts employed for the RHF orbital Hessian should be 1055approximately four times (only twice for UHF) the value that one would 1056employ in a conventional SCF\footnote{This can be seen by considering 1057 a one-electron approximation to the closed-shell RHF Hessian in 1058 canonical orbitals, $A_{ia,jb} = 4 \delta_{ij} \delta_{ab} 1059 (\epsilon_a - \epsilon_i)$. Similarly, the level shift 1060 should be twice as large for UHF.}. Level-shifting is automatically enabled 1061in the early iterations, and the default options suffice for most test 1062cases. 1063 1064So why do things go wrong and what can be done to fix convergence 1065problems? Most problems encountered so far arise either poor initial 1066guesses or from small or negative eigenvalues of the orbital Hessian. 1067The atomic orbital guess is usually very good. However, in 1068calculations on charged systems, especially with open shells, 1069incorrect initial occupations may result. The SCF might then converge 1070very slowly since very large orbital rotations might be required to 1071achieve the correct occupation or move charge large distances in the 1072molecule. Possible actions are 1073\begin{itemize} 1074\item Modify the atomic guess by assigning charges to the atoms 1075 known to carry substantial charges (Section \ref{sec:atomscf}) 1076\item Examining an analysis of the initial orbitals (Section 1077 \ref{sec:scfprint}) and then swapping them to attain the desired 1078 occupation (Section \ref{sec:vectors}). 1079\item Converging the calculation in a minimal basis set, which is 1080 usually easier, and then projecting into a larger basis set (Section 1081 \ref{sec:vectors}). 1082\item Using the fragment orbital initial guess (Section 1083 \ref{sec:fragguess}). 1084\end{itemize} 1085 1086Small or negative Hessian eigenvalues can occur even though the 1087calculation seem to be close to convergence (as measured by the 1088gradient norm, or the off-diagonal Fock matrix elements). Small 1089eigenvalues will cause the iterative linear equation solver to 1090converge slowly, resulting in an excessive number of micro-iterations. 1091This makes the SCF expensive in terms of computation time, and it is 1092possible to exceed the maximum number of iterations without achieving 1093the accuracy required for quadratic convergence --- which causes more 1094macro-iterations to be performed. 1095 1096Two main options are available when a problem will not converge: 1097Newton-Raphson can be disabled temporarily or permanently (see Section 1098\ref{sec:nrswitch}), and level-shifting can be applied to the matrix 1099(see Section \ref{sec:level}). In some cases, both options may be 1100necessary to achieve final convergence. 1101 1102If there is reason to suspect a negative eigenvalue, the first course 1103is to disable the Newton-Raphson iteration until the solution is 1104closer to convergence. It may be necessary to disable it completely. 1105At some point close to convergence, the Hessian will be positive 1106definite, so disabling Newton-Raphson should yield a solution with 1107approximately the same convergence rate as DIIS. 1108 1109If temporarily disabling Newton-Raphson is not sufficient to achieve 1110convergence, it may be necessary to disable it entirely and apply a 1111small level-shift to the approximate Hessian. This should improve the 1112convergence rate of the micro-iterations and stabilize the 1113macro-iterations. The level-shifting will destroy exact quadratic 1114convergence, but the optimization process is automatically adjusted to 1115reflect this by enforcing conjugacy and reducing the accuracy to which 1116the linear equations are solved. The net result of this is that the 1117solution will do more macro-iterations, but each one should take less 1118time than it would with the unshifted Hessian. 1119 1120The following sections describe the directives needed to disable the 1121Newton-Raphson iteration and specify level-shifting. 1122 1123\section{{\tt NR} --- controlling the Newton-Raphson} 1124\label{sec:nrswitch} 1125 1126\begin{verbatim} 1127 NR <real nr_switch default 0.1> 1128\end{verbatim} 1129 1130The exact orbital Hessian is adopted as the preconditioner when the 1131maximum element of the orbital gradient is below the value specified 1132for \verb+nr_switch+. The default value is 0.1, which means that 1133Newton-Raphson will be disabled until the maximum value of the orbital 1134gradient (twice the largest off-diagonal Fock matrix element) is less 1135than 0.1. To disable the Newton-Raphson entirely, the 1136value of \verb+nr_switch+ must be set to zero. The directive to accomplish 1137this is as follows: 1138\begin{verbatim} 1139 nr 0 1140\end{verbatim} 1141 1142\section{{\tt LEVEL} --- level-shifting the orbital Hessian} 1143\label{sec:level} 1144 1145This directive allows the user to specify level-shifting to obtain a 1146positive-definite preconditioning matrix for the SCF solution 1147procedure. Separate level shifts can be set for the first-order 1148convergent one-electron approximation to the Hessian used with the 1149preconditioned conjugate gradient (PCG) method, and for the full 1150Hessian used with the Newton-Raphson (NR) approach. It is also 1151possible to change the level-shift automatically as the solution 1152attains some specified accuracy. The form of the directive is as 1153follows: 1154\begin{verbatim} 1155 LEVEL [pcg <real initial default 20.0> \ 1156 [<real tol default 0.5> <real final default 0.0>]] \ 1157 [nr <real initial default 0.0> \ 1158 [<real tol default 0.0> <real final default 0.0>]] 1159\end{verbatim} 1160 1161This directive contains only two keywords: one for the PCG method and 1162the other for the exact Hessian (Newton Raphson, or NR). Use of PCG 1163or NR is determined by the input specified for \verb+nr_switch+ on the 1164\verb+NR+ directive, Section \ref{sec:nrswitch} above. 1165 1166Specifying the keyword \verb+pcg+ on the \verb+LEVEL+ directive allows 1167the user to define the level shifting for the approximate (i.e., PCG) 1168method. Specifying the keyword \verb+nr+ allows the user to define 1169the level shifting for the exact Hessians. In both options, the 1170initial level shift is defined by the value specified for the variable 1171\verb+initial+. Optionally, \verb+tol+ can be specified independently 1172with each keyword to define the level of accuracy that must be 1173attained in the solution before the level shifting is changed to the 1174value specified by input in the real variable \verb+final+. Level 1175shifts and gradient thresholds are specified in atomic units. 1176 1177For the PCG method (as specified using the keyword \verb+pcg+), the 1178defaults for this input are 20.0 for \verb+initial+, 0.5 for 1179\verb+tol+, and 0.0 for \verb+final+. This means that the 1180approximate Hessian will be shifted by 20.0 until the maximum element 1181of the gradient falls below 0.5, at which point the shift will be set 1182to zero. 1183 1184For the exact Hessian (as specified using the keyword \verb+nr+), the 1185defaults are all zero. The exact Hessian is usually not shifted since 1186this destroys quadratic convergence. An example of an input directive 1187that applies a shift of 0.2 to the exact Hessian is as follows: 1188\begin{verbatim} 1189 level nr 0.2 1190\end{verbatim} 1191 1192To apply this shift to the exact Hessian only until the maximum 1193element of the gradient falls below 0.005, the required input 1194directive is as follows: 1195\begin{verbatim} 1196 level nr 0.2 0.005 0 1197\end{verbatim} 1198 1199Note that in both of these examples, the parameters for the PCG method 1200are at the default values. To obtain values different from the 1201defaults, the keyword \verb+pcg+ must also be specified. For example, 1202to specify the level shifting in the above example for the exact 1203Hessian {\em and} non-default shifting for the PCG method, the 1204directive would be something like the following: 1205\begin{verbatim} 1206 level pcg 20 0.3 0.0 nr 0.2 0.005 0.0 1207\end{verbatim} 1208 1209This input will cause the PCG method to be level-shifted by 20.0 until 1210the maximum element of the gradient falls below 0.3, then the shift 1211will be zero. For the exact Hessian, the level shifting is initially 12120.2, until the maximum element falls below 0.005, after which the 1213shift is zero. 1214 1215The default options correspond to 1216\begin{verbatim} 1217 level pcg 20 0.5 0 nr 0 0 0 1218\end{verbatim} 1219 1220\section{Orbital Localization} 1221\label{orbloc} 1222The SCF module includes an {\em experimental} implementation of 1223orbital localization, including Foster-Boys and Pipek-Mezey which only 1224works for closed-shell (RHF) wavefunctions. There is currently no 1225input in the SCF block to control this so the \verb+SET+ directive 1226(Section \ref{sec:set}) must be used. 1227 1228The directive 1229\begin{verbatim} 1230 set scf:localize t 1231\end{verbatim} 1232will separately localize the core, valence, and virtual orbital spaces 1233using the Pipek-Mezey algorithm. If the additional directive 1234\begin{verbatim} 1235 set scf:loctype FB 1236\end{verbatim} 1237is included, then the Foster-boys algorithm is used. The partitioning 1238of core-orbitals is performed using the atomic information described 1239in Section \ref{mp2:core}. 1240 1241In the next release, this functionality will be extended to included all 1242wavefunctions using molecular orbitals. 1243 1244 1245\newpage 1246\section{Printing Information from the SCF Module} 1247\label{sec:scfprint} 1248 1249All output from the SCF module is controlled using the \verb+PRINT+ 1250directive described in Section \ref{sec:printcontrol}. The following 1251list describes the items from SCF that are currently under direct 1252print control, along with the print level for each one. 1253 1254\begin{table}[htbp] 1255\begin{center} 1256\begin{tabular}{lcc} 1257 {\bf Name} & {\bf Print Level} & {\bf Description} \\ 1258 ``atomic guess density'' & debug & guess density matrix \\ 1259 ``atomic scf'' & debug & details of atomic SCF \\ 1260 ``mo guess'' & default & brief info from mo guess \\ 1261 ``information'' & low & results \\ 1262 ``initial vectors'' & debug & \\ 1263 ``intermediate vectors'' & debug & \\ 1264 ``final vectors'' & debug & \\ 1265 ``final vectors analysis'' & default & \\ 1266 ``initial vectors analysis'' & never & \\ 1267 ``intermediate evals'' & debug & \\ 1268 ``final evals'' & default & \\ 1269 ``schwarz'' & high & integral screening info \& stats at completion\\ 1270 ``screening statistics'' & debug & display stats after every Fock build \\ 1271 ``geometry'' & high & \\ 1272 ``symmetry'' & debug & detailed symmetry info \\ 1273 ``basis'' & high & \\ 1274 ``geombas'' & debug & detailed basis map info \\ 1275 ``vectors i/o'' & default & report vectors I/O \\ 1276 ``parameters'' & default & convergence parameters \\ 1277 ``convergence'' & default & info each iteration \\ 1278 ``mulliken ao'' & never & Mulliken population of basis functions 1279\end{tabular} 1280\end{center} 1281\caption{SCF Print Control Specifications} 1282\end{table} 1283 1284\newpage 1285\section{Hartree-Fock or SCF, MCSCF and MP2 Gradients} 1286 1287\input{scfgrad} 1288 1289% LocalWords: MO's 1290