# PES transformations

Once a potential energy surface (PES) has been generated by the `XSURF`

program, 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 `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 the PES calculation has been started from a transition state, this must be specified explictly by the `SADDLE`

keyword.

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:

#### Options

(x=1..3 default=1.d-10; x=4 default=1.d-5) Threshold for the average least squares criterion to be met for the individual orders of the potential.`CHI_AV_xD`

=*value*(x=1 default=1.d-10; x=2 default=1.d-8, x=3 default=1.d-6, x=4 default=1.d-5) Threshold for the maximum least squares criterion to be met for the individual orders of the potential.`CHI_MAX_xD`

=*value*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.`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 minimum 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.An n-mode expansion of the $\mu$-tensor will be generated and transformed to polynomials up to 3rd order (default). The order can be changed by the integer passed to the`NDIMMU`

=*n*`NDIMMU`

keyword.Maximum number of basis functions to be used within the fits of the surfaces (sum of exponents).`PSUM`

=*n*(=0 default) When a potential energy surface has been started from a transition state,`SADDLE`

=*n*`SADDLE`

needs to be set to 1, in order to determine the barrier height, which is needed for the correction of absolute energy of the vibrational levels in subsequent VSCF or VCI calculations.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.

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

#### Options

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

program.

### Fit Functions

`FIT`

,*options*

A fit function has to be defined for each coordinate. These fit functions are used to transform an grid representation of a surface generated by the `XSURF`

program to an analytical representation. If no fit functions are given, the fit functions used in the `XSURF`

program for the intermediate fitting are used.
This directive also exists in the `XSURF`

program. If no fit functions are defined within the `XSURF`

program, but in the `POLY`

program, the fit functions of the `POLY`

program are also used in the `XSURF`

program.

#### Options

Defines the fit function for coordinate $x$. The possible fit functions are B-splines (`COORD(x)`

=*variable**bspline*), Gaussian functions (*gauss*), Morse functions (*morse*), polynomials (*poly*) and trigonometric functions (*trigo*).The name of the label defined in the input stream. The label contains the electronic structure level which should be used for the cross-validation.`FITLABEL`

=*variable*(=1 Default) Within the iterative build-up of the individual subsurfaces, intermediate fitting will be used. This can be based on true multidimensional Kronecker product fitting (`FITMETHOD`

=*n*`FITMETHOD`

=1) or on fitting along one-dimensional cuts (`FITMETHOD`

=2).The maximum order of the polynomials used for fitting within the iterative interpolation scheme can be controlled by the keywords`FITxD`

=*n*`FIT1D, FIT2D, FIT3D, FIT4D`

. The default is given by 9. However in certain cases higher values may be necessary, but require an appropriate number of coarse grid points, which can be controlled by`MIN1D`

etc. (See`XSURF`

options)Sets one fit function for all coordinates. The possible fit functons are the same as for the option`ONLY`

=*variable*`COORD`

.

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

#### Options

`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.specifies the transformation to be performed by`TRANSTYPE`

=*variable*`PESTRANS`

. The default is generated automatically based on the given directives in the input stream.transforms an n-mode expansion of the PES into a quartic force field (QFF).`TRANSTYPE=QFF`

indicates a transformation of the spanning axes of the PES for the calculation of isotopologues.`TRANSTYPE=ISO`

performs a Duschinsky transformation as needed for the calculation of Franck-Condon factors.`TRANSTYPE=FCF`

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.

Most options and directives of the `XSURF`

program can also be used in the `PESTRANS`

program (i.e. `INFO`

, `INTENSITY`

, `SCALNM`

, `DISK`

, `LINCOMB`

, `VTAYLOR`

), 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.

#### Options

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

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

### Restart capabilities

`DISK`

,*options*

The `DISK`

directive essentially is the same as in the `XSURF`

program, i.e. a transformed surface can be dumped or a restart can be performed from an external file.

#### Options

For Franck-Condon calculations this allows to specify the number of the two potential energy surfaces.`AUTO`

=*n*Specifies the name of the ASCII restart file (see the`DUMP`

=*file name*`XSURF`

program) of the transformed potential to be dumped.

Specifies the name of an external ASCII restart file to be used. This may be used to continue the transformation of partly transformed potentials or for reading the header of a restart file in Franck-Condon calculations.`EXTERN`

=*file name*

In combination with the keywords`WHERE`

=*variable*`DUMP`

and`EXTERN`

for an external restart file, the keyword`WHERE`

specifies the path for the external ASCII file. Two options are available,`WHERE=home`

and`WHERE=scr`

. As the external files can be huge for`XSURF`

calculations, they will be stored on the scratch disk given by the Molpro variable`$TMPDIR`

by default.

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 {xsurf,sym=auto disk,where=home,dump='h2o.pot'} poly vscf,pot=poly vci,pot=poly poly,vam=0 {pestrans mass,2,2.0141017778d0 mass,3,2.0141017778d0 disk,where=home,dump='d2o.pot'} poly vscf,pot=poly vci,pot=poly