# Differences

This shows you the differences between two versions of the page.

 pes_transformations [2020/06/11 18:17]127.0.0.1 external edit pes_transformations [2020/07/15 15:32] (current)qianli 2020/07/15 15:32 qianli 2020/06/11 18:17 external edit 2020/07/15 15:32 qianli 2020/06/11 18:17 external edit Line 1: Line 1: ====== PES transformations ====== ====== PES transformations ====== - Once a potential energy surface (PES) has been generated by the ''SURF'' program, it can be transformed to different representations. The first possibility is a representation by basis functions, i.e. the ''POLY'' program. The representation by grid points may be altered by the ''VGRID'' program, which includes a grid to grid transformation. Finally the ''PESTRANS'' program offers a transformation of the PES for vibrational structure calculations of isotopologues or Franck-Condon factors. + 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 ([[PES transformations#analytical representations (POLY)|analytical representations (POLY)]]) is a representation by basis functions, i.e. the ''POLY'' program. The representation by grid points ([[PES transformations#grid to grid transformations (VGRID)|grid to grid transformations (VGRID)]]) may be altered by the ''VGRID'' program, which includes a grid to grid transformation. Finally the ''PESTRANS'' program ([[PES transformations#transformation of the coordinate system (PESTRANS)|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) ===== ===== Analytical representations (POLY) ===== Line 7: Line 7: ''POLY'',//options// [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. Once an analytical representation has been chosen, the corresponding VSCF, VCI or VMP2 programs need to be selected (see below). An example for the use of the ''POLY'' program can be found in chapter [[vibration correlation programs#examples|examples]].\\ + 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 [[vibration correlation programs#examples|examples]].\\ + B. Ziegler, G. Rauhut, //Efficient generation of sum-of-products representations of high-dimensional potential energy surfaces based on multimode expansions.//, [[https://dx.doi.org/10.1063/1.4943985|J. Chem. Phys.]] **144**, 114114 (2016)\\ The following //options// are available: 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. * **''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''. * **''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. * **''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. * **''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. - * **''POT''=//variable//** ''POT=POLY'' transforms the grid representation as passed over from the ''SURF'' program 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 a local basis functions. The default is ''POT=POLY''. + * **''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. - * **''MINBF''=//n//** (=7 Default) This keyword controls the minium number of basis functions to be used. + - * **''MXBF''=//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. + - * **''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''. + - * **''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. + * **''POLAR''=//n//** Once set to one this keyword switches the transformation of the polarizability tensor surfaces on. The default is ''POLAR''=0. * **''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. * **''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. - * **''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''. + * **''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). - * **''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. + * **''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. - * **''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. This transformation can also be extended within the ''VSCF'' program. + - * **''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. + - * **''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 a very long output file. + - * **''INFO''=//n//** ''INFO=1'' provides a list of the values of all relevant program parameters (options). + - * **''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). + ==== Plotting of 3D surfaces ==== ==== Plotting of 3D surfaces ==== Line 37: Line 38: The following //options// are available: 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. * **''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. * **''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. - * **''DUMP''=//path//** ''DUMP=path'' provides the path of the subdirectory, in which the datafiles for the isosurfaces will be dumped. * **''MODE''=//n//** In order to restrict the generation of isosurfaces to individual triples of modes, the ''MODE'' keyword can be used. For example,\\ * **''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. ''%%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. Line 47: Line 48: ''DISK'',//options// ''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. 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 ''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: The following //options// are available: - * **''START''=//record//** This keyword controls the record, from which the potential shall be read. The default is 5600.2. - * **''SAVE''=//record//** Specification of the record, where to dump the polynomials. The default is 5750.2. * **''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. * **''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. ===== Grid to grid transformations (VGRID) ===== ===== Grid to grid transformations (VGRID) ===== Line 59: Line 60: ''VGRID'',//options// [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.\\ + 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: The following //options// are available: - * **''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. - * **''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. - * **''NDIM''=//n//** Specifies the maximum order of the PES expansion, which shall be transformed. Default: ''NDIM=3''. * **''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''. * **''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''. - * **''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''. * **''INFO''=//n//** ''INFO=1'' provides a list of the values of all relevant program parameters (options). * **''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. ===== Transformation of the coordinate system (PESTRANS) ===== ===== Transformation of the coordinate system (PESTRANS) ===== Line 73: Line 74: ''PESTRANS'',//options// [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. For further details see:\\ + 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).\\ 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: The following //options// are available: - * **''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. - * **''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. * **''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. * **''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. - * **''THRQ''=//value//** Elements in the displacement vectors below this threshold (default ''%%THRQ=10^{-8}%%'') will be neglected within the transformation. - * **''THRMATS''=//value//** Threshold controlling the analysis of the **S**-matrix indicating the accuracy of the transformation (default: ''THRMATS=0.3''). * **''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. * **''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. - * **''NDIM''=//n//** Order of the $n$-mode potential for the tranformed potential. The information of the original potential will be taken from the the ''POLY'' calculation. This option is only available 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. ). 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. ).