# 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.

## Analytical representations (POLY)

`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:

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`

=*n*`ADDZERO=1`

.In order to delete troublesome 2D, 3D or 4D surfaces from the multi-mode expansion of the potential, the`DELAUTO`

=*value*`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.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`

=*n*`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).This keyword controls the maximum number of basis functions to be used. This keyword may be used to restrict the basis for certain purposes.`MAXBF`

=*n*(=7 Default) This keyword controls the minium number of basis functions to be used.`MINBF`

=*n*The keyword`NDIM`

=*n*`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.Term after which the $n$-body expansions of the dipole surfaces are truncated. The default is set to 3. Note that`NDIMDIP`

=*n*`NDIMDIP`

has to be lower or equal than`NDIM`

.Term after which the $n$-body expansions of the polarizability tensor surfaces are truncated. The default is 0.`NDIMPOL`

=*n*`NDIMPOL`

has to be lower or equal than`NDIM`

and must be smaller than 4.Once the value of the`NGRID`

=*n*`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.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`

=*n*`NVARC`

keyword.Once set to one this keyword switches the transformation of the polarizability tensor surfaces on. The default is`POLAR`

=*n*`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`

.The coefficients of the polynomial representation can be printed. In order to identify quartic potentials, it is recommended to use`SHOW`

=*n*`SHOW=1`

. Higher values will lead to very long output files.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`

=*variable*`TYPE=HARM`

or`TYPE=QFF`

.The Watson correction term, i.e.`VAM`

=*n*`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.(n=1,2,3) By default`VERSION`

=*n*`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).Once vibrational-rotational coupling surfaces have been computed in the`VRC`

=*n*`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.

### Plotting of 3D surfaces

`LEVELCURVES`

,*options*

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.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`

=*value*`ENERGY`

, the corresponding 3D level surface will be plotted.Once several isosurfaces shall be plotted for a given 3D potential, the energy difference between two isosurfaces can be specified by`ESTEP`

=*value*`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.In order to restrict the generation of isosurfaces to individual triples of modes, the`MODE`

=*n*`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.

### Record handling

`DISK`

,*options*

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:

Rather than using the options`AUTO`

=*n*`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.Specification of the record, where to dump the polynomials. The default is 5750.2.`SAVE`

=*record*This keyword controls the record, from which the potential shall be read. The default is 5600.2.`START`

=*record*

## Grid to grid transformations (VGRID)

`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:

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`

=*n*`DIPOLE=0`

.`INFO`

=*n*`INFO=1`

provides a list of the values of all relevant program parameters (options).Specifies the maximum order of the PES expansion, which shall be transformed. Default:`NDIM`

=*n*`NDIM=3`

.Specifies the maximum order of the dipole surfaces, which shall be transformed. $n$ must be equal or smaller than the corresponding value of`NDIMDIP`

=*n*`NDIM`

.Determines the number of grid points to be used in all subsequent programs. Note that in the subsequent programs the variable`NEWGRID`

=*n*`NGRID`

controls the number of grid points. The keyword`NEWGRID`

exists only within the`VGRID`

program.This keyword provides the number of grid points as generated by the`NGRID`

=*n*`SURF`

program, i.e. this is the*old*number of grid points.

## Transformation of the coordinate system (PESTRANS)

`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.(=0 Default) This keyword controls the shift vector within the transformation.`DVEC`

=*n*`DVEC=0`

sets this vector to zero. This works only for`XSURF`

calculations.By default the Eckart transformation matrix needed within the`ECKART`

=*n*`PESTRANS`

program will be computed explicitly.`ECKART=0`

replaces the Eckart transformation matrix by a unit matrix.Order of the $n$-mode potential for the transformed potential. The information of the original potential will be taken from the the`NDIM`

=*n*`POLY`

calculation. This option is only available for`XSURF`

calculations.Threshold controlling the analysis of the`THRMATS`

=*value***S**-matrix indicating the accuracy of the transformation (default:`THRMATS=0.3`

).Elements in the displacement vectors below this threshold (default`THRQ`

=*value*`THRQ=10^{-8}`

) will be neglected within the transformation.As needed for Franck-Condon calculations,`UMAT`

=*n*`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.Once vibrational-rotational coupling surfaces have been computed in the`VRC`

=*n*`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. ).

### Definition of atomic masses

`MASS`

,*options*

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.

The $n$th atom is supposed to have the mass`MASS`

,*n*,*value**value*.

### Reading of 2nd Hessian

`DISK`

,*options*

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.

Specifies the name of the ASCII restart file (see the`EXTERN`

=*file name*`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.

memory,100,m gthresh,optgrad=1.d-7,twoint=1.d-14,prefac=1.d-16 geometry={ O ,, 0.0000000000 , 0.0000000000 , 0.1241819425 H ,, 0.0000000000 , -1.4320403835 , -0.9855926792 H ,, 0.0000000000 , 1.4320403835 , -0.9855926792 } basis=vtz-f12 hf optg ccsd(t)-f12 freq,symm=auto label1 int {hf start,atden} ccsd(t)-f12 {surf,start1D=label1,sym=auto,vrc=1,ndim=4 scalnm,auto=on disk,where=home,dump='h2o.pot'} vscf vci poly,vam=0,vrc=1,ndim=4 {pestrans,vrc=1,ndim=4 mass,2,2.0141017778d0 mass,3,2.0141017778d0 scalnm,auto=on disk,where=home,dump='d2o.pot'} vscf vci