Subject: Re: Energy value for a specific initial orbital set

From: "Marta Forés i Bocsh" <[email-masked]>
Date: Tue, 22 Dec 1998 11:55:59 +0100

Dear all,

I thank to all who replied my question about getting the energy value
for an initial guess in Gaussian. The energy value for the last guess of
a previous calculation can be obtained with the ‘guess=read’ and
‘scf(maxcyc=1)’ options, although being printed 'after two cycles' in
the output file. The initial question and the Prof. S. Fau and D.
Babic’s responses are summarized below. I am very grateful to them.

Marta

Initial question
----------------

We need to get the UB3LYP energy of a molecule with a specific guess
 obtained from a previous calculation. In GAUSSIAN, there is an option
 scf(maxcyc=N) that allows to specify the number of scf cycles (N) you
 want. If N=-1 the program does not do any scf cycle and gives you
 directly the nuclear energy, if N=0 the program does as many cycles as
 it is necessary to have the energy converged and if N=1 one gets the
 energy obtained after doing the second scf cycle (and with the #P
option
 it does not give you the electronic energy difference between the two
 first cycles, which would permit you to know the fist energy value)
Does
 anybody know if there is any way to obtain the energy value for a
 specific initial orbital set (obtained from a guess=read commend).

Responses
-------------

Prof. S. Fau

It is a bit confusing. You are right with saying that the electronic
energy of cycle 1 belongs to the SCF energy with the label "after 2
cycles", since the SCF energy is the sum of this electronic energy and
the nuclear repulsion energy (computed in link 301). But I still think
that this SCF energy "after 2 cycles" is the SCF energy that belongs to
the guess. (I think the label "after 2 cycles" is wrong.) My arguments
are as follows (using a single point calculation of H2 at rHH=1. as an
example):

To solve the SCF-equations, you take a guess for MOs which allows you to
calculate the density matrix and the Fock-matrix. Then you diagonalize
the Fock-matrix and finally you get the diagonal matrix of MO energies
and a new set of MOs (and a new density matrix). Therefore the density
matrix is changed, even if you perform only one SCF-cycle (GAUSSIAN uses
differences between old and new density matrices as convergence
criterion). With direct SCF GAUSSIAN's default procedure is to save the
wavefunction (i.e. the MOs) after each cycle to allow a restart of the
SCF. If the SCF is converged, the MOs are also available as a new guess.

I repeated the calculations with the command lines
  1:  # rhf/6-31G(d,p) guess(SAVE,only)      with rHH = 1.
  2:  # rhf/6-31G(d,p) scf(SAVE,maxcyc=1) geom=check guess=check
  3:  # rhf/6-31G(d,p) scf(restart,nosave,maxcyc=1) geom=check
  4:  # rhf/6-31G(d,p) scf(restart,SAVE,maxcyc=1) geom=check
  5:  # rhf/6-31G(d,p) scf(restart,nosave,maxcyc=1) geom=check
  6:  # rhf/6-31G(d,p) scf(restart,nosave,maxcyc=1) geom=check
because H2 is to small to show energy changes if a converged WFN is used
as a guess.
I got the following energies:
  1: no energy
  2: -1.06975649801  <-- found better MOs and WROTE them to the
checkpoint-file
  3: -1.09870782510  <-- found better MOs
  4: -1.09870782510  <-- found better MOs and WROTE them to the
checkpoint-file
  5: -1.09945738967  <-- found better MOs
  6: -1.09945738967  <-- found better MOs

___________________________________
Dr. Stefan Fau
Fachbereich Chemie, AK Frenking
Philipps-Universität Marburg
35032 Marburg, Germany
[email-masked]

-----------------------------------------------------------------------

Prof. D. Babic

I DO NOT see anything strange or anything that would indicate that
the energy reported in the first cycle does not correspond to initial
orbi-
tals.

        It might be that you don't know a few things that I also learned

recently.  There are two places in the checkpoint file where the
orbitals are
stored.  The first one is where Guess(Save,Only) stores them and also
where
the final converged orbitals are saved.  These orbitals are read into by

Guess=Read command (for example) and you can also read them by
performing
formchk command.

        The orbitals obtained during the SCF calculation are stored in
the
different place in the checkpoint file and they are accessible ONLY by
the Restart option.  These orbitals are stored only if Save option is
active
in SCF (not Guess).  These orbitals can not be read by formchk (unless
one
modifies it).

        The subroutine that controls SCF calculation is CycOpn in
l502.F.
First, the one- and two-electron parts of the Fock matrix are computed
to-
gether with one- and two-electron contributions to the energy.  They are

computed with the initial orbital set which can be from the first or the

second orbital block in the checkpoint file, depending on whether
Guess=Read
is active or SCF(Restart).  Then, Fock matrix is diagonalized and the
new
orbitals are obtained.  If Save option is turned ON, they are stored in
the
second block in the chkpoint file.  So the orbitals stored with MaxCyc=1
are
not identical to the initial orbitals - they are intended for the next
SCF-
-cycle.  If MaxCyc=1, the job ends, but the succeeding restart will
start
>from THESE orbitals, which were not yet used for calculation of energy.

Darko Babic
                                                Institute "Rudjer
Boskovic"
                                                HR-10001 Zagreb, P.O.B.
1016
                                                          Croatia