PES transformations

Once a potential energy surface (PES) has been generated by the SURF or XSURF programs, it can be transformed to different representations. The first possibility (analytical representations (POLY)) is a representation by basis functions, i.e. the POLY program. The representation by grid points (grid to grid transformations (VGRID)) may be altered by the VGRID program, which includes a grid to grid transformation. Finally the PESTRANS program (transformation of the coordinate system (PESTRANS)) offers a transformation of the PES for vibrational structure calculations of isotopologues or Franck-Condon factors.

POLY,options [poly]

The POLY program allows for the transformation of the potential energy surface and property surfaces from a grid representation to an analytical representation by polynomials, Gaussians or B-splines. Once an analytical representation has been chosen, the corresponding VSCF, VCI or VMP2 programs need to be selected (see below). There are different versions of the POLY program (see keyword VERSION), but the program will recognize automatically, which one to use. An example for the use of the POLY program can be found in chapter examples.
B. Ziegler, G. Rauhut, Efficient generation of sum-of-products representations of high-dimensional potential energy surfaces based on multimode expansions., J. Chem. Phys. 144, 114114 (2016)
The following options are available:

  • ADDZERO=n Within the fitting of the grid representation the expansion point usually is not included. In certain cases in might be meaningful to include it. This can be accomplished by ADDZERO=1.
  • DELAUTO=value In order to delete troublesome 2D, 3D or 4D surfaces from the multi-mode expansion of the potential, the DELAUTO keyword sets all coefficients of the polynomial expansion of these surfaces to zero. The threshold passed to the DELAUTO keyword corresponds to the $\chi^2$ value of the least squares fitting procedure. It acts on both, the energy and the dipole surfaces. The default is set to 9.d99, i.e. all surfaces with $\chi^2$ values below this threshold will not be affected.
  • DIPOLE=n In case that dipole surfaces have been computed, they need to be transformed to a analytical representation as well. This can be accomplished by DIPOLE=1 and will be set by default, if dipole surfaces are available. DIPOLE=0 excludes existing dipole surfaces from the transformation.
  • INFO=n INFO=1 provides a list of the values of all relevant program parameters (options).
  • MAXBF=n This keyword controls the maximum number of basis functions to be used. This keyword may be used to restrict the basis for certain purposes.
  • MINBF=n (=7 Default) This keyword controls the minium number of basis functions to be used.
  • NDIM=n The keyword NDIM=n terminates the transformation after the $n$D terms within the $n$-mode expansion of the surfaces. The default is set to 3. The transformation of the 4D terms can be very time consuming.
  • NDIMDIP=n Term after which the $n$-body expansions of the dipole surfaces are truncated. The default is set to 3. Note that NDIMDIP has to be lower or equal than NDIM.
  • NDIMPOL=n Term after which the $n$-body expansions of the polarizability tensor surfaces are truncated. The default is 0. NDIMPOL has to be lower or equal than NDIM and must be smaller than 4.
  • NGRID=n Once the value of the NGRID=n keyword for controlling the number of grid points has been changed in the SURF program, this information will be passed to the POLY program automatically.
  • NVARC=n For the calculation of vibrationally averaged rotational constants $\mu$-tensor surfaces will be generated and transformed to polynomials up to 2nd order (default). The order can be changed by the integer passed to the NVARC keyword.
  • POLAR=n Once set to one this keyword switches the transformation of the polarizability tensor surfaces on. The default is POLAR=0.
  • POT=variable POT=POLY transforms the grid representation as passed over from the SURF or XSURF programs to a polynomial representation. Likewise, POT=BSPLINE and POT=GAUSS use B-splines or a distributed Gaussian basis. Note that, in contrast to the polynomials the latter two are local basis functions. The default is POT=POLY.
  • SHOW=n The coefficients of the polynomial representation can be printed. In order to identify quartic potentials, it is recommended to use SHOW=1. Higher values will lead to very long output files.
  • TYPE=variable Once polynomials have been generated, the expansion of the potential can be restricted to the harmonic approximation or a semi-quartic force field, i.e. TYPE=HARM or TYPE=QFF.
  • VAM=n The Watson correction term, i.e. VAM=1, is absorbed in the potential by default. Once the polynomials to be generated should exclude this correction, this needs to be specified by VAM=0. Any other values, i.e. 2 or 3, will be ignored.
  • VERSION=n (n=1,2,3) By default VERSION=2 will be used in combination with the SURF program, while the most generalized version, i.e. VERSION=3, will be used by default for the XSURF program. VERSION=1 can be used in combination with the XSURF program and uses conventional fitting (no Kronecker products).
  • VRC=n Once vibrational-rotational coupling surfaces have been computed in the SURF program, these couplings can be considered (VRC=1) or excluded (VRC=0, default) in the POLY program. Note that VRCs are not supported by the XSURF program.


The LEVELCURVES directive within the POLY program allows to plot isosurfaces for the sum of the corresponding 1D, 2D, and 3D surfaces. This enables the visual control of the potential including the 3D terms. Datafiles for the gnuplot program and associated input files will be provided in individual subdirectories.

The following options are available:

  • DUMP=path DUMP=path provides the path of the subdirectory, in which the datafiles for the isosurfaces will be dumped.
  • ENERGY=value If this keyword isn’t used, the energy value for the isosurface will be determined by the program automatically. The value determined this way is the lowest energy of the outer surfaces of the 3D cube. If a specific value is provided for ENERGY, the corresponding 3D level surface will be plotted.
  • ESTEP=value Once several isosurfaces shall be plotted for a given 3D potential, the energy difference between two isosurfaces can be specified by ESTEP=value. The first isosurface, that will be plotted, corresponds to the level energy of the stepwidth itself. In all subsequent isosurfaces the energy will be increased by the value of the stepwidth ESTEP, until the final energy as defined by the ENERGY keyword is obtained. As a consequence, a series of isosurfaces will be produced, which is different for each 3D potential.
  • MODE=n In order to restrict the generation of isosurfaces to individual triples of modes, the MODE keyword can be used. For example,

LEVELCURVES,MODE=5,MODE=3,MODE=2 generates the isosurface for the 3D potential $V_{532}$. The ordering of the modes is insignificant. Once isosurfaces for different triples shall be plotted, the directive LEVELCURVES needs to be provided several times.


The DISK directive allows to specify explicitly, from where the grid information shall be taken and where it shall be stored to disk. This can also be accomplished in an automated manner, which is recommended. These features are only relevant for the simulation of vibronic spectra as one has to deal with several PESs in the same input. For simple VCI calculations, no information is needed here.

The following options are available:

  • AUTO=n Rather than using the options START and SAVE one may simply assign a label n to a a certain PES and all the records will be set automatically. The grid information is read from the last PES specified in the call of the SURF program.
  • SAVE=record Specification of the record, where to dump the polynomials. The default is 5750.2.
  • START=record This keyword controls the record, from which the potential shall be read. The default is 5600.2.

VGRID,options [vgrid]

For certain applications a finer grid may be needed than generated by the SURF program. In order to avoid the recalculation of the entire PES the VGRID program offers the possibility of a grid to grid transformation. The transformation of polarizability tensor surfaces is not yet supported. There is no need for calling the VGRID program once the potential has been generated with the XSURF program. In that case the number of grid points can be altered by using the keyword NGRID within the restart from the potential. Surfaces of the polarizability tensor are not supported by VGRID.
The following options are available:

  • DIPOLE=n In case that dipole surfaces have been computed, these may be transformed to a finer or coarser grid as well. This transformation can be switched off by DIPOLE=0.
  • INFO=n INFO=1 provides a list of the values of all relevant program parameters (options).
  • NDIM=n Specifies the maximum order of the PES expansion, which shall be transformed. Default: NDIM=3.
  • NDIMDIP=n Specifies the maximum order of the dipole surfaces, which shall be transformed. $n$ must be equal or smaller than the corresponding value of NDIM.
  • NEWGRID=n Determines the number of grid points to be used in all subsequent programs. Note that in the subsequent programs the variable NGRID controls the number of grid points. The keyword NEWGRID exists only within the VGRID program.
  • NGRID=n This keyword provides the number of grid points as generated by the SURF program, i.e. this is the old number of grid points.

PESTRANS,options [pestrans]

The PESTRANS program allows to change the coordinate system being used within the representation of the potential by a Duschinsky-like transformation. This allows for the transformation of PESs as needed for the calculation of the vibrational spectra of isotopologues or Franck-Condon factors including Duschinsky rotations. This requires a representation of the potential energy surface by polynomials. Different versions of the PESTRANS program will be used in combination with the SURF and the XSURF programs. While for the old SURF program a fine grid in the new coordinate system will be generated from fits of the fine grid using the old coordinate system, the XSURF program itself will be used to generate a fine grid in the new coordinates, which usually is much faster. Due to that a completely different PESTRANS program will be used once XSURF has been called before. For further details see:
P. Meier, D. Oschetzki, R. Berger, G. Rauhut, Transformation of potential energy surfaces for estimating isotopic shifts in anharmonic vibrational frequency calculations, J. Chem. Phys. 140, 184111 (2014).
The following options are available:

  • CUT=n CUT=0 (default) transforms all surfaces as requested by the input. CUT=1 neglects the generation of vibrational-rotational coupling surfaces for the new potential. CUT=2 neglects rotational-rotational coupling surfaces within the transformation and thus also for the new potential.
  • DVEC=n (=0 Default) This keyword controls the shift vector within the transformation. DVEC=0 sets this vector to zero. This works only for XSURF calculations.
  • ECKART=n By default the Eckart transformation matrix needed within the PESTRANS program will be computed explicitly. ECKART=0 replaces the Eckart transformation matrix by a unit matrix.
  • NDIM=n Order of the $n$-mode potential for the transformed potential. The information of the original potential will be taken from the the POLY calculation. This option is only available for XSURF calculations.
  • THRMATS=value Threshold controlling the analysis of the S-matrix indicating the accuracy of the transformation (default: THRMATS=0.3).
  • THRQ=value Elements in the displacement vectors below this threshold (default THRQ=10^{-8}) will be neglected within the transformation.
  • UMAT=n As needed for Franck-Condon calculations, UMAT=1 defines the linear combinations of the displacement vectors due to Duschinsky rotations, which influences the selection of states in subsequent VCI calculations. The default, UMAT=0, switches off this feature.
  • VRC=n Once vibrational-rotational coupling surfaces have been computed in the SURF program, these couplings can be considered (VRC=1) or excluded (VRC=0, default) in the PESTRANS program. The inclusion of these terms usually increases the accuracy of the transformation. This keyword is not supported in combination with the XSURF program.

Most keywords and directives of the SURF program can also be used in the PESTRANS program (i.e. SCALE, INFO, INTENSITY, SCALNM, DISK, LINCOMB), while specific ones had to be excluded (i.e. NGRID, etc. ).


Once the PESTRANS program will be used for the calculation of isotopologues, the atomic masses of the individual atoms can be specified by this directive. Note, the use of the MASS directive here differs from that in the electronic structure code as it requests the running number of the atoms in the geometry definition.

  • MASS,n,value The $n$th atom is supposed to have the mass value.


Within Franck-Condon calculations information about the geometry and the Hessian of the 2nd system (belonging to the 2nd electronic state) is needed. This can be realized by the DISK directive, which thus differs from the directive of the same name within the SURF program. The options of this directive are the same as for the directive of the SURF program.

  • EXTERN=file name Specifies the name of the ASCII restart file (see the SURF program) belonging to the 2nd system, which includes the 2nd coordinate system.

The following example shows a calculation for water including vibrational-rotational coupling surfaces, the corresponding VSCF and VCI calculations a subsequent transformation of the potential to doubly deuterated water.

O   ,,     0.0000000000   ,    0.0000000000  ,     0.1241819425
H   ,,     0.0000000000   ,   -1.4320403835  ,    -0.9855926792
H   ,,     0.0000000000   ,    1.4320403835  ,    -0.9855926792