Potfit Output Documentation


Depending on the options (as keywords) specified in the Run-Section of the input file, output files are created in a directory, the name of the directory being defined in the same section as an argument to the "name" keyword.

The following files are always created: log, timing, and input.

The following files may be created:


The Log File

This file contains informations such as the type of calculation performed, the potential energy surface used, minimum possible memory sizes for different arrays, the opened data files and any error messages if any. The most important thing in this file is to check the labelling of the parameters of the coordinate system used which should be consistent with the arguments of the potential energy surface used.

The Input File

This is a copy of the input file used with the program version progver and the list of options (if any given) added.

The Output File

The output will be saved to file or written to the screen, depending on the output keyword in the Run-Section. It contains some standard results like the "Natural weights (see the MCTDH review for this)" for all the modes. It also prints, after each iteration cycle, the rms errors of the fit. Finally, total CPU-time, host, date and time, path of the name-directory and (if specified in the input) the title of the run are printed.

The Timing File

This file contains various timing statistics of the potential fitting run. For each subroutine, the number of times the routine is called, the total CPU time (user and system) spent in the routine and in all subroutines below it are listed, as well as the CPU time per function call.

Subroutine        Calls N          CPU/N        CPU           %CPU
 iterations        100            324.082     32408.25       97.9
modrefpot 400 63.401 25360.20 76.6
fiterr 101 67.618 6829.42 20.6
getpes 1 616.440 616.44 1.9
coeffs 1001 0.237 237.69 0.7
firstfit 1 69.050 69.05 0.2
loadv 501 0.028 13.89 0.0
diagrs 505 0.003 1.63 0.0
vecs 1 0.700 0.70 0.0
dvr 1 0.000 0.00 0.0

Total (usr,sys,cpu)    33084.3      9.6    33093.9  (   9h : 11m : 33.9s)


Routine Description


The Iteration scheme used for the potential fit


The "Modified Reference Potential" module, computes at each iteration step the modified reference potential


Computes the fit error


Searches for the potential energy surface in the library and writes out the exact potential to the disc


Computes the (long and/or short) coefficients, called from the direct.F and iteration.F subroutines


Loads the potential stored in a vpot file into another array


Diagonalizes the (modified) density matrices using the "DSYEV" routine from Lapack library


Called from direct.F, this module computes all the NATURAL POTENTIALS


Calls the gendvr module

The DVR File

Depending on the circumstances at runtime a dvr file containing information on the DVR basis, DVR grid, etc. is written. Its structure is described in the documentation on the DVR File of the MCTDH output.

The Iteration File

If the keyword iteration is set in the Run-Section some data concerning the iteration procedure is output to this file.

The format is:

   For each iteration step (in one line):
   it     : iteration step (starts with 0 for initialization step)
   Wei-rel: relevant and weighted rms-error [eV],
   Unw-rel: relevant and unweighted rms-error [eV],
   Unw-all: unweighted rms-error [eV],
   Max-rel: relevant and maximal absolute error [eV],
   Max-all: maximal absolut error [eV],

   Additionally, for each mode:
   fn     : sqrt[trace-sum of natural weights/wsum2 or niw]

The Prodwei File

If the input file has a Separable-Weight-Section and if the keyword prodwei is set the one-dimensional separable weight vectors are output to this file.

The format is:

   Number of degrees of freedom
   For each mode: Number of primitive grid points
   For each mode: Primitive grid points,
                  Separable weights

The Natpot File

This file contains the "Natural potentials (see the MCTDH review for the definition of Natural potentials)". This is unformatted and is read by the MCTDH subroutine rdnatpot to start any MCTDH run. The followings are written:

  System definition i.e. dvrdef.
  Date of creation
(The following lines show some input informations for documentation purposes)
      write(line,'(a,i3,a,20i4)') ' contracted mode:',modc,
     +           ',  nat.pots:',(potdim(i),i=1,min(ndof,20))
      write(unit,iostat=ierr) line(1:80)
      write(line,'(a,e12.4,a,18i3)') ' V-cut =', pesmax*27.2114,
     + ' eV,  oned:',(onedipot(i),i=1,min(ndof,18))
      write(unit,iostat=ierr) line(1:80)
      write(line,'(a,e12.4,a,e12.4,a)') ' C-Weights: V-max =',
     +     iwvmax*27.2114,' eV,  V-min =',iwvmin*27.2114,' eV'
      write(unit,iostat=ierr) line(1:80)
      write(line,'(a,11(1x,a))') ' Modelabels:',
     +    (modelabel(i)(1:slen(modelabel(i))),i=1,min(ndof,11))
      write(unit,iostat=ierr) line(1:80)
(Fitting Parameters)
      write(unit) modc,(onedipot(f),f=1,ndof)
      write(unit) lpconm
(Modes, DOFS are being written now)
      write(unit) dentype
      write(unit) ndof,nmode
      write(unit) (nspfdof(m),m=1,nmode)
      do m=1,nmode
         write(unit) (spfdof(n,m),n=1,nspfdof(m))
      write(unit) (dofspf(f),f=1,ndof)
      write(unit) log2int(lmult),log2int(leb),log2int(lmulpack)
(Write potdim and one-dimensional potentials)
      write(unit) (pdim(m),m=1,npmode)
      do f=1,ndof
         if (onedipot(f) .gt. 0) then
            write(unit) (oned(zeig+g),g=1,gdim(f))
(Write natural potentials for each contracted and uncontracted modes)
      ! see routines FITOUT and VECOUT
      do m=1,npmode
         if (m.eq.modc) then ! contracted mode
            do i=1,dimaft
               do j=1,dimbef
                  write (unit) (coeff(j,g,i), g=1,dimmodc)
         else ! other modes
            ! natural potentials of mode m start at zevec(m)
            evecp => evec(zevec(m)) ! this is symbolic
            do i=1,potdim(m)
               write (unit) (evecp(g,i), g=1,psubdim(m))
(In the end the vpot parameters are written to be used in the “showpot” program for viewing purpose)

The CPD File

This file contains a potential in cpd format. In general it is generated by mccpd86 or natpot2cpd86. The binary file has the following structure:

  System definition i.e. dvrdef
  Date of creation
(The following lines show some input informations for documentation purposes)
    lcount = 4
    write(channel,iostat=ierr) lcount
    write(line,'(a,i6)') ' candecomp rank:', rank
    write(channel,iostat=ierr) line(1:80)
    write(line,'(a,ES16.8,a)') ' V-cut =', pesmax*27.2114, ' eV'
    write(channel,iostat=ierr) line(1:80)
    write(line,'(a,e12.4,a,e12.4,a)') ' C-Weights: V-max =', &
         iwvmax*27.2114,' eV,  V-min =',iwvmin*27.2114,' eV'
    write(channel,iostat=ierr) line(1:80)
    write(line,'(a,11(1x,a))') ' Modelabels:', &
    write(channel,iostat=ierr) line(1:80)
write(inpot) rank, onedipot

write grddef (see wrgrddef / rdgrddef)

(Write one-dimensional potentials)
      do f=1,ndof
         if (onedipot(f) .gt. 0) then
            write(unit) (oned(zort(f)-1+g),g=1,gdim(f))
(Write the cpd potential)
    do r=1,rank
       write(unit) coeff(r)
       do m=1, nmode
          z = zspp(r,m)
          write(unit) (spp(zspp(r,m)-1+g),g=1,subdim(m))
       end do

    end do
(In the end the vpot parameters are written to be used in the “showpot” program for viewing purpose and for consistency with the natpot file.)

The Vpot File

This file contains the exact potential energy surface (PES) on the product grid (hence it may become quite large). It is used by potfit to store the exact potential externally. In addition, with a vpot file one can plot cuts of the corresponding PES by the help of the showpot program.

The vpot_LABEL Files

These files are written in projection runs. They contain the projected potentials on the reduced product grids. Their structure is the same as the normal vpot file, so they can be used in other potfit runs.

System definition (primitive definition of the system considered (ndofs etc))

The following data is written by subroutine wrdvrdef: